Foros del Web » Programando para Internet » PHP »

Error al validar usuarios php+mysql

Estas en el tema de Error al validar usuarios php+mysql en el foro de PHP en Foros del Web. Hola. Ya varias veces he entrado a estos foros y he resuelto muchas dudas gracias a la comunidad, pero ahora estoy atorada con algo que ...
  #1 (permalink)  
Antiguo 18/11/2010, 11:40
 
Fecha de Ingreso: noviembre-2010
Mensajes: 27
Antigüedad: 13 años, 5 meses
Puntos: 0
Error al validar usuarios php+mysql

Hola. Ya varias veces he entrado a estos foros y he resuelto muchas dudas gracias a la comunidad, pero ahora estoy atorada con algo que no logro resolver. Comienzo diciendo que soy relativamente nueva en esto de php+mysql pero estoy suficientemente familiarizada con el lenguaje para poder hacer cambios por mi cuenta, asi que agradezco cualquier ayuda.

Mi problema es que no logro hacer funcionar un query, debe ser un error bastante simple pero he pasado horas viéndolo y creo que ya me ciclé. Pongo mi código:

Tengo una página index.php que contiene lo siguiente:

<?php include("conexion.php"); ?>
<form action="login.php" method="post">
<table class="tabla_login">
<tr>
<td>Usuario:</td>
<td><input type="text" name="user" size="20" maxlength="20" /></td>
<td>Contraseña:</td>
<td><input type="password" name="password" size="20" maxlength="20" /></td>
<td><input class="button" type="submit" name="submit" value="Entrar" /></td>
</tr>
</table>
</form>

Y mi página login.php:

<?php include("conexion.php");

$user=$_POST['user'];
$password=$_POST['password'];
$errorMessage='';
$num_rows=0;

$sql="SELECT * FROM usuarios WHERE user=$user AND password=$password"; /*AQUI TENGO EL PROBLEMA */
echo $sql;
$result=mysql_query($sql) or die (mysql_error());
$num_rows=mysql_num_rows($result) or die ($sql.mysql_error()."");

if($result)
{
if($num_rows > 0)
{
session_start();
$_SESSION['login']='1';
header("Location:index.php");
}
else
{
echo 'Error al iniciar sesión';
$errorMessage='Sesión invalida';
session_start();
$_SESSION['login']='';
}
}
else
{
$errorMessage='Error al iniciar sesión';
}
?>

Al hacer el $sql="SELECT..." la instrucción no me devuelve datos. A continuación incluí el echo $sql; que devuelve lo siguiente como texto:
SELECT * FROM usuarios WHERE user=usuarioX AND password=passwordX Unknown column 'usuarioX' in 'where clause'
donde usuarioX y passwordX son datos válidos que sí existen en mi base de datos. He probado comillas dobles y sencillas en todas las combinaciones que se me han ocurrido y el cambio en el output es que me pide revisar la sintaxis de la instrucción SELECT pero no he tenido suerte. ¿Alguien me puede decir donde me equivoco?
Muchas gracias.
  #2 (permalink)  
Antiguo 18/11/2010, 16:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error al validar usuarios php+mysql

bueno las cadenas de texto en mysql van entre comillas simples 'string' por eso no te da ningun resultado, has pruebas e investiga y veras buenos resultados
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 18/11/2010, 17:24
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Respuesta: Error al validar usuarios php+mysql

deja la consulta con comilla simple ya que son STRING.

$sql="SELECT * FROM usuarios WHERE user='$user' AND password='$password'";
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #4 (permalink)  
Antiguo 18/11/2010, 17:58
 
Fecha de Ingreso: noviembre-2010
Mensajes: 27
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Error al validar usuarios php+mysql

Gracias a ambos por contestar.

Ya intenté la solución que mencionas, xalupeao, y además de devolverme la misma cadena de texto, salvo que con los valores entre comillas sencillas (SELECT * FROM usuarios WHERE user='usuarioX' AND password='passwordX') me aparecen los mensajes:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/carolina/Programming/www/login.php:12) in /home/carolina/Programming/www/login.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /home/carolina/Programming/www/login.php:12) in /home/carolina/Programming/www/login.php on line 40

Pero entiendo que es por tener texto antes de iniciar la sesión; cuando no uso comillas sencillas no aparece, aunque claro, pienso arreglarlo tan pronto sepa porque el query no está funcionando.

¿Alguna otra sugerencia? En verdad no sé qué estoy pasando por alto.
  #5 (permalink)  
Antiguo 19/11/2010, 20:30
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error al validar usuarios php+mysql

esos errores son de PHP y lo que te indican es lo siguiente
Cita:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/carolina/Programming/www/login.php:12) in /home/carolina/Programming/www/login.php on line 38
el session_start debe estar al comienzo de la pagina no a la mitad como lo tienes tu

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /home/carolina/Programming/www/login.php:12) in /home/carolina/Programming/www/login.php on line 40
si existe salida cuando utilizas un header("location") te envia este error siendo salida algun echo, codigo html o algo que se muestre por pantalla, asi que como siempre digo leer un poquito e investigar no le hace mal a nadien tu colocas esos errores en google y te aparecen varias respuestas con esto mismo que te estoy aclarando yo, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 20/11/2010, 18:53
 
Fecha de Ingreso: noviembre-2010
Mensajes: 27
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Error al validar usuarios php+mysql

Gracias Carlos. En efecto, ya hice la corrección y pongo session_start() al principio y con eso elimino esas advertencias.
Pero mi problema original del query que devuelve texto en vez de información de la base de datos sigue, a pesar de intentar soluciones que he hallado en google.

¿A alguien se le ocurre otra sugerencia?
  #7 (permalink)  
Antiguo 20/11/2010, 19:51
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error al validar usuarios php+mysql

este
Cita:
echo $sql;
hace que te imprima tu sentencia x lo que el header location te daria el error que mencionaste antes, igual que el codigo html que tienes ya que para redireccionar con un location no debe de haber salida en la pagina que redireccionas mientras tengas salida siempre te va a decir esto saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 20/11/2010, 22:38
 
Fecha de Ingreso: noviembre-2010
Mensajes: 27
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Error al validar usuarios php+mysql

Carlos, ya lo habías dicho en tu mensaje anterior pero no lo había entendido, ya me queda claro. Hice las correcciones y al fin puedo hacer el login. ¡Gracias!

Etiquetas: php-mysql, 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 11:12.