Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: SrTrp en 8 Julio 2021, 05:28 am



Título: $_SESSION no funciona en la siguiente pagina
Publicado por: SrTrp en 8 Julio 2021, 05:28 am
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
  1. <?php
  2. session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0);
  3. if(isset($_SESSION['usuario_valido'])) {
  4. ........
  5. ?>
  6.  
Esta parte va todo bien, el problema ya es en la siguiente pagina que quiero ir
Código
  1. $no=$_SESSION['usuario_valido'];
  2. $query="SELECT * FROM users WHERE folio= '$no' ";
  3. $result = $mysqli->query($query);
  4. $row = $result->fetch_assoc();
  5.   if (isset($_SESSION["usuario_valido"]) and (strcmp($row['rol'],"admin") == 0 ))  
  6.   {
  7. ..
  8. }else{
  9. print ("<P ALIGN='CENTER'>Acesso no Autorizado</P>\n");
  10. }
  11.  
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
Código:
$cfg['LoginCookieValidity'] = 0;
en el config.inc.php para forzar el maxlife de la session pero sigue igual.


Título: Re: $_SESSION no funciona en la siguiente pagina
Publicado por: 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...


Título: Re: $_SESSION no funciona en la siguiente pagina
Publicado por: SrTrp en 9 Julio 2021, 03:07 am
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.


Título: Re: $_SESSION no funciona en la siguiente pagina
Publicado por: 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?


Título: Re: $_SESSION no funciona en la siguiente pagina
Publicado por: SrTrp en 9 Julio 2021, 18:45 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.


Título: Re: $_SESSION no funciona en la siguiente pagina
Publicado por: 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.


Título: Re: $_SESSION no funciona en la siguiente pagina
Publicado por: SrTrp en 12 Julio 2021, 05:57 am
¿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.


Título: Re: $_SESSION no funciona en la siguiente pagina
Publicado por: SrTrp en 18 Julio 2021, 07:07 am
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.


Título: Re: $_SESSION no funciona en la siguiente pagina
Publicado por: MinusFour en 18 Julio 2021, 16:04 pm
Probablemente no hayas estado usando la URL que necesitabas.