Foros del Web » Programando para Internet » PHP »

como validar la verificación de una contraseña en PHP

Estas en el tema de como validar la verificación de una contraseña en PHP en el foro de PHP en Foros del Web. Hola en mi formulario de registro utilizo esta sintaxis para comprobar que los campos $pass & $repass no sean diferentes y si son diferentes no ...
  #1 (permalink)  
Antiguo 19/10/2012, 18:26
 
Fecha de Ingreso: octubre-2012
Ubicación: Ciudad de México
Mensajes: 25
Antigüedad: 11 años, 5 meses
Puntos: 0
como validar la verificación de una contraseña en PHP

Hola en mi formulario de registro utilizo esta sintaxis para comprobar que los campos $pass & $repass no sean diferentes y si son diferentes no procese el registro.

Código PHP:
 else if($_POST["pass"] != $_POST["repass"])

echo 
"<p>Las <b>Contrase&ntilde;añas</b> no coinciden!</p>";
echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";

Pero aunque no sean identicas permite que procese el registro y manda el mensaje del echo y los datos se agregan a la base de datos ¿Saben cual es mi error? Quiero que solo se puedan registrar mis usuarios si los campos Pass y Repass son iguales. Osea que la contraseña en ambos campos sean identicas :x
  #2 (permalink)  
Antiguo 19/10/2012, 18:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: como validar la verificación de una contraseña en PHP

elseif es junto pero usa var_dump para que verifiques los valores
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 19/10/2012, 18:58
 
Fecha de Ingreso: julio-2011
Ubicación: mexico
Mensajes: 41
Antigüedad: 12 años, 7 meses
Puntos: 5
Respuesta: como validar la verificación de una contraseña en PHP

sería bueno que pasarás la condicional completa, puede que pase el primer else, y por eso se salte el else if.
  #4 (permalink)  
Antiguo 19/10/2012, 19:02
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 4 meses
Puntos: 168
Respuesta: como validar la verificación de una contraseña en PHP

Cita:
Iniciado por abimaelrc Ver Mensaje
elseif es junto pero usa var_dump para que verifiques los valores
Da lo mismo, se interpreta igual else if, y elseif
  #5 (permalink)  
Antiguo 19/10/2012, 19:09
 
Fecha de Ingreso: octubre-2012
Ubicación: Ciudad de México
Mensajes: 25
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: como validar la verificación de una contraseña en PHP

Cita:
Iniciado por abimaelrc Ver Mensaje
elseif es junto pero usa var_dump para que verifiques los valores
He puesto elseif pero sigue el problema, aunque las contraseñas sean diferentes el proceso de registro finaliza correctamente con dos mensajes, el de la acreditacion del registro y el mensaje que le doy cuando las contraseñas no son iguales. Dejo mi codigo completo por si sirve de algo.

Código PHP:
<?PHP

    
// Incluir el archivo de Conexión a la Base de Datos //
    
include_once ("connection.php");
    
    
// Variantes del Registro //
    
$name        =    $_POST["name"];
    
$nick        =    $_POST["nick"];
    
$pass        =    $_POST["pass"];
    
$repass        =    $_POST["repass"];
    
$mail        =    $_POST["mail"];
    
$remail        =    $_POST["remail"];
    
$country    =    $_POST["country"];
    
$sex        =    $_POST["sex"];
    

    
// Comprobar si el formulario de Registro no se envía vacío //
    
if(empty($name) && empty($nick) && empty($pass) && empty($repass) && empty($mail) && empty($remail) && empty($country) && empty($sex))
{
        echo 
"<p>¡UPS! Por favor rellena todos los campos.</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el campo 'Nombre' no está vacío //
    
elseif(empty($name))
{
        echo 
"<p>Haz olvidado ingresar tu <b>Nombre</b>!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el campo 'Apodo' no está vacío //
    
elseif(empty($nick))
{
        echo 
"<p>Haz olvidado ingresar tu <b>Nombte de usuario</b>!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el campo 'Contraseña' no está vacío //
    
elseif(empty($pass))
{
        echo 
"<p>Haz olvidado ingresar tu <b>Contrase&ntilde;a</b>!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el campo 'Repite Tu Contraseña' no está vacío //
    
elseif(empty($repass))
{
        echo 
"<p>Haz olvidado repetir tu <b>Contrase&ntilde;a</b>!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}
 
     
// Comprobar si el campo 'Contraseña' & 'Repite Tu Contraseña' coinciden //
     
elseif($pass != $repass)

        echo 
"<p>Las <b>Contrase&ntilde;añas</b> no coinciden!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";


    
// Comprobar si el campo 'Correo Electronico' no está vacío //
    
elseif(empty($mail))
{
        echo 
"<p>Haz olvidado ingresar tu <b>Correo electr&oacute;nico</b>!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el campo 'Repite Tu Correo Electronico' no está vacío //
    
elseif(empty($remail))
{
        echo 
"<p>Haz olvidado repetir tu <b>Correo electr&oacute;nico</b>!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el campo 'País' no está vacío //
    
elseif(empty($country))
{
        echo 
"<p>Haz olvidado ingresar tu <b>Pa&iacute;s</b>!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el campo 'Sexo' no está vacío //
    
elseif(empty($sex))
{
        echo 
"<p>Haz olvidado ingresar tu <b>Sexo</b>!</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el 'Apodo' ingresado está disponible //
    
$value_nick mysql_query("SELECT * FROM users WHERE nick='".$nick."'");
    
$counter_nick mysql_num_rows($value_nick);
        if(
$counter_nick >= 1)
{
        echo 
"<p>El Apodo <b>".$nick."</b> ya se encuentra registrado.<br />Intenta con otro Apodo.</p>";
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}

    
// Comprobar si el 'Correo Electrónico' ingresado está disponible //
    
else {
    
$value_mail mysql_query("SELECT * FROM users WHERE mail='".$mail."'");
    
$counter_mail mysql_num_rows($value_mail);
        if(
$counter_mail >= 1)
{
        echo 
"<p>El Correo Electr&oacute;nico <b>".$mail."</b> ya se encuentra registrado.
        <br />Intenta con otro Correo Electr&oacute;nico.</p>"
;
        echo 
"<a href=\"javascript:history.back(1)\">Regresar</a>";
}
    else
{

    
// Registrando al Usuario //
    
$insert mysql_query("INSERT INTO users(name,nick,pass,mail,country,sex)VALUES('".$name."','".$nick."','".$pass."','".$mail."','".$country."','".$sex."')");
        echo 
"<p>Te Haz Registrado Correctamente. Ya Puedes Iniciar Sesión <b>".$nick."</b>.</p>";

}    
// Cierre del Registrar //
}    // Cierre de Comprobaciones //

?>
El código funciona bien, lo saque de un tutorial pero quise agregarle lo de la verificación de las contraseñas.
  #6 (permalink)  
Antiguo 19/10/2012, 19:32
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 4 meses
Puntos: 168
Respuesta: como validar la verificación de una contraseña en PHP

Lo que pasa que vos con esa parte

Código PHP:
Ver original
  1. elseif($pass != $repass)
  2. {  
  3.         echo "<p>Las <b>Contrase&ntilde;añas</b> no coinciden!</p>";
  4.         echo "<a href=\"javascript:history.back(1)\">Regresar</a>";
  5. }

solo alertas de que no son lo mismo las 2, pero con eso no impedis que se inserten los datos, porque la parte en la cual haces el INSERT de los datos está totalmente a parte de esa comprobación, no tiene nada que ver.

Código PHP:
Ver original
  1. if($counter_nick >= 1)
  2. {
  3.         echo "<p>El Apodo <b>".$nick."</b> ya se encuentra registrado.<br />Intenta con otro Apodo.</p>";
  4.         echo "<a href=\"javascript:history.back(1)\">Regresar</a>";
  5. }
  6.  
  7.     // Comprobar si el 'Correo Electrónico' ingresado está disponible //
  8.     else {
  9.     $value_mail = mysql_query("SELECT * FROM users WHERE mail='".$mail."'");
  10.     $counter_mail = mysql_num_rows($value_mail);
  11.         if($counter_mail >= 1)
  12. {
  13.         echo "<p>El Correo Electr&oacute;nico <b>".$mail."</b> ya se encuentra registrado.
  14.        <br />Intenta con otro Correo Electr&oacute;nico.</p>";
  15.         echo "<a href=\"javascript:history.back(1)\">Regresar</a>";
  16. }
  17.     else
  18. {
  19.  
  20.     // Registrando al Usuario //
  21.     $insert = mysql_query("INSERT INTO users(name,nick,pass,mail,country,sex)VALUES('".$name."','".$nick."','".$pass."','".$mail."','".$country."','".$sex."')");
  22.         echo "<p>Te Haz Registrado Correctamente. Ya Puedes Iniciar Sesión <b>".$nick."</b>.</p>";
  23.  
  24. }    // Cierre del Registrar //
  25. }    // Cierre de Comprobaciones //

en esa parte, vos seleccionas de tu tabla si ya existe el apodo, si existe se lo alertas y no hace el insert, pero suponete que ingreso un apodo que no existe, bárbaro, pasa al siguiente condicional del email, comprueba si existe o no, ahi le pongo otro que tampoco existe, por lo tanto ya no queda nada mas que hacer el INSERT, ves que no tiene nada que ver el que pass y re_pass sean diferentes.
Tendrás que pensar para ver como solucionas eso, porque tu lógica está bien hecha, porque en realidad es lo que hace, pero no es lo que vos queres
  #7 (permalink)  
Antiguo 19/10/2012, 20:04
 
Fecha de Ingreso: octubre-2012
Ubicación: Ciudad de México
Mensajes: 25
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: como validar la verificación de una contraseña en PHP

Cita:
Iniciado por rodrigo791 Ver Mensaje
Lo que pasa que vos con esa parte

Código PHP:
Ver original
  1. elseif($pass != $repass)
  2. {  
  3.         echo "<p>Las <b>Contrase&ntilde;añas</b> no coinciden!</p>";
  4.         echo "<a href=\"javascript:history.back(1)\">Regresar</a>";
  5. }

solo alertas de que no son lo mismo las 2, pero con eso no impedis que se inserten los datos, porque la parte en la cual haces el INSERT de los datos está totalmente a parte de esa comprobación, no tiene nada que ver.

Código PHP:
Ver original
  1. if($counter_nick >= 1)
  2. {
  3.         echo "<p>El Apodo <b>".$nick."</b> ya se encuentra registrado.<br />Intenta con otro Apodo.</p>";
  4.         echo "<a href=\"javascript:history.back(1)\">Regresar</a>";
  5. }
  6.  
  7.     // Comprobar si el 'Correo Electrónico' ingresado está disponible //
  8.     else {
  9.     $value_mail = mysql_query("SELECT * FROM users WHERE mail='".$mail."'");
  10.     $counter_mail = mysql_num_rows($value_mail);
  11.         if($counter_mail >= 1)
  12. {
  13.         echo "<p>El Correo Electr&oacute;nico <b>".$mail."</b> ya se encuentra registrado.
  14.        <br />Intenta con otro Correo Electr&oacute;nico.</p>";
  15.         echo "<a href=\"javascript:history.back(1)\">Regresar</a>";
  16. }
  17.     else
  18. {
  19.  
  20.     // Registrando al Usuario //
  21.     $insert = mysql_query("INSERT INTO users(name,nick,pass,mail,country,sex)VALUES('".$name."','".$nick."','".$pass."','".$mail."','".$country."','".$sex."')");
  22.         echo "<p>Te Haz Registrado Correctamente. Ya Puedes Iniciar Sesión <b>".$nick."</b>.</p>";
  23.  
  24. }    // Cierre del Registrar //
  25. }    // Cierre de Comprobaciones //

en esa parte, vos seleccionas de tu tabla si ya existe el apodo, si existe se lo alertas y no hace el insert, pero suponete que ingreso un apodo que no existe, bárbaro, pasa al siguiente condicional del email, comprueba si existe o no, ahi le pongo otro que tampoco existe, por lo tanto ya no queda nada mas que hacer el INSERT, ves que no tiene nada que ver el que pass y re_pass sean diferentes.
Tendrás que pensar para ver como solucionas eso, porque tu lógica está bien hecha, porque en realidad es lo que hace, pero no es lo que vos queres
Rodrigo, muchas gracias! Tiene lógica como explicas las cosas, ya logre que aparte de avisar retenga la información antes de enviarla a la DB. De nuevo muchas gracias! y quisiera saber ¿Cómo aprendiste PHP? haces que parezca ser tan sencillo, todos mis problemas planteados en el foro me los haz solucionado tú! Saludos (:
  #8 (permalink)  
Antiguo 19/10/2012, 20:08
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 4 meses
Puntos: 168
Respuesta: como validar la verificación de una contraseña en PHP

En el 2009 arranque a ver algo sobre php, algunos manuales y videotutoriales, luego lo deje a la mier@##@! porque andaba en otras cosas, otros lenguajes.

Y bueno retome en este año todo, ya tenia conocimientos de programación por otros lenguajes, como C++, visual basic.

Y bueno algo se, pero me falta pila todavía, supongo que si no dejo este entorno de la programación, dentro de 2 años sabre bastante mas.
La mejor forma de aprender, a practica y error.
Y para estar atento a todo lo referente con actualizaciones, seguridad, etc, un foro como este.
  #9 (permalink)  
Antiguo 19/10/2012, 20:25
 
Fecha de Ingreso: octubre-2012
Ubicación: Ciudad de México
Mensajes: 25
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: como validar la verificación de una contraseña en PHP

Cita:
Iniciado por rodrigo791 Ver Mensaje
En el 2009 arranque a ver algo sobre php, algunos manuales y videotutoriales, luego lo deje a la mier@##@! porque andaba en otras cosas, otros lenguajes.

Y bueno retome en este año todo, ya tenia conocimientos de programación por otros lenguajes, como C++, visual basic.

Y bueno algo se, pero me falta pila todavía, supongo que si no dejo este entorno de la programación, dentro de 2 años sabre bastante mas.
La mejor forma de aprender, a practica y error.
Y para estar atento a todo lo referente con actualizaciones, seguridad, etc, un foro como este.
Buenas recomendaciones, gracias (:

Etiquetas: contraseña, formulario, registro, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:55.