Foros del Web » Programando para Internet » PHP »

Sistema De Autenticación

Estas en el tema de Sistema De Autenticación en el foro de PHP en Foros del Web. Hola, antes que nada gracias desde ya!!! Tengo un sistema de autenticación que funciona por cookies, ya se que por sesiones es mejor pero de ...
  #1 (permalink)  
Antiguo 25/01/2004, 21:20
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años
Puntos: 2
Sistema De Autenticación

Hola, antes que nada gracias desde ya!!!

Tengo un sistema de autenticación que funciona por cookies, ya se que por sesiones es mejor pero de momento me llega con cookies, el problema es que si en teoría al crear la cookie la crea para todo el dominio solo consigo que la lea en el directorio principal..., me explico cuando crea la cookie e intenta acceder a un archivo restringido al leer la cookie le deja pasar sin problemas siempre que este en el directorio principal, pero si esta en un subdirectorio siempre le redirecciona a la pagina para ingresar en el sistema, no debería valer la cookie para todo el dominio???

A continuación pego el code que crea la cookie


Código PHP:
<?php 
$loginCorrecto 
false
$idUsuarioL
$nickUsuarioL
$emailUsuarioL
$nombreUsuarioL
if(isset(
$_COOKIE["usNick"]) && isset($_COOKIE["usPass"])) 

$result mysql_query("SELECT * FROM usuarios WHERE usuario='".$_COOKIE["usNick"]."' AND password='".$_COOKIE["usPass"]."'"); 

if(
$row mysql_fetch_array($result)) 

setcookie("usNick",$_COOKIE["usNick"],time()+3600); 
setcookie("usPass",$_COOKIE["usPass"],time()+3600); 
$loginCorrecto true
$idUsuarioL $row["id"]; 
$nickUsuarioL $row["usuario"]; 
$emailUsuarioL $row["correo"]; 
$nombreUsuarioL $row["nombre"]; 

else 

//Destruimos las cookies. 
setcookie("usNick","x",time()-3600); 
setcookie("usPass","x",time()-3600); 

mysql_free_result($result); 

?>
Un saludo
  #2 (permalink)  
Antiguo 26/01/2004, 06:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Las cookies valen para todo el dominio si así lo indicas cuando las defines ..

Lo define el 4º parámetro:
www.php.net/setcookie

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 26/01/2004, 19:07
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años
Puntos: 2
Hola Cluster, he estado mirando el archivo que me digiste pero no me aclaro podrías ponerme un ejemplo por favor

Un saludo
  #4 (permalink)  
Antiguo 26/01/2004, 20:05
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años
Puntos: 2
Hola Cluster, a ver despues de leer los comentarios de la pagina de php.net de las cookies y traducir con mi ingles chapuzero he llegado a la conclusión de que con esto:

Código PHP:
setcookie("usNick",$_COOKIE["usNick"],time()+3600,"/"); 
o con esto

Código PHP:
setcookie("usNick",$_COOKIE["usNick"],time()+3600," "); 
debería crear un cookie para todo el dominio no???

Pues no se que hago mal pero en los subdirectorios sigue sin leerla.

Por favor podrías decirme que hago mal???

Un saludo.
  #5 (permalink)  
Antiguo 27/01/2004, 09:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con "/" debería crearla para todo el dominio (sólo el dominio o subdominio que se cree .. pero no para todos los sub.dominios de un dominio).

Código PHP:
setcookie("usNick","Cluster",time()+3600,"/"); 
$_COOKIE["usNick"] lo usaras para leer esa variable de cookie de nombre 'usNick'

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 27/01/2004, 21:35
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años
Puntos: 2
Gracias Cluster llevabas razon, era problema de un include que hacía falta, he probado con setcookie("usNick",$_COOKIE["usNick"],time()+3600,"/"); y con setcookie("usNick",$_COOKIE["usNick"],time()+3600," "); y con las dos funciona, en los comentarios de php.net no aclaran cual de las dos es mejor, usaré la que tu me has dicho.

Un saludo.
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 17:05.