Foros del Web » Programando para Internet » PHP »

De cookies a sessions

Estas en el tema de De cookies a sessions en el foro de PHP en Foros del Web. Hola. Prego ayuda para convertir las cookies en sesions en el sistema de entrada de mi web, dado que es mas seguro. El codigo que ...
  #1 (permalink)  
Antiguo 30/12/2003, 18:47
 
Fecha de Ingreso: febrero-2003
Mensajes: 54
Antigüedad: 21 años, 2 meses
Puntos: 0
De cookies a sessions

Hola. Prego ayuda para convertir las cookies en sesions en el sistema de entrada de mi web, dado que es mas seguro.

El codigo que tengo ahora al crear las cookies es este, pero no se hacer lo mismo con sesiones. Siguiendo las faqs siempre me queda la pagina en blanco (error).
Código PHP:
//la cookie la tengo con dos variables y dura 90 dias
setcookie("nickusuario",$nickusu,time()+7776000); 
setcookie("password",$passusuenmd5,time()+7776000); 
Y al leerlas:
Código PHP:
if(isset($HTTP_COOKIE_VARS["nickusuario"]) && isset($HTTP_COOKIE_VARS["password"])) 

$result mysql_query("SELECT * FROM usuarios WHERE nick='".$HTTP_COOKIE_VARS["nickusuario"]."' AND password='".$HTTP_COOKIE_VARS["password"]."'"); 

if(
$row mysql_fetch_array($result)) 

setcookie("nickusuario",$HTTP_COOKIE_VARS["nickusuario"],time()+7776000); 
setcookie("password",$HTTP_COOKIE_VARS["password"],time()+7776000); 
Gracias
  #2 (permalink)  
Antiguo 30/12/2003, 21:38
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
Para empezar... incluyes el inicio de sesión al comienzo de cada archivo (script) donde utilices las variables de sesión (ya sea para crearlas o leerlas)...
En tu caso, deberás iniciar la sesión con la función session_start() en todas los scripts donde tengas setcookie() y también donde tengas $HTTP_COOKIE_VARS....

Entonces, deberás cambiar lo siguiente:
Código PHP:
//Siempre inicias la sesión en todos los scripts donde las utilices
session_start();

/*
 *ASIGNACION
*/

//Donde tengas:
setcookie("nickusuario",$nickusu,time()+7776000); 
setcookie("password",$passusuenmd5,time()+7776000);

//Lo cambias por:
$_SESSION["nickusuario"] = $nickusu;
$_SESSION["password"] = $passusuenmd5
De esa manera has creado tus variables de sesión... y las puedes leer desde donde quieras como $_SESSION["nickusuario"] o $_SESSION["password"]... Tu ejemplo podría quedar así:
Código PHP:
if(isset($_SESSION["nickusuario"]) && isset($_SESSION["password"])) 

$result mysql_query("SELECT * FROM usuarios WHERE nick='".$_SESSION["nickusuario"]."' AND password='".$_SESSION["password"]."'"); 

if(
$row mysql_fetch_array($result)) 

$_SESSION["nickusuario"] = $nickusu;
$_SESSION["password"] = $passusuenmd5
Recuerda iniciar la sesión al comienzo del script:
Código PHP:
session_start() 
Saludos
  #3 (permalink)  
Antiguo 30/12/2003, 21:42
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
Me faltaba... esto funciona a partir de php 4.1... si o creo que habrá que utilizar otro método con session_register() y $HTTP_SESSION_VARS...
Te dejo un par de enlaces a las FAQ's:

¿Qué es una sesión?
http://www.forosdelweb.com/showthrea...992#post238992

¿Cómo guardo y leo una variable de sesión?
http://www.forosdelweb.com/showthrea...998#post238998

Saludos
  #4 (permalink)  
Antiguo 30/12/2003, 21:49
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
Una cosa más... el session_start debe estar AL COMIENZO del script... antes de cualquier otra cosa...

Saludos
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 16:50.