Foros del Web » Programando para Internet » PHP »

Problemas con variable $_SESSION

Estas en el tema de Problemas con variable $_SESSION en el foro de PHP en Foros del Web. ANTECEDENTES: (jejeje para los ociosos) Hola estoy programando una pagina php con sistema de autentificacion de usuarios, no tengo lio con ello por que ya ...
  #1 (permalink)  
Antiguo 15/11/2006, 10:59
Avatar de fher007  
Fecha de Ingreso: noviembre-2006
Ubicación: Cochabamba Bolivia
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Problemas con variable $_SESSION

ANTECEDENTES: (jejeje para los ociosos)

Hola estoy programando una pagina php con sistema de autentificacion de usuarios, no tengo lio con ello por que ya poseo gran experiencia en el campo. el asunto es que la pagina es solo para un proyecto pequeño y por lo cual es innecesario alojarla en un servidor en los que te cobran en EUROS, por lo cual el prototipo de la pagina esta siendo alojada en un servidor gratuito (iESPANA).

EL PROBLEMA EN SI:

Estoy trabajando sobre un codigo mas o menos así:

como el sistema es de varios usuarios en una bd entonces creo una variable de sesión como $_SESSION['id_usuario']

El tema es que el codigo me funciona perfectamente en modo local pero cuando lo subo al server no funciona!!

Al parecer la variable de sesion desaparece, por que al inicio de la pagina de login hago referencia a la misma y está vacia.

<?
session_start();

if(isset($_SESSION['id_usuario']))
{
echo $_SESSION['s_usuario'].', ya haz iniciado sesión';
echo '<body onload=javascript:redirect("inicio.php");>';
}
else
{
.... (muestro el form de login)

en la parte de registro de la variable sesion hago esto:

...
session_register("logeado");
$_SESSION['id_usuario']=$row["id"];
$_SESSION['s_usuario']=$row["usuario"];
...
...


la verdad no se que pueda ser lo que esta mal, sera por el servidor???
por favor si alguien sabe de algo ayuda!!!


Última edición por fher007; 15/11/2006 a las 11:06 Razón: agregar contenido al mensaje
  #2 (permalink)  
Antiguo 15/11/2006, 11:12
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 8 meses
Puntos: 0
Prueba x si akaso a pasar el identificador de sesion x url xq vete a saber cómo tiene iEspana configurado el php.ini

Incluso cosas como usar la etiqueta corta en lugar de la larga pueden estar ocasionándote el problema.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 15/11/2006, 12:51
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 6 meses
Puntos: 19
Por lo que comentas, diría que deben estar deshabilitadas las sesiones en ese servidor. Pero vamos, preguntales a ellos (algún teléfono tendrán) y te aseguras.

Un saludo.
  #4 (permalink)  
Antiguo 15/11/2006, 13:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Conoces como "iespana" propaga el SID? .. y como lo haces en tu aplicación? .. Según tu código dejas a PHP que lo haga automáticamente, esto dependerá de la configurción de PHP de ese servidor y como propague el SID (url/cookies).

Por otro lado iespana en su versión "gratuita" inserta "salida" al navegador antes de que tu código pueda enviar sus própias cabeceras, eso te dará problemas con el uso de sesiones en general.

No te recomiendo para nada "iespana" .. usa otro servicio de hosting gratuito.

Cita:
sistema de autentificacion de usuarios, no tengo lio con ello por que ya poseo gran experiencia en el campo
Parece que tienes que actualizarte un poco. El uso de:
session_register() NO corresponde con el acceseo al array superglobal: $_SESSION

más info:
www.php.net/session

Por tu bien NO USES! session_register() .. usa simplemente:
$_SESSION['logeado']=TRUE; // o el valor que quieras darle.

De hecho no entiendo por qué así lo haces con otras variabels de sesión y en esa no? ...

Por seguridad también podrías redireccionar con cabeceras HTTP en lugar de javascript.

Código PHP:
if(isset($_SESSION['id_usuario'])) 
{
   
header ("Location: dondesea.php?variable_control=mensaje");
   exit;

Así te ahorras el "else" (por qué termino la ejecución del script en ese punto con un exit) y redireccionas por cabeceras HTTP a donde tengas que ir.

(En servicios de hosting que metan publicidad antes de tu código te dará problemas y tendrás que usar "javascript" para tal fin)

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 16/11/2006, 16:01
Avatar de fher007  
Fecha de Ingreso: noviembre-2006
Ubicación: Cochabamba Bolivia
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
gracias a todos por la ayuda, cambie de servidor y me funciona el codigo de maravilla, CLUSTER gracias por tu ayuda con lo de las cabeceras http ahora ya uso:

header ("Location: inicio.php");

por lo demas todo bien, muchas gracias
xD!!
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 14:20.