Las variables de sesión no funcionan php [duplicado]
Aquí está el código de mi página de inicio de sesión donde el script de inicio de sesión verifica la autenticidad del usuario y luego lo redirige a la página de la bandeja de entrada usando la función de encabezado.
<?php
session_start();
include_once('config.php');
$user=htmlentities(stripslashes($_POST['username']));
$password=htmlentities(stripslashes($_POST['password']));
// Some query processing on database
if(($id_user_fetched<=$id_max_fetched) && ($id_user_fetched!=0)){
$_SESSION['loggedIn'] = 'yes';
header("Location:http://xyz/inbox.php?u=$id_user_fetched");
//echo 'Login Successful';
}else{
echo 'Invalid Login';
echo'<br /> <a href="index.html">Click here to try again</a>';
}
}else{
echo mysqli_error("Login Credentials Incorrect!");
}
?>
La página inbox.php se ve así:
<?php
session_start();
echo 'SESSION ='.$_SESSION['loggedIn'];
if($_SESSION['loggedIn'] != 'yes'){
echo $message = 'you must log in to see this page.';
//header('location:login.php');
}
//REST OF THE CODE
?>
Ahora, con el código anterior, inbox.php siempre muestra el resultado: SESSION=debes iniciar sesión para ver esta página. Lo que significa que la variable de sesión no se está configurando o que inbox.php no puede recuperar la variable de sesión. ¿Dónde me equivoco?
Tuve el mismo problema por un tiempo y me costó mucho resolverlo. Mi problema fue que tuve el sitio funcionando por un tiempo con las sesiones funcionando correctamente, y de repente todo se rompió.
Aparentemente, su session_save_path(), para mí fue /var/lib/php5/, necesita tener los permisos correctos (el usuario que ejecuta php, por ejemplo, www-data necesita acceso de escritura al directorio). Lo cambié accidentalmente, rompiendo las sesiones por completo.
Ejecute sudo chmod -R 700 /var/lib/php5/
y luego sudo chown -R www-data /var/lib/php5/
para que el usuario de php tenga acceso a la carpeta.
Si usa un script de conexión, no olvide usarlo session_start();
también en la conexión; tuvo algunos problemas antes de notar ese problema.
Tal vez si la ruta de su sesión no funciona correctamente, pueda intentar session.save_path(path/to/any folder);
funcionar como ruta alternativa. Si funciona, puede preguntarle a su proveedor de alojamiento sobre el problema de la ruta predeterminada.
Acabo de hablar con el servicio de hosting, había un problema por su parte. dijo: "su cuenta session.save_path no se configuró como resultado de un problema. Lo configuré ahora".
Y después de eso funciona bien :)
Tal vez ayude a otros, yo mismo tuve
session_regenerate_id(false);
¡Lo saqué y todo ok!
después de iniciar sesión estuvo bien... ¡ay!