Foros del Web » Programando para Internet » PHP »

PHP5 - sesiones

Estas en el tema de PHP5 - sesiones en el foro de PHP en Foros del Web. tengo una web hecha con sesiones que antes de actualizar el servidor (PHP-4.2.0) funcionaba bien. ahora, con PHP-5 no funciona. por lo que veo, no ...
  #1 (permalink)  
Antiguo 04/05/2006, 14:02
 
Fecha de Ingreso: agosto-2003
Mensajes: 120
Antigüedad: 14 años, 3 meses
Puntos: 0
PHP5 - sesiones

tengo una web hecha con sesiones que antes de actualizar el servidor (PHP-4.2.0) funcionaba bien.

ahora, con PHP-5 no funciona. por lo que veo, no me pasa las variables de sesion ($_SESSION['name']) entre las distintas paginas.

alguien sabe si hubo algun cambio y como lo arreglo?
gracias
  #2 (permalink)  
Antiguo 04/05/2006, 14:41
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Tengo entendido que no hubo ningun cambio.
Creo que tu problema no va por ahi.
  #3 (permalink)  
Antiguo 04/05/2006, 14:43
 
Fecha de Ingreso: agosto-2003
Mensajes: 120
Antigüedad: 14 años, 3 meses
Puntos: 0
el codigo no lo toque...

solo hubo ese update en el servidor...
  #4 (permalink)  
Antiguo 04/05/2006, 14:50
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Cita:
register_long_arrays boolean
Tells PHP whether or not to register the deprecated long $HTTP_*_VARS type predefined variables. When On (default), long predefined PHP variables like $HTTP_GET_VARS will be defined. If you're not using them, it's recommended to turn them off, for performance reasons. Instead, use the superglobal arrays, like $_GET.

This directive became available in PHP 5.0.0.

Por lo que deberias checar que esta directiva tenga asignado false.
  #5 (permalink)  
Antiguo 04/05/2006, 14:59
 
Fecha de Ingreso: agosto-2003
Mensajes: 120
Antigüedad: 14 años, 3 meses
Puntos: 0
eso estaba bien, tambien revise register_globals, pero sigue sin andar
asi estan las cosas en el servidor:

register_globals On
register_long_arrays Off

session
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path no value no value
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
  #6 (permalink)  
Antiguo 04/05/2006, 16:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Un comentario .. PHP es altamente configurable .. la configuración de PHP puede cambiar de una versión a otra, sobre todo de una série "4" a una "5" .. hay opciones que se dejan de usar .. otras que se añaden, en fin .. en los "change log" (www.php.net) dice lo que cambia de una versión a otra.

Por lo demás .. casos concretos como este de sesiones, la configuración de PHP influye en -gran- medida. Así que hay que conocer bajo que "configuración" diseñastes tu aplicación para "replicarla" o "forzarla" si cambias de servidor.

--------------

Estas directivas debes manejarlas alreves:

register_globals On
register_long_arrays Off

Sería:

register_globals OFF
(por tu seguridad .. siempre tendras que acceder a los arrays asociativos: $_POST, $_GET, $_POST .. según corresponda.)

register_long_arrays ON
(para que se creen los arrays $HTTP_xxx_VARS si las necesitas .. algúna aplicación antigüa las sigue usando ..).

Por otro lado .. tu mismo podrías comparar la configuración de lo que tenías (php.ini) y lo que en PHP 5 tienes.

No sé si conoces como tu aplicación necesita propagar el SID (IDentificador único de sesión) .. pero lo que es ahora "asumes" que se va hacer en cookies. Por ende necesitas un navegador que las acepte y que nada las bloquee (me refiero con "nada" a algo como un antivirus/firewall/proxy .. algunos de esos dispositivos tienen opciones para bloquear cookies).

Esto es por:
session.use_cookies On On (aquí dices que se use cookies para propagar el SID)
en combinación con:
session.use_trans_sid 0 0 (aquí dices que NO se re-escriban ciertos tag's HTML para incrustrar el SID en ellos, es decir; no propagaras el SID en el URL .. por lo menos automáticamente.


Deberías poner algo de código que usas para ver como realmente usas las sesiones en su contexto y como pasas de un script a otro (por un link? o redireccionamiento? ... ) en fin .. así se podrá ver si tu realmente dejas que PHP propague el SID en cookies o por el URL o tal vez lo propagues tu a mano ...

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 04/05/2006, 18:48
 
Fecha de Ingreso: marzo-2005
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 0
Resulta que me pasa lo mismo, segui el consejo de Cluster acerca de meter el array en una variable de sesion, lo probe localmente y bien, mi version de php es 4.3.3 y todo bien hasta ahi, pero resulta que lo subi al servidor y cuando hago el post las variables de sesion no muestran nada, es como si las borraran. La version de PHP del servidor es 4.4.2, tonces estoy otra vez metido en un problema, una pregunta, ¿como hago para modificar el php.ini en el servidor, sera que si se puede? creo que el problema tiene mucho que ver con lo dice cluster y esa configuracion!!!!
  #8 (permalink)  
Antiguo 05/05/2006, 08:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si tu no tienes acceso al php.ini (que en un servicio de hosting no lo vas a tener por ejemplo normalmente), algunas directivas de PHP de configuración se pueden alterar vía la función:

ini_set()
www.php.net/ini_set

Pero . .antes de "tocar" ninguna configuración debes ver -cómo- propagas el SID en tu actual configuración de PHP: usa un phpinfo() para verlo.

Luego mira tu aplicación como propaga el SID .. si tu "no sabes" ni que es el SID .. "se supone" que no lo has propagado "manualmente" (en tu código) así que tu aplicación queda "expuesta y a mercer" de la configuración de PHP que se use en el servidor de turno donde se ejecute tu aplicación.

Cuando tengas claro esos puntos .. ya se verá si es necesario alterar o "forzar" para no depender de lo que el servidor use "por defecto" sino definir lo que -nuestra- aplicación requiera.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 05/05/2006, 12:23
 
Fecha de Ingreso: agosto-2003
Mensajes: 120
Antigüedad: 14 años, 3 meses
Puntos: 0
gracias por tu respuesta Cluster!

en realidad todavia no entiendo muy bien lo del SID. lo que se es que no estoy usando cookies, sino definiendo una variable: $_SESSION['var']

session_register('name');

$_SESSION['name'] = $name;

como deberia hacer para que eso funcione?
  #10 (permalink)  
Antiguo 05/05/2006, 13:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, veo que no entiendes bien lo del SID .. Cuando me refiero a "cookies" es en cuanto a la propagación del SID (Identifiacdor Único de Sesión) el cual una de sus formas de propagación es por una Cookie (que crea PHP si así se lo dices en su configuración: session.use_cookies a ON) o por el URL (si le dices: session.use_trans_sid a ON)

Esta función para declarar una variable de sesión NO DEBES USARLA -PROHIBIDO- xD:

session_register('name');

Sólo usa el array superglobal: $_SESSION

Deberías exponer el código completo que usas con sesiones .. para ver si tienes algún problema más.

A todo esto .. como te he comentado el SID lo propagas en cookies (por tu configuración de PHP sobre sesiones y por qué en tu código "supongo" que no lo haces a mano). Por ende, revisa si tu navegador acepta cookies, si usas algún antivirus .. revisa ese punto .. o un firewall con esas opciones de bloqueo de cookies .. etc.

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 11:36.