Foros del Web » Programando para Internet » PHP »

sistema de usuarios....LA PESADILLA FINAL(espero ;))

Estas en el tema de sistema de usuarios....LA PESADILLA FINAL(espero ;)) en el foro de PHP en Foros del Web. pues hoy vuelvo al ataque con el sistema de usuarios mi problema ahora es el siguiente: Código PHP: <?  session_start ();  $server = "localhost" ;  ...
  #1 (permalink)  
Antiguo 07/07/2004, 10:01
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
sistema de usuarios....LA PESADILLA FINAL(espero ;))

pues hoy vuelvo al ataque con el sistema de usuarios

mi problema ahora es el siguiente:

Código PHP:
<? 
session_start
(); 
$server="localhost"
$database="";
$dbpass="";
$dbuser="mysql";

$query="SELECT * FROM usuarios WHERE login='$login'"
$link=mysql_connect($server,$dbuser,$dbpass); 
$result=mysql_db_query($database,$query,$link); 
if(
mysql_num_rows($result)==0){ 
echo 
"No existe el login introducido"
} else { 
$array=mysql_fetch_array($result); 
if(
$array["password"] == MD5($pass) ){ 
$_SESSION["user_id"]=$array["user_id"]; 
$_SESSION["login"]=$array["login"]; 
$_SESSION["password"]=$array["pass"]; 
header("location: user.php"); 
} else { 
echo 
"Password incorrecto!"

if(isset(
$_POST['autologin'])){        
      
setcookie("cook_user_id"$_SESSION["user_id"], time()+60*60*24*100"/"); 
      
setcookie("cook_login"$_SESSION["login"], time()+60*60*24*100"/"); 
      
setcookie("cook_pass"$_SESSION["password"], time()+60*60*24*100"/"); 


?>
donde esta el erro? nolose pero desde luego debe estar en donde comprueba el pass,cuando pongo el pass(lo e probado varias veces y el pass es correcto ;))me dices que password incorrecto!!!!!!porque puede pasar esto?es el ultimo paso :D para terminarlo de una vez!!!gracias a todos:D

Última edición por Newphp; 07/07/2004 a las 10:03
  #2 (permalink)  
Antiguo 07/07/2004, 10:10
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Pon esto y busca diferencias, que las habrá. Igual sobran espacios, mayúsculas, ...

echo "Password incorrecto! .".$array['password'].".-.".MD5($pass).".";
__________________
Kelpie
  #3 (permalink)  
Antiguo 07/07/2004, 11:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
me aparece como encriptado :(
  #4 (permalink)  
Antiguo 07/07/2004, 12:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Newphp
me aparece como encriptado :(
Ambos datos te tienen que aparecer encriptados .. concretamente en formato MD5() que es el que usas.

El caso es que -deben- ser iguales (cuenta los caracteres .. aprox. 32 creo recordar que genera un MD5() ..)

Un saludo,
  #5 (permalink)  
Antiguo 07/07/2004, 13:13
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
AAAAHRGH ya se donde estaba el error,diooooos!!!!!!!!no se el porque el formulario de registro me mandaba mal la contraseña al encriptarla!!!!!,gracias a tu comentario cluster(lo de los 32 caracteres)me he acordado de que son 32,pero me lo encriptaba con los caracteres que queria!!!!al verlo e mirado el codigo de enviar :D y ya esta todo arreglado :D

Muchas Gracias a todos,porfin parece que esto a terminado :D

ahora tengo un problemilla simple ;) aqui os dejo el codigo,luego la explicacion:

Código PHP:
<?
$query 
"select * from usuarios WHERE login='$nick'";
$resp mysql_query($query);
$datos mysql_fetch_array($resp);
   if ( 
$datos[login]!= '$nick') {
     echo 
"
        MUY MAL"
;
        }
    elseif (
$datos[login] == '$nick') {
       echo 
"todo ok"
        }
?>
no se porque aunque el login y todo esta bien me dice que muy mal :( en que fallo?solo me queda esto :D y se termino la pesadilla:D

lo dicho MUCHAS GRACIAS

Última edición por Newphp; 07/07/2004 a las 13:32
  #6 (permalink)  
Antiguo 07/07/2004, 15:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
venga caballeros que ya estamos apunto:D!!!!!!!!!
  #7 (permalink)  
Antiguo 07/07/2004, 22:44
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
La verdad no se me ocurre qué puede estar pasando: Pero prueba escribirlo en pantalla para ver qué valores maneja. También ponle comillas a a la posición del array asociativo y no se las pongas a la variable $nick:
Código PHP:
$query "select * from usuarios WHERE login='$nick'"
$resp mysql_query($query); 
$datos mysql_fetch_array($resp);
if(
$datos['login'] != $nick){ 
     echo 
"MUY MAL";
     echo 
"\$datos['login'] = ".$datos['login']."<br />\n";
     echo 
"\$nick = ".$nick
}elseif (
$datos[login] == '$nick'){ 
       echo 
"todo ok"

Saludos

Última edición por jpinedo; 07/07/2004 a las 22:46
  #8 (permalink)  
Antiguo 07/07/2004, 23:47
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
de esta manera no me imprime nada :( ,lo raro es que si abajo pongo que me muestre los datos del usuario(email etc...)me muestra exactamente los del usuario,asi que si lo reconoce en el "where"pero no se porque me da este fallo :(
  #9 (permalink)  
Antiguo 08/07/2004, 12:45
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Bueno... otra cosa... el "else if" no es necesario porque o es igual, o es diferente... no hay otra.
Prueba esto:
Código PHP:
$query "select * from usuarios WHERE login='$nick'"
$resp mysql_query($query); 
$datos mysql_fetch_array($resp); 
if(
$datos['login'] != $nick){ 
     echo 
"MUY MAL"
     echo 
"\$datos['login'] = ".$datos['login']."<br />\n"
     echo 
"\$nick = ".$nick
}else{ 
       echo 
"todo ok"

Saludos
  #10 (permalink)  
Antiguo 08/07/2004, 13:33
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
parece que le he caido bien y siempre me dice que todo ok :( dios es que no tiene sentido que no funcione :(:(
  #11 (permalink)  
Antiguo 08/07/2004, 18:16
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Bueno.. el problema era cuando te decía "muy mal"... pero si te dice "todo Ok"... créele.
Porque $datos['login'] siempre será igual que $nick... Es más $datos['login'] ha sido creada gracias a que existe $nick... recuerda que en el SQL dice: "...WHERE login='$nick'"... o sea que los dos valores siempre serán iguales.

Antes veía problema y yo lo relacionaba con algunas comillas de más y otras de menos... pero ahora el problema está solucionado.

Saludos
  #12 (permalink)  
Antiguo 09/07/2004, 02:45
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
ok,el problema es que aunque el usuario no este conectado me dice igualmente ok, :( es normal? si lo es me pondre a continuar el codigo para que compare el password y el id:P sino haber si encontramos el fallo

gracias por todo
  #13 (permalink)  
Antiguo 09/07/2004, 11:10
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
mmmm mi problema es que quiero que si no coincide se borre la cookie :D se borrar la cookie pero no se como hacerlo de esta forma :(
  #14 (permalink)  
Antiguo 10/07/2004, 05:31
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 19 años, 11 meses
Puntos: 0
ya esta todo solucionado :D bueno porfin termine la seguridad del sistema de usuarios gracias a todos en especial a cluster que ha respondido a todos mis mensajes con muchisima paciencia y siempre enseñandome algo nuevo :D

en general gracias a todos :D sois los mejores
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:10.