$_SESSION no funciona en la siguiente pagina

Iniciado por SrTrp, 8 Julio 2021, 05:28 AM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Hola que tal este estoy intentando ingresar a una pagina con logeo para esto se usa las sessions, pero hay un detalle cuando me logeo me redirige a la pagina donde deberia y con las sessiones activas, pero cuando quiero ingresar a otra pagina que deberia cargar las mismas sessiones no las carga, estan vacias.
el código de la pagina donde me redirige:
Código (php) [Seleccionar]

<?php
@session_start();
session_set_cookie_params(0"/"$HTTP_SERVER_VARS["HTTP_HOST"], 0);
if(isset(
$_SESSION['usuario_valido'])) {
........
?>


Esta parte va todo bien, el problema ya es en la siguiente pagina que quiero ir
Código (php) [Seleccionar]

@session_start();
$no=$_SESSION['usuario_valido'];
$query="SELECT * FROM users WHERE folio= '$no' ";
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
  if (isset($_SESSION["usuario_valido"]) and (strcmp($row['rol'],"admin") == 0 ))  
  {
..
}else{
print ("<P ALIGN='CENTER'>Acesso no Autorizado</P>\n");
}

Eh probado con alert para revisar si tiene algo la session de usuario valido y no tiene nada.
Eh pensado que esto se puede deber a una configuración del servidor ya que se hizo una migración.
intente metiendo esto $cfg['LoginCookieValidity'] = 0; en el config.inc.php para forzar el maxlife de la session pero sigue igual.

mchojrin

Hola StTrp!

  ¿Por qué usas la @ antes de session_start? Si estabas viendo un mensaje de error esa puede ser una pista...
Ayudo a desarrolladores PHP a acceder a puestos mejor remunerados

SrTrp

Cita de: mchojrin en  8 Julio 2021, 14:18 PM
Hola StTrp!

  ¿Por qué usas la @ antes de session_start? Si estabas viendo un mensaje de error esa puede ser una pista...
Es que no soy el autor del código de igual forma lo intente sin las @ para ver si puedo visualizar algo pero no, no me da ningún error.

engel lex

el url cambia en algo? es el mismo subdminio.dominio.tld?

has chequeado las cookies en cliente?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

Cita de: engel lex en  9 Julio 2021, 16:24 PM
el url cambia en algo? es el mismo subdminio.dominio.tld?

has chequeado las cookies en cliente?

Te refieres si donde uso las sessiones es la misma url?
ahi sería no ejemplo tengo mi login aquí dominio.mx/adm/ despues de ahi ingreso los datos y me manda a dominio.mx/adm/main.php hasta ahi todo correcto despues de ahi, quiero dirigirme a otra parte de la pagina donde esta un "manager" por así decirlo me dirigo a dominio.mx/adm/manager/ y aqui es donde ya no muestra que tenga algo la session.

Lo de las cookies en cliente te refieres ejemplo verdes de el DevTools de chrome? si es así las revise y en ambas paginas me muestran lo mismo.

MinusFour

¿Que version de PHP estás usando? Debe ser algo muy viejo si estas usando $HTTP_SERVER_VARS.

1. Usa $_SERVER mejor (tiene soporte desde PHP 4.1.0).
2. session_set_cookie_params se utiliza ANTES de iniciar la sesión.
3. Todas los lugares donde inicias la sesión necesitan tener esta llamada ANTES de iniciar la sesión.

Aunque no creo que tu problema sea esto. Yo creo que debes estar destruyendo la sesión de alguna manera al estar navegando entre las dos urls.

Abre las herramientas de desarrollo de tu navegador y revisa que cookies tienes en las dos URLs, revisa si tienes la misma sesión. Si usas chrome, esta en la pestaña de Aplicación/Application en el menu de la izquierda bajo Almacenamiento/Storage y hay una entrada de "Cookies" ahí.

Revisa los valores de la cookie PHPSESSID (a menos que le hayas cambiado de nombre) entre la dos URLs. Si cambian es que no estas usando la misma sesión.

SrTrp

Cita de: MinusFour en  9 Julio 2021, 19:25 PM
¿Que version de PHP estás usando? Debe ser algo muy viejo si estas usando $HTTP_SERVER_VARS.

1. Usa $_SERVER mejor (tiene soporte desde PHP 4.1.0).
2. session_set_cookie_params se utiliza ANTES de iniciar la sesión.
3. Todas los lugares donde inicias la sesión necesitan tener esta llamada ANTES de iniciar la sesión.

Aunque no creo que tu problema sea esto. Yo creo que debes estar destruyendo la sesión de alguna manera al estar navegando entre las dos urls.

Abre las herramientas de desarrollo de tu navegador y revisa que cookies tienes en las dos URLs, revisa si tienes la misma sesión. Si usas chrome, esta en la pestaña de Aplicación/Application en el menu de la izquierda bajo Almacenamiento/Storage y hay una entrada de "Cookies" ahí.

Revisa los valores de la cookie PHPSESSID (a menos que le hayas cambiado de nombre) entre la dos URLs. Si cambian es que no estas usando la misma sesión.
Gracias ya hice los 3 puntos que me mencionaste, también revise la cookie PHPSESSID y en ambas paginas tienen el mismo valor, llevo mas de 2 días revisando este detalle y aún no encuentro  el error.

SrTrp

Después de 10 días pudre lograr corregir el error, si alguien sabe por que sucede esto decirme por favor se los agradecería.
Arregle esto pasando exactamente el mismo código a otro archivo, en si lo único que es diferente es su nombre de archivo en el que me arrojaba error se llamaba index.php y lo solucione pasando lo mismo a uno llamado manager.php.

MinusFour

Probablemente no hayas estado usando la URL que necesitabas.