Estoy tratando de establecer una contraseña en un formulario. Yo, básicamente, quieren a alguien para que escriba una contraseña en un campo de contraseña y pulse enviar y si la contraseña es correcta, se le redirige a buybutton.php en la misma ventana. Si la contraseña no es la correcta, un alert de javascript emergente que dice «Contraseña incorrecta’. He tratado de escribir el Javascript, pero no de acción que está sucediendo cuando se pulsa el botón. Lo que he hecho mal en mi código de abajo? Gracias por la ayuda!

<!DOCTYPE html>
<body width="950" height="300" style="background-image:url('giftcard_bg.jpg');">
<head>
<SCRIPT LANGUAGE="JavaScript">
    function goForit() {
      var passwd;
      passwd = this.document.giftForm.pass.value;
      if(passwd=="samsamsam"){
      window.open ('buybutton.php','_self',false)
      }
      else{
      alert('Password wrong');
      }
    }
</SCRIPT>
</head>


<div style="position:absolute; top:150px; left:285px; text-align:center;">
    <form id="giftForm">        
        <input type="password" id="pass" placeholder="Enter Secret Code" style="font-size:150%;"/>
        <br />
        <input type="button" onClick="goForit()" value="Submit" style="font-size:150%; margin-top:15px;" />                 
     </form>
</div>

</body>
</html>
  • La esperanza no está en función de este para cualquier real de seguridad.
  • Sólo para su INFORMACIÓN, el HTML no es válido: es <head></head> <body></body>. Usted no debe nido <head> dentro de <body>.
  • Sí @j08691, esto no necesariamente es un super seguro cosa, es sólo un poco de diversión de promoción se está ejecutando así que no es realmente un gran negocio si ven la contraseña. Jaja, esto definitivamente no sería eficaz para que…
InformationsquelleAutor MillerMedia | 2012-08-16

4 Comentarios

  1. 1
    passwd = this.document.giftForm.pass.value; 

    provoca un error tratar

    passwd = document.getElementById('pass').value;

    Le faltaban un ; demasiado después de la ventana.abierto ('buybutton.php','_self',false)

  2. 2

    Debe utilizar document.getElementById('pass').value en lugar de this.document.giftForm.pass.value

    function goForit() {
      var passwd;
      passwd = document.getElementById('pass').value;
      if(passwd=="samsamsam"){
      window.open ('buybutton.php','_self',false)
      }
      else{
      alert('Password wrong');
      }
    }

    Palabra de advertencia:

    Pero tenga en cuenta! Todo el mundo puede ver el código fuente y encontrar la contraseña!!!

    Lugar de esto, usted debe enviar el formulario al servidor, y en el lado del servidor, comprobar si es correcta. Si es correcto, redirigir al usuario a buybutton.php pero le enviará una cookie que le autorice a entrar a esa página. Y que la página debe comprobar si él tiene esa cookie.

    Pero yo no soy un experto, si usted quiere que usted debe hacer otra pregunta eso.

    • Un gran «gracias». Para este no es un gran problema si alguien espera en el código fuente. Es un verdadero rápida de la promoción que estamos haciendo y que es sólo un pequeño descuento que nos estamos dando a la gente a través de él. Voy a repasar en mi lado del servidor autorización de contraseña porque creo que va a ser algo que voy a necesitar en el futuro. Gracias por señalarme en la dirección correcta.
  3. 0

    esto debería funcionar

    function goForit() {
          var passwd = document.getElementById("pass").value;
          if(passwd=="samsamsam"){
          window.open ('buybutton.php','_self',false)
          }
          else{
          alert('Password wrong');
          }
        }
  4. 0

    Oriol y Rajeev la respuesta es correcta.

    Alternativamente, usted puede hacer esto:

    cambio

    passwd = this.document.giftForm.pass.value;

    a

    passwd = document.forms['giftForm'].pass.value;
    • el código no va a funcionar no hay ningún atributo «name» en el campo de entrada
    • estoy realmente apenado, su código está trabajando bien, pero me puede echar toda la culpa oo jQuery, que en realidad se olvidó de núcleo de javascript

Dejar respuesta

Please enter your comment!
Please enter your name here