Las variables de sesión no funcionan php [duplicado]

Resuelto Arihant asked hace 54 años • 0 respuestas

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?

Arihant avatar Jan 01 '70 08:01 Arihant
Aceptado

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.

Vadman avatar Jan 28 '2014 03:01 Vadman

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.

Luis Felipe de Melo avatar Oct 01 '2015 16:10 Luis Felipe de Melo

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.

Ashraf Ali avatar Nov 05 '2016 12:11 Ashraf Ali

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 :)

Arihant avatar Oct 30 '2013 20:10 Arihant

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!

Oliver M Grech avatar Oct 31 '2020 10:10 Oliver M Grech