2009-10-26 15 views
5

Nuevo a todo esto, así que perdona mi ignorancia. Estoy intentando descubrir cómo agregar un campo "confirmar tu contraseña" a mi formulario. Usando PHP y mySQL. ¿Está esto ingresado en el código de formulario html, y cómo puede configurarlo para verificar automáticamente que coincidan los campos de contraseña y confirmar contraseña?Confirmar contraseña?

+2

¿Cómo se relaciona esto con MySQL? ¿Desea almacenar ambos campos de contraseña en el DB y tiene una restricción para asegurarse de que coincidan? Si es así, esa no sería la mejor manera de hacer cumplir esta restricción en la interfaz de usuario ... – dcrosta

Respuesta

16

Acaba de obtener tanto la contraseña y confirmar los campos de contraseña en el formulario de envío de PHP y la prueba de la igualdad:

if ($_POST["password"] === $_POST["confirm_password"]) { 
    // success! 
} 
else { 
    // failed :(
} 

donde password y confirm_password son los ID de las entradas de texto HTML para las contraseñas.

1

¿Está utilizando algún tipo de marco? Si no, debería ser tan simple como verificar después de guardar que ambos campos están establecidos y que $ confirmationPassword == $ passWord. Luego aplique la validación que necesite a la contraseña antes de almacenarla en SQL.

4

Lo que intenta hacer es validar el formulario. Es una buena idea validar en el lado del cliente (usando javascript) para que tenga una respuesta más rápida para su usuario en la interfaz, y en su servidor (ya que su usuario puede tener javascript deshabilitado, y porque debe nunca confiar ciegamente en en la entrada del usuario. Lee Should you do validation on your server side para obtener más información sobre este tema).

Solo tiene que comparar los dos valores publicados. Si es correcto, inserte en la base de datos. De lo contrario, no haga nada y devuelve un mensaje al usuario diciendo que la contraseña es incorrecta.

No puedo dar más detalles ya que no proporcionó información suficiente o detallada de su entorno php (marcos utilizados, librerías utilizadas, etc.).

+1

"y en el lado del servidor (ya que su usuario puede tener JavaScript desactivado)." - Esta no es una razón para usar la validación del lado del servidor. – strager

+2

Uh, sí lo es. La validación del lado del cliente es útil, pero la validación del lado del servidor asegura que los problemas en el lado del cliente sean contabilizados. – ceejayoz

+1

Supongamos algo como "¿Por qué no puedo escribir una validación de javasctip?", Solo escribí para validar en el lado del servidor para recordar que él tiene que hacerlo. No puedo proporcionar toda la información sobre seguridad en una respuesta simple. – GmonC

2

se puede comprobar en JavaScript utilizando

<html><title></title><head> 
<script> 
     function validate(){ 

    if(!document.getElementById("password").value==document.getElementById("confirm_password").value)alert("Passwords do no match"); 
    return document.getElementById("password").value==document.getElementById("confirm_password").value; 
    return false; 
    } 
    </script> 
</head> 
<body> 
    <form onSubmit="return validate()" action="nextPage.php"> 
    Password: <input type="text" id="password" name="password" /><br/> 
    Reenter Password: <input type="text" id="confirm_password" name="confirm_password" /> 
    <input type="submit" value="submit"/> 
    </form> 
</body> 
</html> 

Y el lado del servidor es necesario comprobar de nuevo en el cliente caso no tiene Javascript habilitado,

if($_GET['password']==$_GET['confirm_password']) 

Usted tiene que usar $ _POST en lugar de $ _GET en el caso del método POST

+0

¿Alguna vez desea utilizar un GET con respecto a una contraseña? Parece que un POST sería el camino a seguir ... – Dscoduc

+0

tienes razón para las contraseñas debemos usar el método POST ... Acabo de dar un ejemplo, solo el envío de formularios básicos usando ambos métodos con validación :) – Xinus

2

Actualicé el código, faltan dos puntos en el envío del formulario.

<html> 
    <title></title> 
    <head> 
    <script> 
     function validate(){ 

      var a = document.getElementById("password").value; 
      var b = document.getElementById("confirm_password").value; 
      if (a!=b) { 
       alert("Passwords do no match"); 
       return false; 
      } 
     } 
    </script> 
    </head> 
    <body> 
     <form onSubmit="return validate();" "> 
     Password: <input type="text" id="password" name="password" /><br/> 
     Re-enter Password: <input type="text" id="confirm_password" name="confirm_password" /> 
     <input type="submit" value="submit"/> 
     </form> 
    </body> 
</html> 
Cuestiones relacionadas