Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problemas en sistema de login PHP

Estas en el tema de Problemas en sistema de login PHP en el foro de Bases de Datos General en Foros del Web. Buenas, soy nuevo en esto de php y también en el foro como veran jeje. Resulta que estoy trabajando con un sistema de login, para ...
  #1 (permalink)  
Antiguo 30/08/2010, 15:51
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 13 años, 8 meses
Puntos: 2
Problemas en sistema de login PHP

Buenas, soy nuevo en esto de php y también en el foro como veran jeje.
Resulta que estoy trabajando con un sistema de login, para que usuarios registrados entren a una sección restringida del sitio.
El problema es que si bien, logra conectar a la bd, no valida de manera correcta al usuario, es decir me marca usuario invalido.
Dejo el codigo donde valida a los usuarios y la tabla de la bd por si alguno mas experimentado en el tema encuentra algo que yo no :S.
Un saludo y desde ya muchas gracias.-

Check Login
Código:
<?php
$host='sql310.eshost.com.ar'; 
$username='eshos_6252824';
$password='***';
$db_name='eshos_6252824_user';
$tbl_name='usuarios';

//Conectamos con el servidor y seleccionamos la base de datos

echo 'Intentando conectar a '.$host.'<br>';
echo '<b>Respuesta del servidor:</b> <br> ';
$conexion = @mysql_connect($host, $username, $password); // se conecta con el servidor

if (!$conexion){
echo "Error al intentar conectarse con el servidor MySQL<br>";
exit(); 
}else{
echo " Conexion exitosa con el servidor MySQL<br>";
};

if (!mysql_select_db($db_name, $conexion)){  // selecciona la base de datos
echo "No se pudo conectar correctamente con la Base de datos<br>";
exit();
}else{
echo " Conexion exitosa con la Base de datos<br>";
};

//Cogemos los datos que nos llegan desde el formulario ( lo tendremos que crear)

$minombre=$_POST['nick'];
$contrasena=$_POST['password'];

// Unas pequeñas medidas de seguridad para proteger las bases de datos de posibles inyecciones

$minombre = stripslashes($minombre);
$contrasena = stripslashes($contrasena);
$minombre = mysql_real_escape_string($minombre);
$contrasena = mysql_real_escape_string($contrasena);

$sql="SELECT * FROM $tbl_name WHERE username='$minombre' and password='$contrasena'";
$result=mysql_query($sql);

// Contamos el numero de filas
$count=mysql_num_rows($result);

//Si el resultado marcado es $minombre y $contrase�a,deber�a haber solo una fila
if($count==1){

//Registramos usuario y redireccionamos a exito.php
session_register("minombre");
session_register("contrasena");
header("location:exito.php");
}
else {
echo "Nombre de usuario equivocado o contrasena";
}
?>
exito.php
Código:
<?php
session_start();
if(!session_is_registered('myusername')){
header("location:index.html");
}
?>
SQL
Código:
CREATE TABLE IF NOT EXISTS `usuarios` (
  `nick` varchar(50) NOT NULL,
  `password` varchar(25) NOT NULL,
  `Index` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`Index`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
  #2 (permalink)  
Antiguo 30/08/2010, 16:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Problemas en sistema de login PHP

Prueba poner en la consulta sql "like" en lugar de "=", estas comparando texto no datos numéricos. Espero que sea esto.
Saludos
  #3 (permalink)  
Antiguo 31/08/2010, 05:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Problemas en sistema de login PHP

Gracias por el dato, aún así me devuelve el mismo error :S.
La consulta quedo así:

Código:
$sql="SELECT * FROM $tbl_name WHERE username like '$minombre' and password like '$contrasena'";
$result=mysql_query($sql);
Y el mensaje de error sigue apareciendo :(

Cita:
Intentando conectar a sql310.eshost.com.ar
Respuesta del servidor:
Conexion exitosa con el servidor MySQL
Conexion exitosa con la Base de datos
Nombre de usuario equivocado o contrasena
  #4 (permalink)  
Antiguo 31/08/2010, 07:07
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 4
Respuesta: Problemas en sistema de login PHP

Hola ramiromd

Porque no pruebas mostrando la consulta de sql que haces hacia la tabla donde tienes los usuarios, muy probablemente sea q no estes pasando los datos q son o los estes pasando mal ya que se va por la parte de cuando no encuentra registros.

antes de ejecutar
Código MySQL:
Ver original
  1. $sql="SELECT * FROM $tbl_name WHERE username like '$minombre' and password like '$contrasena'";
hazle un echo asi sabras si estas metiendo una comilla de mas a la consulta, o si no estas pasando los datos correctamente o te falta definir algo, a mi parecer le quitaria las comillas sencillas donde filtras en el query.

Saludos.
  #5 (permalink)  
Antiguo 31/08/2010, 08:54
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Problemas en sistema de login PHP

Es que entonces lo que te está pasando es que tienes mal la conexión con la base de datos. No es que te falle el sistema de login es que el usuario y el pass de la conexión con mysql está mal.

También estas haciendo la consulta sobre el campo username cuando creas la tabla usuarios con nick no con username.

Última edición por jualder; 31/08/2010 a las 09:00
  #6 (permalink)  
Antiguo 31/08/2010, 20:48
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Problemas en sistema de login PHP

Jualder, en efecto, preguntaba por el campo username cuando debería preguntar por el nick.
Consecuencias del copy paste y 12 hs sin dormir a puro café jejeje.
Un saludo y gracias.-
  #7 (permalink)  
Antiguo 01/09/2010, 05:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Problemas en sistema de login PHP

jejeje suele pasar....

saludos...

Etiquetas: login, php, sitemap
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 04:44.