Foros del Web » Programando para Internet » PHP »

$_SESSION VS session_register()

Estas en el tema de $_SESSION VS session_register() en el foro de PHP en Foros del Web. Cluster me recomendó usar $_SESSION a session_register(), sé que el primero es más novedoso pues apareción más tarde, y que no en todos los manuales ...
  #1 (permalink)  
Antiguo 21/05/2003, 11:52
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 10 meses
Puntos: 0
Pregunta $_SESSION VS session_register()

Cluster me recomendó usar $_SESSION a session_register(), sé que el primero es más novedoso pues apareción más tarde, y que no en todos los manuales sobre PHP se trata, pero ¿podrían decirme cual es la diferencia y en qué es mejor uno que otro?

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 21/05/2003, 12:10
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Ferent, $_SESSION apareci´o a partir del PHP 4.1.0 y con eso te das cuenta que muchos manuales "impresos" est´an desactualizados, por eso siempre es mejor leer documentacion en linea.

Te conviene utilizar $_SESSION ya que es un array super-global, por lo que no necesitas hacer un global $_SESSION si intentas utilizarlo dentro de una funcion o metodo de objeto.

Ademas, con tan solo setear un valor en $_SESSION, lo estas registrando en la session, con lo que te ahorras de hacer session_start y session_register.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 21/05/2003, 12:18
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 10 meses
Puntos: 0
Osea, que en vez de tener que hacer:

session_start();
session_register('nombre_s');
$nombre_s="$nombre";

hago:... ¿cómo lo hago?
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #4 (permalink)  
Antiguo 21/05/2003, 14:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mmm Webstudio .. Usando los arrays superglobales $_SESSION .. ¿no es necesario session_start() ? .. (tendré que probarlo mmm)

ferent .. Esto ..
session_start();
session_register('nombre_s');
$nombre_s="$nombre";

sería equivalente a:

Código PHP:
<?
session_start
(); // opcional? .. (sin session.auto_start en php.ini??¿?)
$nombre="bla blabla";
$_SESSION['nombre_s']=$nombre;
?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 21/05/2003, 15:33
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Pues es cierto, me confundi session_register() con $_SESSION. O sea... al utilizar $_SESSION, SI es necesario hacer un session_start(); pero se le puede asignar valores directamente y quedan automaticamente registrados en la session:
Código PHP:
<?
session_start
();
$SESSION["probando"] = "There is no spoon";
?>
y luego en otro archivo
Código PHP:
<?
session_start
();
echo 
"Cita:  ".$SESSION["probando"];
?>
Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #6 (permalink)  
Antiguo 21/05/2003, 16:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, Webstudio jeje . por un momento me asustastes xDD ..

Por cierto jeje .. te faltó el _ en $_SESSION xDD.

Y .. mencionar que para "saltar" de una página a otra .. es necesario que el SID se propague .. ya sea en una cookie . o manualmente/automáticamente en un link/formulario/redireccionamiento usado ... o como gusten. (SID = Identificador único de sesión).


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 21/05/2003 a las 16:24
  #7 (permalink)  
Antiguo 22/05/2003, 02:16
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 10 meses
Puntos: 0
Pues si en los dos métodos hay que poner el start(), en los dos hay que darles un mismo valor (perdonenme mi incultura, pero no veo, a la hora de crear variables de sesion, mucha diferencia entre "session_register('bla bla bla')" y "$_SESSION['bla bla bla']").

¿Pueden detallarme algo más?

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #8 (permalink)  
Antiguo 22/05/2003, 09:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te suena algo del "ambito de las variables" o en ingles "scope"? Esa es una de las diferencias ..

Ademas, el problema no es registrar la variable por $_SESSION o por session_register() .. mas bien es de cómo pretendas leerla despues ..

SI vas a usar session_register() podrías leer la variable de sesión asumiendola como global:

<?
session_start();
echo $variable_d_sesion;
?>

esto si dispones de register_globals a ON

Con $_SESSION (el array superglobal) te funcionaría con register_globals a ON o a OFF .. sería "global" el array para que lo uses en tus funciones sin hacer "global $_SESSION" y muchoooooooooo mas seguro pues por ese método sólo recogerias las variables de sesión y no otras ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 21:37.