Foros del Web » Programando para Internet » PHP »

Diferencia entre "session_register" y "$_session"

Estas en el tema de Diferencia entre "session_register" y "$_session" en el foro de PHP en Foros del Web. Tengo algunas dudas en lo referente al uso de sessiones, en primer lugar no me queda claro la diferencia en usar session_register ("variable") o $_session["variable"] ...
  #1 (permalink)  
Antiguo 14/10/2004, 11:10
 
Fecha de Ingreso: julio-2003
Ubicación: Capital Federl
Mensajes: 60
Antigüedad: 20 años, 9 meses
Puntos: 0
Diferencia entre "session_register" y "$_session"

Tengo algunas dudas en lo referente al uso de sessiones, en primer lugar no me queda claro la diferencia en usar session_register ("variable") o $_session["variable"] despues de iniciar una session_start().
Necesito guardar 2 o 3 variables para poder ir usando en varias paginas y no estoy seguro de como hacerlo, es factible hacerlo de la siguiente manera:
Obtengo las variables de un fomulario
$usuario=$_POST["usuario"];
$contrasena=$_POST["contrasena"];

realizo la verificacion correspondiente

y ahora las quiero mantener para usar en las paginas subsiguintes

session_star();
$_SESSION["usuario"]=$usuario;
$_SESSION["contrasena"]=$contrasena;
exit()

si ahora paso a otra pagina y quisiera imprimir estas variables iniciando la session y haciendo un simple echo $ usuario; bastaria ???
Desde ya gracias
  #2 (permalink)  
Antiguo 14/10/2004, 11:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tanto el uso de:

session_register('nombre_variable');
$nombre_variable="valor";

para crear una variable de sesión como usar:

$_SESSION['nombre_variable'] = "valor";

Son válidos, .. eso sí, no debes mezclar ambos métodos en tus scripts, o usas uno u otro.

Por lo demás si usas PHP versión 4.1.0 en adelante -debes- usar los arrays superglobales .. El uso de "session_register()" está en desuso y es probable que en próximas versiones de PHP se elimine dicha función (mejor dicho "técnica").

Cita:
si ahora paso a otra pagina y quisiera imprimir estas variables iniciando la session y haciendo un simple echo $ usuario; bastaria ???
No, .. si usas los arrays superglobales $_SESSION .. no podras acceder de forma "global" a las variables de sesión .. debes usar el mismo array que usastes:

session_start();
echo $_SESSION['nombre_variable'];

El uso de "session_start()" es obligatorio simpre .. Si no lo usas no podrás acceder a tus variables de sesión.

Un saludo,


Un saludo,
  #3 (permalink)  
Antiguo 14/10/2004, 13:24
 
Fecha de Ingreso: julio-2003
Ubicación: Capital Federl
Mensajes: 60
Antigüedad: 20 años, 9 meses
Puntos: 0
A ver si te comprendi correctamente, entonces el script me quedaria algo asi :
Obtengo las variables de un fomulario
$usuario=$_POST["usuario"];
$contrasena=$_POST["contrasena"];

realizo la verificacion correspondiente
Inicio la session y valorizo las variables a mentener

session_star();
$_SESSION["usuario"]=$usuario;
$_SESSION["contrasena"]=$contrasena;

Para el caso de que sean mas
$_SESSION["masvariables"]=$masvariables;
exit().

Al pasar a la siguiente pagina tendria que ser asi:

SESSION_START();
ECHO "USUARIO", $SESSION["usuario"]/n "CONTRASEÑA", $SESSION["contrasena"]

y listo ???
  #4 (permalink)  
Antiguo 14/10/2004, 13:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En lugar de: $SESSION["usuario"] usar: $_SESSION["usuario"]

Por lo demás .. así es (bueno .. depende de como propages el SID (identificador único de sesión ..) pero "por defecto" se suele hacer por cookies (session.use_cookies = ON en tu php.ini) así que si usas un navegador que acepte cookies .. el sistema (la propagación del SID) debería ir.

Un saludo,
  #5 (permalink)  
Antiguo 14/10/2004, 14:02
 
Fecha de Ingreso: julio-2003
Ubicación: Capital Federl
Mensajes: 60
Antigüedad: 20 años, 9 meses
Puntos: 0
Ok, Cluster , garcias, lo de $session fue un error de tipeo al redactar el post.
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 05:04.