Comunidad de diseño web y desarrollo en internet online

Problema con sesiones en login

Citar            
MensajeEscrito el 11 Nov 2011 01:50 am
Hola!

Me presento, soy Leandro, tengo 17 años y estoy aprendiendo programación, y me encontré con este tutorial para crear un registro y login, y me encuentro con este problema...

Cada vez que me intento loguear me tira este error:

Usuario no existente en la base de datos


El código de login.php es:

Código PHP :

<?php
session_start();

// datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','racing1967')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('whoteca')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

function quitar($mensaje)
{
   $nopermitidos = array("'",'\\','<','>',"\"");
   $mensaje = str_replace($nopermitidos, "", $mensaje);
   return $mensaje;
}

if(!empty($_POST["username"]) && !empty($_POST["password"]))
{
   $usuario = strtolower(htmlentities($_POST["usuario"], ENT_QUOTES));
   $password = md5($_POST["password"]);
   $result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
   if($row = mysql_fetch_array($result)){
      if($row["password"] == $password){
         $_POST["username"] = $row['usuario'];
            session_register('username');
            session_register('password');
         echo 'Has sido logueado correctamente '.$_SESSION['username'].' <p>';
         echo '<a href="index.php">Index</a></p>';
      }else{
         echo 'Password incorrecto';
      }
   }else{
      echo 'Usuario no existente en la base de datos';
   }
   mysql_free_result($result);
} else {
   echo 'Debe especificar un usuario y password';
}
mysql_close();
?>


Soy muuuy novato, así que me gustaría una explicación lo más detallada posible y un poco de paciencia, ya que no entiendo nada de las sesiones :/

Muchas gracias y que tengan un buen día...

Por DoctorMalboro

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Nov 2011 03:43 am
Si no me equivoco... el problema esta en en select, puede ser que no esta pasando bien los datos.... yo te recomiendo que verifiques que la variable $usuario en efecto tenga el nombre del usuario. Puedes hacer un echo al SQL antes de mandarlo, solo para verificar que esta bien.

$sql_query = 'SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'';
echo $sql_query;

Saludos!

Por tecnologiatotal

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 11 Nov 2011 03:58 am
Prueba mejor usando esto:

"SELECT password, usuario FROM usuarios WHERE usuario="'" . $usuario . "'";

El uso de comillas dobles con comillas sencillas.....

Por tecnologiatotal

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 11 Nov 2011 12:53 pm
Muchas gracias por las respuestas, ya lo he resuelto... Simplemente faltaba las comillas simples que indicaran que buscara tal término :)

Código PHP :

$sql_query = "SELECT password, usuario FROM usuarios WHERE usuario='".$usuario."'"; 


Les dejo el código arreglado por si a alguien le pasa lo mismo...

Muchas gracias otra vez, @tecnologiatotal!

Por DoctorMalboro

2 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.