Foros del Web » Programando para Internet » PHP »

Sesiones...necestio ayuda

Estas en el tema de Sesiones...necestio ayuda en el foro de PHP en Foros del Web. Hola mi nombre es noelia, alguien que me pueda ayudar...saben no puedo registrar variables con $_session y luego recuperarlas. Tengo una página con el siguiente ...
  #1 (permalink)  
Antiguo 10/03/2004, 16:57
 
Fecha de Ingreso: marzo-2004
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Sesiones...necestio ayuda

Hola mi nombre es noelia, alguien que me pueda ayudar...saben no puedo registrar variables con $_session y luego recuperarlas.

Tengo una página con el siguiente código:

<? session_start(); ?>
<?
$user=array("login"=>"noelia", "rol"=>"est");
$_SESSION['usuario']=$user;
echo '<a href="ver.php">Ir</a>';
?>

y en la otra pregunto si la he inicializado:
<? session_start(); ?>
<?
if (isset($_SESSION['usuario'])) {
echo "Hola";
}
?>

supuestamente tendría que mostrar "Hola", pero no pasa nada....porfis alguien que me dé alguna idea de cual puede ser el error....¿puede ser que no registre las variables en el servidor?....GRACIAS!!!!
  #2 (permalink)  
Antiguo 10/03/2004, 17:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Que versión de PHP usas?

El uso de los arrays superglobales ($_SESSION entre otras) está disponible sólo desde PHP 4.1.0.

Según los ejemplos que has puestos .. asumes que PHP va a propagar el SID de forma automática .. para eso mínimo requieres de la directiva:

session.use_trans_sid = 1

Y si luego tienes previsto hacer algún redireccionamiento tipo javascript o vía PHP header("location ...") o similares, sería recomendable que usases:

session.use_cookies = 1

(ver php.ini o vía phpinfo() ..)

También asegurate de que la directiva:

session.save_path = .. apunte a un directorio válido y con permisos de escritura de tu servidor (si es que tienes el control sobre el ..)

Algunas de estas directivas se pueden alterar en tiempo de ejecución vía: ini_set() o archivos .htaccess por si no tienes acceso al php.ini de ese servidor.

Todo esto lo detalla la documentación oficial de php sobre sesiones:

www.php.net/session


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 10/03/2004, 17:37
 
Fecha de Ingreso: marzo-2004
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Hola Gracias por responder....Uso la versión 4.1....pero no tengo control del servidor.

No entiendo eso de:

"asumes que PHP va a propagar el SID de forma automática .. para eso mínimo requieres de la directiva: session.use_trans_sid = 1"......¿qué es el SID? el identificador de sesión?

Tengo instalado php 4.1.0, hago las páginas y luego las envío al servidor (php 4.3.4). Yo lo tengo en windows(los scripts corren perfectamente)...el servidor está en linux....mis scripts los envío por ftp....puede ser que el problema sea la diferencia en las versiones o la configuración del php en el servidor?...gracias!!!!
Vanenoe
  #4 (permalink)  
Antiguo 11/03/2004, 05:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Revisa la configuración de tu servidor (el que usa 4.3.4):

Código PHP:
<?
phpinfo
();
?>
Te hacía el comentario de que si no tienes acceso al php.ini (caso del servidor que subes tus páginas/scripts .. puedes usar la función ini_set() para forzar la configuración de PHP y así forzar esa configuración concreta de las directivas que te haga falta modificar. (o bien propagar el SID manualmente)

Revisa también la documentación oficial sobre sesiones .. no se puede programar usando sesiones sin saber que es el "SID" pues así no entenderas por qué en un servidor te funciona y en otro no ..

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 15/03/2004, 08:39
 
Fecha de Ingreso: marzo-2004
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Hola de nuevo....estuve investigando acerca del SID:
El SID es necesario para conservar el "session id" en caso de que el usuario haya desactivado las cookies. Pero "<?=SID?>" no es necesario si se ha usado --enable-trans-sid al compilar PHP.......Pero en la configuración del php session.use_trans_sid=off, si se lo pone en "on" tiene alguna desventaja en cuanto a seguridad???.....
También me dijeron que el utilizar ini_set(), no me ayudará mucho......forzar las opciones, puesto que se utilizará la configuarción del php.ini del servidor.
El php.ini del servidor tiene register_globals=off.....qué efecto tiene en el manejo de sesiones???....
Gracias.....Vanenoe
  #6 (permalink)  
Antiguo 15/03/2004, 11:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
ini_set() fuerza la configuración de PHP .. todo depende de los permisos que tenga la configuración de PHP que uses (por ejemplo en "safe_mode" no podrías usar ini_set() ...).

La configuración de php también se puede hacer vía archivos .htacces (afectará a todo script de ese directorio/subdirectorios y no sólo al script en concreto como el caso de ini_set()).

El tema de session.use_trans_sid = ON u OFF no es el "fondo" del problema .. sino el hecho de que el SID (identificador único de sesión) se propague o no por el URL .. (no se propagaría por el URL si usas sesssion.use_cookies = ON ). Con la directiva session.use_trans_sid a ON .. los URL's no tendrás que insertar manualmente el SID en ellos .. (sean redireccionamientos .. formularios, links .. etc) a OFF tienes que hacerlo a mano completamente en todos esos casos.

El problema de propagar el SID en el URL suele ser el que se use ese mismo SID que referencia a una sesión (con datos activos) en tu servidor desde otro sito .. ejemplo cuando se pone un link en un foro, chat, se escribe en un e-mail .. etc. donde aparece ese SID (http://www.nose.tal/nose.php?PHPSESID=asdf7979asflk3j4). En estos casos, si la sesión sigue activa (no expiró) podría usarse para continuar la sesión activa desde otro sitio y por ende estaría el usuario en una sección "autentificada" de tu sitio (origen de la sesión) .. así que podría entra a realizar cualquier acción de ese "usuario" validado suplantando su identidad.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 17/03/2004, 10:07
 
Fecha de Ingreso: marzo-2004
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Hola, cómo sé si está en safe_mode?.....
  #8 (permalink)  
Antiguo 17/03/2004, 10:27
 
Fecha de Ingreso: marzo-2004
Ubicación: Zaragoza
Mensajes: 28
Antigüedad: 13 años, 9 meses
Puntos: 0
Otra vez la respuesta está en las FAQ .

http://www.forosdelweb.com/showthrea...932#post238932


Saludos...vichu
__________________
Si su paciente se empieza a sentir mejor sin causa aparente, no descarte la curación.
(Ley de Murphy para médicos)
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 18:21.