Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Valor $_SESSION conocido en LOCAL y desconocido al ejecutarse en servidor (https://www.clubdelphi.com/foros/showthread.php?t=93559)

Jose Manuel 13-11-2018 18:46:22

Valor $_SESSION conocido en LOCAL y desconocido al ejecutarse en servidor
 
Hola, tengo una web que funciona bien en LOCAL y también en un servidor de “000webhost” donde la subí para probar, ahora la he cambiado a un servidor de HOSTALIA, y tengo el siguiente problema con la variable $_SESSION:

Tengo un fichero INDEX.PHP donde se identifica el usuario y guardo las variables de $_SESSION
Código PHP:

$_SESSION['idusuario']  = $nid;     
$_SESSION['idnivel']     = $nivel;    
// Para comprobar que no están vacíos, he puesto que al saltar a la página menú, muestre estos valores en la URL 
header("Location: menu.php?id=$nid&nivel=$nivel "); 

En el fichero MENU.PHP, se comprueba que existe la variable y no está vacía.

Código PHP:

<?php 
session_start
(); 
if(!isset(
$_SESSION['idusuario']) && empty($_SESSION['idusuario']))
{
$idusuario   “kk”
$idnivel       “kk”;
header("Location: index.php");
} else  { 
$idusuario   $_SESSION['idusuario']; 
$idnivel     $_SESSION['idnivel'];     
}

Pues bien, esto me funciona perfectamente en LOCAL y en el Hosting gratuito de 000webhost, pero al instalar la web en Hostalia, las variables $idusuario y $idnivel toman el valor “KK” y en vez de saltar a index.php continua ejecutándose el fichero menú.php como si nada, compruebo las variables que le he pasado por URL y son correctas. id=6 y nivel=5.

Como digo en LOCAL y en 000webhost, los valores de $_SESSION se obtienen correctamente.

phpMyAdmin 4.0.9
MySQL 5.5.61

Un saludo y muchas gracias por vuesta atención
Jose Manuel García

dec 13-11-2018 21:31:48

Hola a todos,

Me chirría un tanto la siguiente condición:

Código PHP:

if(!isset($_SESSION['idusuario']) && empty($_SESSION['idusuario'])) {



¿No debería ser un "OR" en lugar del "AND"? Es decir, algo así:

Código PHP:

if(!isset($_SESSION['idusuario']) || empty($_SESSION['idusuario'])) {




Jose Manuel 14-11-2018 17:02:32

Gracías por responder, pero parece que ese no es el problema principal, aunque creo que tenias razón en cambiar && por ||. Lo he probado y sigue igual.

Como decia, todo funciona bien en localhost y en un servidor “000webhost”, pero al llevar la pagina al servidor de Hostalia me ha dado este problema. Y por lo que voy leyendo en Internet, creo que el problema podría tener relación en como se gestionan las $_SESSION en los subdominios.

Seguire mirando y aprendiendo .....

Un saludo
Jose Manuel García


La franja horaria es GMT +2. Ahora son las 11:09:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi