Foros del Web » Programando para Internet » PHP »

sesiones

Estas en el tema de sesiones en el foro de PHP en Foros del Web. bueno pues en windows el tema de sesiones me funciona muy bien y se guardan en la carpeta qeu indica el php.ini pero ahora me ...
  #1 (permalink)  
Antiguo 13/03/2003, 08:24
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
sesiones

bueno pues en windows el tema de sesiones me funciona muy bien y se guardan en la carpeta qeu indica el php.ini
pero ahora me llevo la pagina a un server en linux y no entra en las sesiones por que?¿

Gracias

Un Saludo
  #2 (permalink)  
Antiguo 13/03/2003, 08:56
Avatar de Phobos  
Fecha de Ingreso: abril-2001
Ubicación: sentado frente a un pc prestado
Mensajes: 375
Antigüedad: 16 años, 7 meses
Puntos: 2
no pasa nada o te sale algun error o warning???

si es asi postealo por aca.

saludos
  #3 (permalink)  
Antiguo 13/03/2003, 09:25
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
no simplemente lo que hece es cargar otra vez el formulario limpio, pero no da error ni nada

Un Saludo
  #4 (permalink)  
Antiguo 13/03/2003, 10:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si revisas la documentación de sessiones del manual oficial de PHP .. veras que Hay bastantes factores a tener en cuenta a la hora de que TU código q usas ahora para trabajar con sesiones funcine en la configuración de tu servidor ...

Tu como progagas el SID? automático o manual

Revisa y compara la configuración de sessiones en tu servidor y el otro servidor ..

Un saludo,
  #5 (permalink)  
Antiguo 13/03/2003, 11:20
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
esto es loq ue hace en el archivo de configuraracion
Código PHP:
function checklogin($lang,$session) {

  include(
$lang);

  if(isset(
$_SESSION['logged_in'])) {

    if(
$_SESSION['logged_in']==$session){ 
 
      echo
"$loggedinas $_SESSION[user].";  
    } else {

      echo 
$invalidsession;

    }

  } else {

    echo 
$authnotlogged
y esto en cualquier php de queramos que tenga la sesion
[PHP]
include("configuracion.php");

session_start();

include("style.php");

echo '<div align="center" class=texto>';
checklogin($lang,$session);

if($_SESSION['logged_in']==$session){
[PHP]
  #6 (permalink)  
Antiguo 13/03/2003, 11:28
 
Fecha de Ingreso: febrero-2002
Ubicación: ¿donde vivo? pues en mi casa, ¿donde voy a vivir?...
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 0
cluster se referia a la configuracion de php.
no de tu script.
__________________
Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX.
  #7 (permalink)  
Antiguo 13/03/2003, 12:33
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
bueno este es el contenido de php.ini de linux, vamos el fragmento del session y lo vea igual que el de windows solo con la diferencia del session.save_path
Código:
[Session]
session.save_handler      = files   ; handler used to store/retrieve data
session.save_path         = /tmp    ; argument passed to save_handler  
                                    ; in the case of files, this is the
                                    ; path where data files are stored

session.use_cookies       = 1                                          
                                    ; whether to use cookies
session.name              = PHPSESSID
                                    ; name of the session
                                    ; is used as cookie name
session.auto_start        = 0       ; initialize session on request startup
session.cookie_lifetime   = 0       ; lifetime in seconds of cookie           
                                    ; or if 0, until browser is restarted
session.cookie_path       = /       ; the path the cookie is valid for
session.cookie_domain     =         ; the domain the cookie is valid for
session.serialize_handler = php     ; handler used to serialize data
                                    ; php is the standard serializer of PHP
session.gc_probability    = 1       ; percentual probability that the
                                    ; 'garbage collection' process is started 
                                    ; on every session initialization
session.gc_maxlifetime    = 1440    ; after this number of seconds, stored                                                                     ; data will be seen as 'garbage' and                    
                                    ; cleaned up by the gc process
session.referer_check     =         ; check HTTP Referer to invalidate                                                                         ; externally stored URLs containing ids
session.entropy_length    = 0       ; how many bytes to read from the file
session.entropy_file      =         ; specified here to create the session id
                                    ; session.entropy_length    = 16
                                    ; session.entropy_file      = /dev/urandom
session.cache_limiter     = nocache ; set to {nocache,private,public} to                                                                       ; determine HTTP caching aspects
session.cache_expire      = 180     ; document expires after n minutes
joer no se que hacer ya estoy lokooooooooooooo
  #8 (permalink)  
Antiguo 13/03/2003, 16:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Segun parece .. tu forma de trabajar (de tu script) asume que propagas el SID en modo automatico (no se ve por ningun lado que lo hagas manual .. )

En la configuración q pusistes NO SE VE .. el estado de:
session.use_trans_sid

Comparalo con la de tu servidor .. ha de estar a "1" segun la programación de tu script lo hace ..

Un saludo,
  #9 (permalink)  
Antiguo 14/03/2003, 03:26
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
bueno faltaban estas dos lineas en el ini del linux
Código PHP:
session.use_trans_sid 1

url_rewriter
.tags "a=href,area=href,frame=src,input=src,form=fakeentry" 
las añadi resetee el apache pero nada de nada sigue sin hacer nadaaaaaa
  #10 (permalink)  
Antiguo 14/03/2003, 03:28
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
y este parametro esta asi bien?¿

Código PHP:
session.save_path         = /tmp 
Un Salduo y muchas gracias por vuestro tiempo haber si entre todos somos capaces de hacer que esto rule sin problemas
  #11 (permalink)  
Antiguo 14/03/2003, 09:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Que vesión de PHP usas en tu "linux" y como usas la directiva:

register_globals ? (on/off)

Seguro que el cambio q hicistes en tu PHP.ini fué efectivo? .. sale en un phpinfo() los cambios q hicistes? ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 23/06/2003, 15:25
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 16 años, 1 mes
Puntos: 5
Hola Cluster. Yo tengo mas o menos el mismo problema que este usuario.

La configuración de mi servidor es la siguiente (y estoy segura de ello):

- Propago el SID automaticamente
- session.use_trans_sid = 1
- session.save_path=/tmp (existe esta carpeta y se guardan perfectamente los archivos de session)
- session.save_handler = files

El Session_id() se propaga perfectamente de pagina en pagina.

A diferencia del resto de preguntas que he encontrado sobre sesiones en este foro, yo no quiero utilizar las sesiones para el registro de usuarios . Quiero que el usuario que navega por mi web pueda seleccionar una serie de registros (en mi caso concreto son publicaciones) y cada vez que cambia de pagina quiero hacerle saber las publicaciones que ya ha ido seleccionando.

Como te decia el UID lo propaga a las mil maravillas pero las variables de su sesión que voy creando las pierdo de enlace a enlace. Bueno, ya no las pierdo (escribiendo este mensaje seguí probando cosas).

Ahora lo único que consigo con este código ...

Código PHP:
session_start();
session_register("SESSION");

if ( !isset(
$SESSION) ) {
        
//Consultamos el nombre de la publicación que se ha solicitado para asignarlo a la var de session que crearemos
    
$query "SELECT nombre_pub FROM tabla_pub WHERE id_pub=".$id_pub;
    
$res iso_exec($query);
    
$row iso_fetch_array($res,0);
    
iso_free_result($res);

    
$SESSION[$id_pub]=$row["nombre_pub"];
}
print_r ($SESSION); 

... es:

Lo que me devuelve print_r($SESSION) es lo siguiente:

Array ( [SESSION] => Array ( [count] => 0 ) )

Cuando lo que yo esperaba es algo como:

Array ( ['40'] => 'Publicacion 40' )

¿Alguna idea?

Un beso
  #13 (permalink)  
Antiguo 23/06/2003, 15:30
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 16 años, 1 mes
Puntos: 5
Otra curiosidad sobre las sesiones.

Respecto a session.save_handler = files, pensé en cambiarlo para que me gardara las variables en memoria en ves de en archivos porque pensaba que no las leia correctamente, que al guardarlas en archivos tenia que hacer el procedimiento de abrir el archivo y leerlas de ahí directamente.

Para cambiarlo a modo memoria utilicé la función

ini_set('session.save_handler','mm');

pero en el momento que incluía esa función en mi php, la página no me cargaba. Ni se colgaba ni daba error, sólo aparecía el típico mensaje de "No se puede mostrar la página".

Volvía comentar la línea donde tenía incluida esa llamada y volvía a funcionar perfectamente.

¿Se te ocurre algo al respecto?


Mil besos
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
  #14 (permalink)  
Antiguo 23/06/2003, 17:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Se te olvidó una directiva más de propagación del SID ..

session.use_cookies = 1

Y que tu navegador de pruebas las acepte. Sino, redireccionamientos javascript, META tag, header("location ... no te funcionará .. (te lo aviso por qué no veo cómo "saltas" de una página a otra ..)

Y por supuesto del estado de register_globals .. aunque tu usas session_register() con lo cual podrás asumir las variables como globales si usas register_globals a ON ..

A todo esto ..
No puedes declarar una variable de sesión y en el mismo flujo del escript leer o esperar leer su valor. Las sesiones sólo quedan disponibles en la próxima petición al servidor. (una recarga de página o un salto de página en página por un link, formulario .. redirección ..)

Y bueno .. el session_start() se ha de usar en tódas las páginas que requieras del uso de tus variables de sesión.

También te recomiendo que NOOO uses la forma de trabajar con variables de sesión donde asumes dichos valores como globales.

Usa los arrays superglobales $_SESSION (si usas PHP 4.1.0 o superior .. sino, es hora de actualizarse que ya van por PHP 4.3.3 RC1 ..). En las priméras FAQ's tienes un comentario al respecto.

El "handler" mm Requiere de no me acuerdo que directiva de complilación/libreria extra para trabajar con la "Memoria".


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; 23/06/2003 a las 18:02
  #15 (permalink)  
Antiguo 24/06/2003, 03:05
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 16 años, 1 mes
Puntos: 5
Cita:
Mensaje Original por Cluster
Se te olvidó una directiva más de propagación del SID ..

session.use_cookies = 1
Está a On perfectamente

Cita:
Mensaje Original por Cluster
Y que tu navegador de pruebas las acepte. Sino, redireccionamientos javascript, META tag, header("location ... no te funcionará .. (te lo aviso por qué no veo cómo "saltas" de una página a otra ..)
Lo acepta perfectamente

Cita:
Mensaje Original por Cluster
Y por supuesto del estado de register_globals .. aunque tu usas session_register() con lo cual podrás asumir las variables como globales si usas register_globals a ON ..
También está a On.

Cita:
Mensaje Original por Cluster
A todo esto ..
No puedes declarar una variable de sesión y en el mismo flujo del escript leer o esperar leer su valor. Las sesiones sólo quedan disponibles en la próxima petición al servidor. (una recarga de página o un salto de página en página por un link, formulario .. redirección ..)
El resultado de leer la variable de sesión que te puse está copiado de una página posterior a la que cree la variable de sesión de ahí mi asombro.

Cita:
Mensaje Original por Cluster
Y bueno .. el session_start() se ha de usar en tódas las páginas que requieras del uso de tus variables de sesión.
Efectivamente lo uso.

Creeme que me he recorrido las FAQs, el manual completo de php.net y que hago todo correctamente como dice en esos sitios pero no consigo leer correctamente las variables de sesión de una página a otra.

Cita:
Mensaje Original por Cluster
También te recomiendo que NOOO uses la forma de trabajar con variables de sesión donde asumes dichos valores como globales.

Usa los arrays superglobales $_SESSION (si usas PHP 4.1.0 o superior .. sino, es hora de actualizarse que ya van por PHP 4.3.3 RC1 ..). En las priméras FAQ's tienes un comentario al respecto.
He probado multitud de formas de trabajar con variables de session.. la que te he puesto en este mensaje, con $HTTP_SESSION_VARS y con $_SESSION y con todas he obtenido el mismo problema.

Sé que donde fallo es en esto pero no consigo lograr nada.

Cita:
Mensaje Original por Cluster
El "handler" mm Requiere de no me acuerdo que directiva de complilación/libreria extra para trabajar con la "Memoria".
Bueno, por lo que me has contado desecho el querer cambiar el modo del handler.

Cita:
Mensaje Original por Cluster
Un saludo,
Mil gracias
Un beso
  #16 (permalink)  
Antiguo 24/06/2003, 04:03
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 16 años, 1 mes
Puntos: 5
Cluster.....

solucionado.

Eres un (#) --> Tendrás que ponerlo en el messenger para saberlo ;P

El problema lo tenía donde yo creía... Tenía un error a la hora de comprobar si existían o no las variables de sesión que quería ir creando.

Mil besos ;)
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
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 01:19.