Foros del Web » Programando para Internet » PHP »

Me registro pero nunca coincide con el user y la pass la identificación

Estas en el tema de Me registro pero nunca coincide con el user y la pass la identificación en el foro de PHP en Foros del Web. Hola a todos, tengo un sistema de registro por el cual se puede registrar la gente, todo funciona bien hasta el momento de conectarse, que ...
  #1 (permalink)  
Antiguo 03/10/2009, 06:31
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años
Puntos: 23
Me registro pero nunca coincide con el user y la pass la identificación

Hola a todos, tengo un sistema de registro por el cual se puede registrar la gente, todo funciona bien hasta el momento de conectarse, que es cuando me salta diciendo:

Cita:
El Nick o la contraseña (o ambos) son incorrectas, coloquelos correctamente.
Al principio pensé que era debido al archivo configuracion.php que creaba una y otra vez la tabla, pero todavía perdura el problema. Me intento conectar pero me da el mensaje anterior que os he mostrado.

Estos son los codigos:

configuracion.php
// Aquí se guarda la configuración de la BD y el inicio de la sesión //
Código php:
Ver original
  1. <?php
  2. $bdhost = "localhost" ;
  3. $bduser = "root" ;
  4. $bdpass = "" ;
  5. $bd = "registro" ;
  6.  
  7. mysql_connect ("$bdhost", "$bduser", "$bdpass") ;
  8. mysql_select_db ("$bd") ;
  9.  
  10.  
  11. ?>
registrar-admin.php
// Aquí está el formulario por el que se registra el user //
Código php:
Ver original
  1. <?php
  2. require ('configuracion.php') ;
  3.  
  4. echo '<form action="registro-admin.php" method="post">
  5. Nombre de usuario: <input type="text" name="nick" size="30">
  6. Contraseña: <input type="password" name="contrasena" size="30">
  7. Repetir contraseña: <input type="password" name="contrasena2" size="30">
  8. Email: <input type="text" name="email" size="100">
  9. Tu descripción: <textarea name="descripcion" cols="30" rows="10"></textarea>
  10. <input type="submit" name="enviar" value="Enviar"></form>' ;
  11.  
  12. ?>

registro-admin.php
// Aquí el codigo del registro //
Código php:
Ver original
  1. <?php
  2. require ('configuracion.php') ;
  3.  
  4. if (($_post [nick] == ' ') or ($_post [contrasena] == ' ') or ($_post [contrasena2] == ' ') )
  5. {
  6. Header("Location: conectar.php") ;
  7. } else {
  8. if ($_post [contrasena] != $_post [contrasena2])
  9. {
  10. echo 'Las contraseñas no son iguales, por favor, vuelva a escribirlas' ;
  11. } else {
  12. $user = stripslashes ($_post ["nick"]) ;
  13. $user = strip_tags ($user) ;
  14. $pass = stripslashes ($_post ["contrasena"]) ;
  15. $pass = strip_tags ($pass) ;
  16.  
  17. $usuarios = mysql_query ("Select nick From users Where nick='$user' ") ;
  18. if ($user_ok = mysql_fetch_array ($usuarios))
  19. {
  20. echo 'El nombre de usuario ya se encuentra registrado' ;
  21. mysql_free_result ($usuarios) ;
  22. } else {
  23. $email = stripslashes ($_post ["email"]) ;
  24. $email = strip_tags ($email) ;
  25.  
  26. $descripcion = stripslashes ($_post ["descripcion"]) ;
  27. $descripcion = strip_tags ($descripcion) ;
  28. $descripcion = str_replace ("\n\r","<br>",$descripcion);
  29. $descripcion = str_replace("\r\n","<br>",$descripcion) ;
  30. $descripcion = str_replace("\n","<br>",$descripcion) ;
  31.  
  32. $fecha = time() ;
  33. $nivel = "2" ;
  34.  
  35. mysql_query ("Insert Into users (nick, contrasena, email, fecharegistro, niveldeusuario, descripciondeusuario) values
  36. ('$user', '$pass', '$fecha', '$nivel', '$descripcion') ") ;
  37. echo 'Se ha registrado con éxito <br>' ;
  38. echo 'Ahora podrá <a href="conectar.php">conectarse</a>.' ;
  39. }
  40. }
  41. }
  42. ?>

conectar.php
// Aquí el formulario de conección //
Código php:
Ver original
  1. <?php
  2. require ('configuracion.php') ;
  3.  
  4. if (!isset ($_session [usuario]) )
  5. {
  6.  
  7. echo '<form action="autentificar.php" method="post">
  8. Nick: <input type="text" name="nick" size="30">
  9. Contraseña: <input type="password" name="contrasena" size="30">
  10. <input type="submit" name="submit" value="Enviar"></form>' ;
  11.  
  12. } else {
  13.  
  14. echo 'Bienvenido '.$_SESSION [usuario] ;
  15. echo '<br /> Tu nivel es '.$_SESSION [nivel] ;
  16. if ($_SESSION [nivel] == 1)
  17.  
  18. echo '<a href="perfil.php">Perfil</a>' ;
  19. }
  20. echo '<a href="desconectar.php">Desconectarse</a>' ;
  21.  
  22.  
  23. if ($_SESSION [nivel] == 2)
  24.  
  25. echo 'Debes esperar a que el administrador te confirme' ;
  26.  
  27. ?>

autentificar.php
// Aquí autentifico el usuario, si el nick y la pass es todo correcto //
Código php:
Ver original
  1. <?php
  2. require ('configuracion.php') ;
  3.  
  4. if ( ($_POST [nick] == '') or ($_POST [contrasena] == '') )
  5.  
  6. {
  7. Header ("Location: conectar.php") ;
  8. } else {
  9.  
  10. $usuarios = mysql_query ("SELECT * FROM users WHERE nick='$_POST[nick]' and contrasena='$_POST[contrasena]'") ;
  11. if ($user_ok = mysql_fetch_array ($usuarios))
  12. {
  13.  
  14. session_register ("usuario") ;
  15. session_register ("nivel") ;
  16.  
  17. $_SESSION [usuario] = $user_ok ["nick"] ;
  18. $_SESSION [id] = $user_ok ["id"] ;
  19. $_SESSION [nivel] = $user_ok ["nivel"] ;
  20. Header ("Location: conectarse.php") ;
  21.  
  22. } else {
  23.  
  24. echo 'El Nick o la contraseña (o ambos) son incorrectas, coloquelos correctamente.' ;
  25. }
  26.  
  27. }
  28. ?>

Todavía tengo mas archivos, pero no tienen nada que ver ahora mismo con la conexión.

Lo he revisado todo pero nada, no encuentro nada raro ; ¿qué puede estar pasando?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #2 (permalink)  
Antiguo 03/10/2009, 06:38
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

Tampoco veo algo raro, pero para debuggear, sobre todo el código agrega un error_reporting(E_ALL | E_STRICT);, y a los $_POST, dentro de las casillas, enciérralos con comillas simples, osea, $_POST[contrasena] => $_POST['contrasena']

Nos avisas cualquier cosa.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 04/10/2009, 14:19
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

Si dices que el registro se hace correctamente, quiere decir que los usuarios que vas registrando los puedes ver en tu base de datos, correcto?

En el archivo de autentificar.php en la línea 10:

#
$usuarios = mysql_query ("SELECT * FROM users WHERE nick='$_POST[nick]' and contrasena='$_POST[contrasena]'") ;
#
if ($user_ok = mysql_fetch_array ($usuarios))

Prueba a hacer un echo $usuarios; y dinos que es lo que te muestra, de igual forma realiza esa consulta en tu base de datos.

con eso tendremos mas pistas.

Saludos
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #4 (permalink)  
Antiguo 04/10/2009, 14:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

También en registro_admin.php cambia $_post por $_POST.

Saludos.
  #5 (permalink)  
Antiguo 12/10/2009, 14:01
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años
Puntos: 23
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

Cita:
Iniciado por KrowMx Ver Mensaje
Si dices que el registro se hace correctamente, quiere decir que los usuarios que vas registrando los puedes ver en tu base de datos, correcto?

En el archivo de autentificar.php en la línea 10:

#
$usuarios = mysql_query ("SELECT * FROM users WHERE nick='$_POST[nick]' and contrasena='$_POST[contrasena]'") ;
#
if ($user_ok = mysql_fetch_array ($usuarios))

Prueba a hacer un echo $usuarios; y dinos que es lo que te muestra, de igual forma realiza esa consulta en tu base de datos.

con eso tendremos mas pistas.

Saludos
Bueno, si yo hago esto que es lo que te estoy entendiendo:

Código PHP:
echo '$usuarios' 
Hago eso y me escribe:

Código:
$usuarios
Es decir, no me escribe lo que debería de haber, de todas formas, fui al phpMyAdmin y puse esto:

Código sql:
Ver original
  1. SELECT * FROM `users` WHERE `nick`

Y me devuelve esto:

Código SQL:
Ver original
  1. MySQL ha devuelto un valor vacío (i.e., cero columnas). ( La consulta tardó 0.0005 seg )
  2. SELECT *
  3. FROM `users`
  4. WHERE `nick`
  5. LIMIT 0 , 30

Es decir, que realmente no me está registrando nada, ¿verdad?

¿Qué puede estar pasando?

Cita:
Iniciado por GatorV
También en registro_admin.php cambia $_post por $_POST.

Saludos.
Muchas gracias Gator ;)

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #6 (permalink)  
Antiguo 12/10/2009, 14:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

Lee lo siguiente: http://www.forosdelweb.com/f18/como-...1/#post2414268

Las variables de PHP no se evaluan nunca en comillas simples.

Por otro lado exactamente no te esta registrando nada en tu base de datos, así que el problema esta en la parte de registro, cehca que esten pasando correctamente los datos. (lo que te comentaba del uso de $_post vs $_POST)

Saludos.
  #7 (permalink)  
Antiguo 15/10/2009, 09:08
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años
Puntos: 23
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

Cita:
Iniciado por GatorV Ver Mensaje
Lee lo siguiente: http://www.forosdelweb.com/f18/como-...1/#post2414268

Las variables de PHP no se evaluan nunca en comillas simples.

Por otro lado exactamente no te esta registrando nada en tu base de datos, así que el problema esta en la parte de registro, cehca que esten pasando correctamente los datos. (lo que te comentaba del uso de $_post vs $_POST)

Saludos.
Ok, muchas gracias GatorV, lo tendré en cuenta.

Una cosa, no le veo nada raro al registro-admin.php, mira:

Código PHP:
<?php
require ('configuracion.php') ;
 
if ((
$_POST [nick] == ' ') or ($_POST [contrasena] == ' ') or ($_post [contrasena2] == ' ') )
{
Header("Location: conectar.php") ; 
} else {
if (
$_POST [contrasena] != $_POST [contrasena2])
{
echo 
'Las contraseñas no son iguales, por favor, vuelva a escribirlas' ;
} else {
$user stripslashes ($_POST ["nick"]) ;
$user strip_tags ($user) ;
$pass stripslashes ($_POST ["contrasena"]) ;
$pass strip_tags ($pass) ;

$usuarios mysql_query ("Select nick From users Where nick='$user' ") ;
if (
$user_ok mysql_fetch_array ($usuarios))
{
echo 
'El nombre de usuario ya se encuentra registrado' ;
mysql_free_result ($usuarios) ;
} else {
$email stripslashes ($_POST ["email"]) ;
$email strip_tags ($email) ;

$descripcion stripslashes ($_POST ["descripcion"]) ;
$descripcion strip_tags ($descripcion) ;
$descripcion str_replace ("\n\r","<br>",$descripcion);
$descripcion str_replace("\r\n","<br>",$descripcion) ;
$descripcion str_replace("\n","<br>",$descripcion) ;

$fecha time() ;
$nivel "2" ;

mysql_query ("Insert Into users (nick, contrasena, email, fecharegistro, niveldeusuario, descripciondeusuario) values
('$user', '$pass', '$fecha', '$nivel', '$descripcion') "
) ;
echo 
'Se ha registrado con éxito <br>' ;
echo 
'Ahora podrá <a href="conectar.php">conectarse</a>.' ;
}
}
}
?>
Y este es el registrar-admin.php:

Código PHP:
<?php
require ('configuracion.php') ;

echo 
'<form action="registro-admin.php" method="POST">
Nombre de usuario: <input type="text" name="nick" size="30">
Contraseña: <input type="password" name="contrasena" size="30">
Repetir contraseña: <input type="password" name="contrasena2" size="30">
Email: <input type="text" name="email" size="100">
Tu descripción: <textarea name="descripcion" cols="30" rows="10"></textarea>
<input type="submit" name="enviar" value="Enviar"></form>' 
;

?>
¿Qué puede estar pasando?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #8 (permalink)  
Antiguo 15/10/2009, 09:32
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

Revisa que tu query este correcta, puedes imprimirla y/o usar or die(mysql_error()) a la linea donde haces el insert, para ver si hay algun error en esta.
  #9 (permalink)  
Antiguo 15/10/2009, 14:19
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años
Puntos: 23
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

Cita:
Iniciado por darkasecas Ver Mensaje
Revisa que tu query este correcta, puedes imprimirla y/o usar or die(mysql_error()) a la linea donde haces el insert, para ver si hay algun error en esta.

Hola Darkasecas, he colocado esto:

Código PHP:
$usuarios mysql_query ("Select nick From users Where nick='$user' ") ;
or die (
mysql_error()) ; 
Pero cuando registro me ejecuta este error:

Código:
Parse error: syntax error, unexpected T_LOGICAL_OR in C:\xampp\htdocs\lacaja\registro-admin.php on line 18
¿Por qué puede estar pasando?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #10 (permalink)  
Antiguo 15/10/2009, 14:39
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

el or die() debe ir en la misma linea qe la consulta

$usuarios = mysql_query ("Select nick From users Where nick='$user' ") or die (mysql_error()) ;
  #11 (permalink)  
Antiguo 23/10/2009, 09:53
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años
Puntos: 23
Respuesta: Me registro pero nunca coincide con el user y la pass la identificación

Gracias Darkasecas.

Ya he solucionado el registro. Muchas gracias a todos.

Ahora a otros problemas

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
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 19:11.