Foros del Web » Programando para Internet » PHP »

Registro user

Estas en el tema de Registro user en el foro de PHP en Foros del Web. Hola a todos! Tengo un código básico para el registro de un user. Funciona bien la validación, el problema es que quiero validar si las ...
  #1 (permalink)  
Antiguo 18/09/2011, 10:46
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Registro user

Hola a todos!
Tengo un código básico para el registro de un user.
Funciona bien la validación, el problema es que quiero validar si las 2 contraseñas ingresas coinciden sino muestra un msj de error.
Código PHP:
Código PHP:
$error "";
 if(!empty(
$_POST['username']) || (!empty($_POST['pass1'])) || (!empty($_POST['pass2'])) ){
                            
$username $_POST['username'];
                            
$username mysql_real_escape_string($username);
                            
                            
$pass1 $_POST['pass1'];
                            
$pass2 $_POST['pass2'];
                            if (
$pass1 != $pass2
                            {
                                
$error "<div class=\"box red\">
                                        <p>Las contrase&ntilde;as no coinciden..</p>
                                    </div>"
;
                            }
                            else
                            {
                                
$pass1 mysql_real_escape_string($pass1);
                                
$pass md5($pass1); 
                            
                                
$sql "INSERT INTO admin (username,password) 
                                VALUES ('$username','$pass')"
;
                                
$query mysql_query($sql) or die(mysql_error());
                                
header("Location:index.php?register_admin");
                            }
                        }
                        else
                        {
                            
$error "<div class=\"box red\">
                                        <p>Escribe nombre de usuario.</p>
                                        <p>Escribe contrase&ntilde;a.</p>
                                        <p>Repite la contrase&ntilde;a.</p>
                                    </div>"
;
                        }

$body .= '<div class="admin_content">
                                    <form action="" method="post" enctype="multipart/form-data">
                                    '
.$error.'
                                    <div class="info">
                                    <p>
                                    <label for="username">Usuario</label> <input type="text" name="username" id="username"/>
                                    <span id="status"></span>
                                    </p>
                                    <p>
                                    <label for="pass">Contrase&ntilde;a</label> <input type="password" name="pass" />
                                    </p>
                                    <p>
                                    <label for="pass2">Repite contrase&ntilde;a</label> <input type="password" name="pass2" />
                                    </p>
                                    <p>
                                    <input type="submit" value="Registrar" class="submit" />
                                    </p>
                                    </div>
                                    </form>
                                    </div>'

Quien pueda ayudarme se los agradezco!
Muchas gracias.
Saludos!
  #2 (permalink)  
Antiguo 18/09/2011, 12:00
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 9 meses
Puntos: 72
Respuesta: Registro user

Pues para comparar cadenas de caracteres se puede utilizar la función srtpos() la cual devuelve la posición de la primera ocurrencia de una cadena dentro de otra y de no existir ninguna ocurrencia devuelve false. Entoces, en este caso, la comparación seria de esta manera:
Código PHP:
Ver original
  1. if (strpos($pass1, $pass2)===false) {
  2. ...
  3. }

Según el manual de PHP es importante utilizar '===' para evitar posibles problemas.
  #3 (permalink)  
Antiguo 18/09/2011, 14:10
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Registro user

Cita:
Iniciado por ale_dla Ver Mensaje
...Funciona bien la validación, el problema es que quiero validar si las 2 contraseñas ingresas coinciden sino muestra un msj de error.
Te da problemas? Eso lo tienes ya en tu código.

Código PHP:
// ...                      
$pass1 $_POST['pass1'];
$pass2 $_POST['pass2'];
if (
$pass1 != $pass2# <-- Aquí lo tienes
{
     
$error "<div class=\"box red\">
     <p>Las contrase&ntilde;as no coinciden..</p>
     </div>"
;
}
else
{
// ...

__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #4 (permalink)  
Antiguo 18/09/2011, 14:59
(Desactivado)
 
Fecha de Ingreso: septiembre-2010
Mensajes: 498
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Registro user

puedes usar este código ya que así lo uso yo

<script type="text/javascript">
var RegExPattern = /[^\w]/;
$(document).ready(function(){
$("#form1").validate({
rules: {
contrasena :{
required:true,
},
ccontrasena:{
required: true,
equalTo: "#contrasena"
}

},
messages: {
contrasena:"La contrase&ntilde;a admite solo letras y n&uacute;meros",
ccontrasena: "Las contrase&ntilde;as no coinciden"
}
});
</script>
<form name="form1" method="post" id="form1" action="?mod=usuarios&guardar" >
<table class="datos" cellpadding="5" cellspacing="0">
<tr>
<th>
Usuario: <span>*</span>
</th>
<td>

<input name="usuario" id="usuario" type="text" maxlength="100" size="30"/></td>
</tr>
<tr>
<th>
Contrase&ntilde;a: <span>*</span>
</th>
<td>
<input name="contrasena" id="contrasena" type="password" maxlength="100" size="30" autocomplete="off"/>
</td>
</tr>
<tr>
<th>
Confirmar Contrase&ntilde;a: <span>*</span>
</th>
<td>
<input name="ccontrasena" id="ccontrasena" type="password" maxlength="100" size="30" autocomplete="off"/>
</td>
</tr>
</table>
</form>
  #5 (permalink)  
Antiguo 18/09/2011, 15:47
 
Fecha de Ingreso: abril-2008
Ubicación: Santa Fe, Argentina
Mensajes: 41
Antigüedad: 16 años
Puntos: 14
Respuesta: Registro user

El problema es que los nombres de los inputs son pass y pass2, y en el script estás queriendo acceder a pass1 y pass2.
  #6 (permalink)  
Antiguo 18/09/2011, 15:56
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Registro user

Muchas gracias a todos por sus respuestas!
Disculpen tiene razon Henkka el campo decia pass en vez de pass1..
Ya funciona bien.
Muchas gracias a todos!
Saludos!
  #7 (permalink)  
Antiguo 18/09/2011, 20:37
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Registro user

Sugerencia: Primero haz el md5 de $pass y despues lo escapas con mysql_real_escape_string(), porque?, sencillo, imagina que la contraseña es abc'123", es muy posible que al escaparlo obtengas abc\'123\", con lo que el contenido ya no sera el mismo y el usuario no podra iniciar sesion, a menos que en el formulario de ingreso sigas el mismo orden... nada recomendado en ambos casos.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: mysql, registro, sql, usuarios, 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:30.