Login con md5 , BD funciona pero no funciona

Iniciado por securedigital, 12 Mayo 2007, 20:24 PM

0 Miembros y 1 Visitante están viendo este tema.

securedigital

Hola a todos.

Tengo mi web site, con un login para entrar, este login consulta en la BD el usuario y el password en md5. Obviamente la bd contiene por ejemplo

User      pepito
pass       21545615645456456465   (md5 inventado)

El hacer clic para entrar vuleve a cargar el login, de forma que no accede a la pagina siguiente, se queda atascado y si pongo un user i pasword inventados hace lo mismo. Segun como esta programado deberia aparecer mensajes de error si el usuario no esta en la BD , pero no aparece NADA, simplemente vuleve a cargar el login.

Teoricamente deberia passar a Principal.php


<?php


$host
="localhost";
$user="**********"//usuari de la base de dades
$pass="********"//password de la base de dades
$db="login"//nom de la base de dades 

mysql_connect($host,$user,$pass) or die (mysql_error());
mysql_select_db($db) or die(mysq_error());

?>









<?php 


define
('CONFIG','config-main.php');
include(
CONFIG);
if (!
$_POST['submit']){
echo 
"<form name='login' method='post' action='index.php'>
<input type='text' name='user' /><br />
<input type='password' name='pass' /><br>
<input type='submit' value='Entrar' name='sumbit' /><input type='reset' value='Esborrar' />
</form>"
;
} else { 
$user $_POST['user'];
$pass md5($_POST['pass']);

$query mysql_query("Select * from login where User = '$user'");
$query mysql_num_rows($query);

if ($query == 0) {
echo "No s'ha trobat l'usuari.<br />
<a href='index.php'>Tornar enrere</a>"
;
} else {
$query2 mysql_fetch_array($query);
if ($query2['Pass'] != $pass) {
echo "Les contrasenyes no coincideixen.<br />
<a href='index.php'>Tornar enrere</a>"
;
} else {

session_start();
$_SESSION['user'] = $user;

header("Location: Principal.php");
}
}
}
?>




Principal.php tiene este script, de forma que si no has superado el login , pues no entras.

<?php
session_start
();
include (
"config-main.php");
$query mysql_query("Select * from login where User = $_SESSION['user']");
$query mysql_num_rows($query);

if (
$query != 1){
header("Location index.php");
} else {
}
?>




Saludos
The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    

Mance

#1
config-main.php

en la línea.

mysql_select_db($db) or die(mysq_error());

es
mysql_select_db($db) or die(mysql_error());

mysql_error()

la "L"... :P.


if ($query2['Pass'] != $pass) {

¿No sería $query2['pass'] != $pass...

lo digo por la mayúscula.

revisa el código entero ...

securedigital

#2
ostras, esto se me havia colado...

He arreglado esos problemas y sigue igual.

Es muy raro ya que si pongo qualquier user y passwd no salta el mensaje de error, por lo que halgo me falla en index.php pero no veo que demonios es.

De todas formas intento ir a Principal.php  manualmente que es teoricamente donde tiene que redireccionar el index.php y ahora me sale un error.

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /usr/export/www/hosting/Principal.php on line 4

esta linea que da error esta arriba, esta todo el codigo de Principal.php.  $query = mysql_query(\"Select * from login where User = $_SESSION[\'user\']\");

No esta passando correctamente el Session, por lo que al index algo le pasa.



Saludos
The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    

Rentero

Parse error: Son errores de sintaxis.

$query = mysql_query("Select * from login where User = $_SESSION['user']");
No tienes porqué escapar la comillas.
Firmado.

securedigital

Hola

He dejado la linea esta asi:

$query = mysql_query("Select * from login where User = $_SESSION['user']");

Sigue dando el mismo error.


The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    

Hans el Topo

Cita de: securedigital en 14 Mayo 2007, 16:37 PM
Hola

He dejado la linea esta asi:

$query = mysql_query("Select * from login where User = '".$_SESSION['user']."');

Sigue dando el mismo error.


$query = mysql_query("select * from login where User = '".$_SESSION['user']."'",$puntero_al_conector);

Las cadenas se comparan con comillas simples en sql xD




 

securedigital

Bien, ahora ya no da el error, pero al introducir el usuario y password correcto entra a Principal.php, pero es que si le meto cualquier otro que no este en la BD tambien entra y no sale ni mensage de advertencia ni te redirecciona a index.php para poner el user adecuado.


Por cierto,
Citar$puntero_al_conector
?¿? puntero al conector ? no te entiendo



Saludos
The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    


securedigital

Arreglado header("Location index.php");

a


header("Location: index.php");


He retocado un poco la estrucutra del codigo, siquieren la publico, funciona mejor pero aun no del todo bien.




Saludos
The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    

Luisango

Publica, publica, jejjee, pon el codigo, posiblemente asi sea mas facil de sacar fallos, si esque hay, supongo..

Saludos!
Even better...