Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones

Estas en el tema de Ayuda con sesiones en el foro de PHP en Foros del Web. Hola a todos... Tengo instalado en mi máquina php 4.2.3 en windows, estoy ocupando sesiones en mis páginas para autentificar a los usuarios, pero estas ...
  #1 (permalink)  
Antiguo 06/01/2004, 03:00
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Ayuda con sesiones

Hola a todos...

Tengo instalado en mi máquina php 4.2.3 en windows, estoy ocupando sesiones en mis páginas para autentificar a los usuarios, pero estas páginas van a ser implementadas en un servidor linux con php 4.0.4.

Cuando pase estas paginas al servidor linux obviamente no funcionaban las sesiones porque ocupaba $_SESSION en lugar de $HTTP_SESSION_VARS, sin embargo, al cambiar esta instruccion, creo que no me propaga el SID, ya que me direcciona a otra página que me muestra un mensaje de error.

A continuación les muestro parte del código:

(Una vez que se ha encontrado al usuario en la BD)

Código PHP:
session_start(); 
$HTTP_SESSION_VARS['clave']=$clave;
$HTTP_SESSION_VARS['nivel']=$reg['nivel'];
$HTTP_SESSION_VARS['zona']=$reg['cve_zona'];

header('Location: ../inicio.php'); 
-- Este código pertenece a inicio.php --

session_start();
session_cache_limiter('nocache,private');

if (!isset($HTTP_SESSION_VARS['clave'])){ //Si no se ha iniciado sesión
header('Location: error_valida.php?error=4'); //Manda a página de error
exit();
}

//continua con la carga de la página
include('cgi-bin/cabecera.php');

Estos cambios (de $_SESSION a $HTTP_SESSION_VARS) los hice en las páginas del servidor en linux, sin embargo en la página inicio.php siempre me manda a la página de error, y con ello me indica que no me propaga el SID.

He leido en este foro que puede haber un error en la configuracion, en el archivo php.ini , los valores de este archivo son los siguientes:

session.use_cookies=1
session.use_trans_sid = 1

Si alguien me pudiera explicar algo mas acerca de la configuración de este archivo o haya detectado algun error en el escaso codigo que puse y que yo no he visto, por favor que me lo haga saber... Gracias
  #2 (permalink)  
Antiguo 06/01/2004, 09:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Según el manual oficial de PHP ..

session_cache_limiter('nocache,private');

va -antes- de session_start();

Código PHP:
<?
session_cache_limiter
('nocache,private');
session_start();
//etc
?>
Eso sólo afectaría al funcionamiento del control del caché .. pero en teoría no al de propagación del SID.


Según el redireccionamiento que usas (header("location ...) necesitas usar cookies para propagar el SID .. Eso lo define la directiva de tu php.ini:

session.use_cookies=1

y opcionalmente para que PHP reescriba los tag HTML e incrustre (propage) el SID de forma automática:

session.use_trans_sid = 1

Revisa el estado de esas directivas en tu nuevo servidor haciendo un:

Código PHP:
<?
phpinfo
();
?>
Si haces cambios a tu php.ini recuerda de reiniciar tu servidor HTTP .. (recomendable .. aunque si trabajas PHP bajo CGI como parece .. no lo necesitarías hacer).

Pero .. viendo el manual oficial de PHP sobre el tema de sesiones aparece esta nota interesante para tu caso concreto:

Cita:
Use of $_SESSION (or $HTTP_SESSION_VARS with PHP 4.0.6 or less) is recommended for improved security and code readablity. With $_SESSION, there is no need to use the session_register(), session_unregister(), session_is_registered() functions. Session variables are accessible like any other variables.
Usas una versión de PHP rematadamente anticuada .. así que no vas a poder ni usar $HTTP_SESSION_VARS .. lo cual hace que tu aplicación sea de lo más insegura.

Si no puedes cambiar de versión de PHP . .vas a tener que trabajar las sesiones a la "antigüa" con las funciones:

session_register() .. session_is_register() y afines.

Revisa:
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 06/01/2004, 15:36
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Exclamación Ayuda con sesiones por favor

Hola y perdon por contestar hasta ahora...

Consegui covencer en la actualizacion de php de 4.0.4 a la version mas reciente....

Me gustaria mucho que alguien me orientara en la actualizacion, necesito desinstalar y volver a instalar?

Hay paginas en el servidor que funcionan bien bajo la version 4.0.4, seguira ocurriendo lo mismo al actualizar la version?

Ojala alguien pueda contestar pronto....

El servidor es apache 1.3
  #4 (permalink)  
Antiguo 06/01/2004, 16:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. si vas instalar sobre windows te recomiendo leer esta guia de instalación:
http://www.maestrosdelweb.com/editorial/phpmysqlap/


El resto y sobre todo "compatibilidad" del resto de aplicaciones depende directamente de la configuración de PHP que uses. Sobre todo del estado de la directiva (php.ini) register_globals que .. tus scripts requieren que esté a ON por la versión que usas en la que todavía no habían aparecido los arrays superglobales (que igualmente puedes empezar a usar independiente del estado de esa directiva).

Esa sería una de las principales directivas de configuración que debes ajustar para obtener esa compatibilidad con tus "viejas" aplicaciones. El resto ya las irás viendo según trabajes con PHP y tus viejas aplicaciones. Es insprescindible conocer la configuración de PHP .. por que de eso depende de "como" podemos o debemos programar .. todo eso lo detalla el php.ini y la documentación asociada de www.php.net

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; 06/01/2004 a las 16:14
  #5 (permalink)  
Antiguo 06/01/2004, 20:22
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Debi haber especificado mas en mi pregunta anterior...

El servidor esta sobre Linux.... ojala puedan indicarme donde encontrar información para actualizar PHP....

Gracias....
  #6 (permalink)  
Antiguo 06/01/2004, 21:57
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Para actualizar la version de PHP 4.0.4 a PHP 4.3.4 en un servidor apache sobre Linux, necesito desintalar y volver a instalar?

Es necesario que tome alguna clase de precaución? Porque leí algo de windows para que se copie la carpeta que lo contiene, pero no se si se aplique en Linux... Solo encuentro información para instalar... y para actualizar?

Gracias...
  #7 (permalink)  
Antiguo 07/01/2004, 07:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
PHP en windows o Linux .. no se "actualiza" se instala completamente denuevo. Puedes "chafar" (sobreescribir) lo antiguo pero .. sería recomendable partir de una instalación "limpia" desinstalando lo que tengas de PHP hasta el momento.

Si tienes dudas sobre instalar o desinstalar aplicaciones en entorno Linux .. visita el foro adecuado.

Yo sólo te puedo recomendar la documentación oficial de PHP y comentarte que para Linux (depende de la distribución que uses) tienes unos paquetes "instaladores" tipo RPM (Red Had) o similares.

http://www.php.net/manual/en/install.linux.php

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 06:32.