Foros del Web » Programando para Internet » PHP »

Problemas de sessión PHP

Estas en el tema de Problemas de sessión PHP en el foro de PHP en Foros del Web. Es curios. Os explico, en mi web tengo un sistema de usuarios con sesiones y con un menú para los usuarios en el header . ...
  #1 (permalink)  
Antiguo 27/12/2008, 19:17
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Problemas de sessión PHP

Es curios. Os explico, en mi web tengo un sistema de usuarios con sesiones y con un menú para los usuarios en el header. El problema que tengo es que por ejemplo, yo inicio sesión y todo funciona correctamente, es decir, el header muestra el menú del usuario perfectamente hasta que, por un canvio de URLs, en mi web aparecen las tres "www." y es ahí cuándo empieza el problema, pues el menú del usuario desaparece, aún así si vuelvo a una URL sin www. la sesión sigue abierta i el menú de usuarios sigue mostrándose.
He buscado en google y he utilizado otros buscadores pero nada. Me podríais ayudar con esto por favor?

Muchíssimas gracais por adelantado.
  #2 (permalink)  
Antiguo 27/12/2008, 19:44
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas de sessión PHP

Bienvenido al foro cathalyst.

Usa la función session_set_cookie_params() para establecer los parámetros de la cookie que guarda el id de la sesión. El tercer parámetro es el dominio. Otra opción es usar ini_set para cambiar la configuración de la directiva session.cookie_domain:

Código PHP:
session_set_cookie_params(0'/''.dominio.tld');
session_start(); 
ó
Código PHP:
ini_set('session.cookie_domain''.dominio.com');
session_start(); 
Es importante que el dominio esté precedido por un punto, de esta manera la cookie está disponible también para todos los subdominios

  #3 (permalink)  
Antiguo 28/12/2008, 06:50
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problemas de sessión PHP

Muchas gracias okram. Lo probaré en cuanto pueda y te digo algo.
  #4 (permalink)  
Antiguo 28/12/2008, 17:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problemas de sessión PHP

Funcionó de maravilla! Muchísimas gracias okram de verdad.
Hasta otra.
  #5 (permalink)  
Antiguo 28/12/2008, 18:14
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problemas de sessión PHP

Mmmmm bien, ahora el problema está al cerrar la sesión, al desconectar.. Me echas una mano? :S
  #6 (permalink)  
Antiguo 28/12/2008, 18:31
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas de sessión PHP

Cuál es el problema? Trata de ser lo más explicativo y a la vez concreto posible

  #7 (permalink)  
Antiguo 28/12/2008, 18:38
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problemas de sessión PHP

Al cerrar sesión solo me cierra la sesión de uno de los dominios, si desconecto en la web sin www. se me cierra esa sesión, pero en la web con www. la sesión sigue abierta.

Este es el logout.php:
Código PHP:
<?php
$logoutGoTo 
"/es";
if (!isset(
$_SESSION)) {
  
session_start();
}
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
unset(
$_SESSION['MM_Username']);
unset(
$_SESSION['MM_UserGroup']);
if (
$logoutGoTo != "") {
header("Location: $logoutGoTo");
exit;
}
?>

Última edición por cathalyst; 28/12/2008 a las 18:58
  #8 (permalink)  
Antiguo 28/12/2008, 20:55
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas de sessión PHP

Recuerda que debes hacer ese cambio de la configuración del dominio de la cookie cada vez que vayas a iniciar una sesión (session_start()).

Es muy recomendable que el inicio de las sesiones (OJO, por segunda vez, hablo del usar sesion_start() para crear la sesión) lo hagas en un archivo aparte y lo incluyas en cada página de tu sitio.

  #9 (permalink)  
Antiguo 29/12/2008, 06:15
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problemas de sessión PHP

Pero si ya lo hago :( . En mi pagina tengo un header que se muestra en todas las paginas, en el header está incluido:

Código PHP:
session_set_cookie_params(0'/''.midominio.co.cc');
session_start(); 
Pero aún así nada. Sigo agradeciendo mucho tu ayuda.
  #10 (permalink)  
Antiguo 29/12/2008, 09:07
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas de sessión PHP

Pero en tu logout.php que muestras más arriba no hay ni un include ni esas líneas. Por eso sólo se borra en el dominio actual.

  #11 (permalink)  
Antiguo 29/12/2008, 14:26
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problemas de sessión PHP

¿Un include? ¿Para qué? Si ya te redirecciona, explícame ¿A qué te refieres con poner un include? ¿Qué función tendría?
  #12 (permalink)  
Antiguo 29/12/2008, 14:52
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Problemas de sessión PHP

quiere decir que en tu logout tenes que poner esas lineas.... (creo :P)
  #13 (permalink)  
Antiguo 29/12/2008, 15:22
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problemas de sessión PHP

Si ya están puestas TT. Gracias por la ayuda igualmente.
  #14 (permalink)  
Antiguo 29/12/2008, 21:30
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas de sessión PHP

Código PHP:
<?php
$logoutGoTo 
"/es";
if (!isset(
$_SESSION)) {
  
session_start();
}
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
unset(
$_SESSION['MM_Username']);
unset(
$_SESSION['MM_UserGroup']);
if (
$logoutGoTo != "") {
header("Location: $logoutGoTo");
exit;
}
?>
No veo ni el session_set_cookie_params(), ni el ini_set() que te propuse más arriba

  #15 (permalink)  
Antiguo 30/12/2008, 06:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problemas de sessión PHP

Lo siento me olvidé ponerlo. Ahora en el header tengo:
Código PHP:
<?
ini_set
('session.cookie_domain''.midominio.co.cc');
session_start();
?>
i en logout.php
Código PHP:
<?php
$logoutGoTo 
"/es";
if (!isset(
$_SESSION)) {
    
ini_set('session.cookie_domain''.midominio.co.cc');
    
session_start();
}
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
unset(
$_SESSION['MM_Username']);
unset(
$_SESSION['MM_UserGroup']);
if (
$logoutGoTo != "") {
header("Location: $logoutGoTo");
exit;
}
?>
Muchas gracias de verdad por la ayuda prestada. ^^
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 09:26.