Comunidad PHPeros
Lenguajes => PHP => Mensaje iniciado por: RamFu en 27 de Junio de 2008, 01:39:07 am
-
Hola, necesito algo de ayuda ;D
He echo un tagboar un poquito 'chusta', con login, etc. Y el login es del palo MC v6, pero tengo un problema :S
Cuando pongo mi nombre en mayusculas puedo escribir un mensaje sin poner la pass en cambio si lo pongo como en la DB, en minusculas todo, si que se loguea. Me gustaria que aunque se pusiera en mayus, se logueara igual.
Gracias!
-
Hola, necesito algo de ayuda ;D
He echo un tagboar un poquito 'chusta', con login, etc. Y el login es del palo MC v6, pero tengo un problema :S
Cuando pongo mi nombre en mayusculas puedo escribir un mensaje sin poner la pass en cambio si lo pongo como en la DB, en minusculas todo, si que se loguea. Me gustaria que aunque se pusiera en mayus, se logueara igual.
Gracias!
Pues antes de comprovar pasa lo que has introducido a minusculas, y haz tambien que ala añadir un dato como el nick en la base de datos lo hagas en minusculas con la funcion strtolower(); (http://es2.php.net/manual/es/function.strtolower.php)
por ejemplo
<?PHP
$nick = strtolower($_POST["nick"]); //Pasamos a minúsculas
$sacanick = mysql_query("SELECT nick FROM `usuarios`")
or die(mysql_error()); //Sacamos nick de la db
$nicks = mysql_fetch_array($sacanick); //Hacemos el array
$count = count($nicks); //Contamos el array
for ($i=0 ; $i<$count ; $i++)
{
if ($nicks[$i] == $nick) {
echo "Correctamente logueado";
}
}
//Comprovamos con un bucle que en el array está el nick
?>
Y para añadir un dato
<?PHP
$nick = strtolower($_POST["nick"]); //Pasamos a minusculas
$metedatos = mysql_query("INSERT INTO `usuarios` VALUES('','$nick','mas','valres')")
or die(mysql_error()); //Metemos en base de datos
?>
-
El problema seguramente no este en el Nick, el problema debe estar en la contraseña, porque el Hash de, por ejemplo, "prueba" no es el mismo que el de "PruEba", con lo cual el unico dato que habría que "minusculizar" en el registro y en el login es unicamente la contraseña, el nick al comprobarse mediante SQL no es necesario cambiarlo porque según tengo entendido SQL no diferencia entre mayusculas o minusculas en comprobaciones de texto.
-
El problema seguramente no este en el Nick, el problema debe estar en la contraseña, porque el Hash de, por ejemplo, "prueba" no es el mismo que el de "PruEba", con lo cual el unico dato que habría que "minusculizar" en el registro y en el login es unicamente la contraseña, el nick al comprobarse mediante SQL no es necesario cambiarlo porque según tengo entendido SQL no diferencia entre mayusculas o minusculas en comprobaciones de texto.
a mi me extrañó que dijese que no le dejaba el nick porque a mi en cosas que he echo si me deja...
Pos cambiamos
<?PHP
$nick = strtolower($_POST["nick"]); //Pasamos a minúsculas
$sacanick = mysql_query("SELECT nick FROM `usuarios`")
or die(mysql_error()); //Sacamos nick de la db
$nicks = mysql_fetch_array($sacanick); //Hacemos el array
$count = count($nicks); //Contamos el array
for ($i=0 ; $i<$count ; $i++)
{
if ($nicks[$i] == $nick) {
$pass = strtolower($_POST["pass"]);
$pass = md5($pass);
$sacapass = mysql_query("SELECT pass FROM `usuarios` WHERE nick = '$nick'")
or die(mysql_error()); //Sacamos la pass
$dbpass = mysql_fetch_array($sacapass); //Hacemos el array
if ($pass === $dbpass[0]) { //Comprovamos que coinciden
echo "Logueado correctamente";
}
else //Si no coinciden
{
die("La contraseña es incorrecta");
}
}
}
//Comprovamos con un bucle que en el array está el nick
//Despues comprovamos que las pass coincidan
?>
Y en el registro
<?PHP
$nick = strtolower($_POST["nick"]); //Pasamos a minusculas
$pass = strtolower($_POST["pass"]); //Pasamos pass a minusculas
$pass = md5($pass); //Pasamos pass a md5
$metedatos = mysql_query("INSERT INTO `usuarios` VALUES('','$nick','pass')")
or die(mysql_error()); //Metemos en base de datos
?>
Ala, ahi tienes ejemplos...
¡Saludos!
-
Gracias a todos... Ya encontre la solucion en vuestros posts, naveda y josheles...
Mersii!