Cita:
Iniciado por kraneok Si solo tienes es código, puede ser que al no estar seteando tu manualmente el ID en sessión, el servidor de 1&1 te de uno, es raro, pero prueba en un fichero aparte a crear una variable dentro de session .
Fichero para crear la session
session.php
Código:
<?php
session_start();
$_SESSION[ 'ID' ] = 'MiID'; // Manualmente mismo
Fichero al que accedes después
index.php
Código:
<?php
session_start();
echo $_SESSION[ 'ID' ];
Es decir, entramos en session.php para crear la sessión, y después entramos en index.php para ver que devuelve.
He probado eso y si parece que funciona en el hosting 1&1, es decir, primero ejecuto sesion_1.php y luego al ejecutar sesion_2.php me imprime por pantalla "MIID". Incluso si en el script sesion_1.php añado:
$_SESSION['nombre']="Juan";
y luego en sesion_2.php recupero dicha variable, todo funciona correctamente.
El problema es que en mi Web sigue sin funcionar.
Voy a resumir en pocas líneas como estoy haciendo el proceso de logueo para ver si el problema radica en algún procedimiento que no estoy haciendo correctamente:
Tengo una página llamada "login.php" donde se encuentra el formulario de logueo. Cuando el usuario pulsa en el boton de "Entrar", entonces mediante JQUery hago una petición ajax a la página "validar.php" que recibe el email y password del usuario y valida si es correcto. En caso afirmativo, ejecuto:
Código:
session_start();
$_SESSION[ 'ID' ] = 'MiID';
$_SESSION['email']=$_POST["email"];
El script "validar.php" finaliza imprimiendo un JSON indicando si la validación ha ido bien o no y que es tratado por la página que hizo la petición ajax "login.php".
Al finalizar la petición Ajax, si todo ha ido bien, se redirige a la página index.php y si ha ido mal se saca un mensaje de error y se mantiene al usuario en esa misma página "login.php".
Todas las páginas de mi web incluyen un archivo .php con la cabecera y en ella tengo puesto lo siguiente:
Código:
if (isset($_SESSION['email'])) {
/* Muestro el nombre del usuario en la cabecera */
}
else{
/* Muestro un enlace a la página de Login*/
}
Si esta definida la variable de sesion "email" imprimo el nombre del usuario en la cabecera. En caso contrario, añado un link a la página de Login.
Como comenté anteriormente, esto me funciona sin problemas en local pero no en el hosting 1&1.