pasar - Las variables de sesión no funcionan php
session php login (8)
Aquí está el código de mi página de inicio de sesión donde el script de inicio de sesión comprueba la autenticidad del usuario y luego lo redirecciona a la página de la bandeja de entrada mediante 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 = debe 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 estoy equivocando?
Acabo de hablar con el servicio de alojamiento, era un problema de su parte. él dijo "su session session.save_path no se configuró porque surge un problema. Lo configuro para usted ahora".
Y funciona bien después de eso :)
Si usa un script de conexión, no olvide usar start_session();
en la conexión también, tuvo algunos problemas antes de darse cuenta de ese problema.
Tuve el mismo problema por un tiempo y me costó trabajo descifrarlo. Mi problema fue que tuve el sitio trabajando por un tiempo con las sesiones funcionando bien, y de repente todo se rompió.
Aparentemente, su session_save_path (), para mí era / var / lib / php5 /, necesita tener 777 permisos de chmod. Accidentalmente lo cambié, rompiendo sesiones por completo.
Para solucionarlo, solo haga sudo chmod -R 777 /var/lib/php5/
(o lo que sea que session_save_path () es) en Linux.
EDITAR: Cambiar el permiso al 777 no es la mejor solución si conoce al usuario que ejecuta su servidor de backend como. 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.
Tuve un problema similar y con el dominio de cookies:
ini_set(''session.cookie_domain'', ''.domain.com'');
el dominio se configuró incorrectamente, por lo que se ignoraron todas las sesiones porque la cookie del usuario nunca se configuró correctamente, espero que esto ayude a alguien.
Tal vez si su ruta de sesión no funciona correctamente, puede probar session.save_path(path/to/any folder);
funcionar como ruta alternativa. Si funciona, puede preguntarle a su proveedor de hosting sobre el problema de la ruta predeterminada.
- Asegúrese de que
session_start();
se llama antes de que se convoque cualquier sesión. Entonces, una apuesta segura sería colocarlo al comienzo de su página, inmediatamente después de la etiqueta<?php
apertura antes que cualquier otra cosa. Asegúrese también de que no haya espacios en blanco / pestañas antes de la etiqueta<?php
apertura.- Después del redireccionamiento del
header
, finalice el script actual usandoexit();
(Otros también han sugeridosession_write_close();
ysession_regenerate_id(true)
, puede probarlos también, pero usaréexit();
).- Asegúrese de que las cookies estén habilitadas en el navegador que está utilizando para probarlo.
- Asegúrese de que
register_globals
esté desactivado, puede verificarlo en el archivophp.ini
y también utilizandophpinfo()
. Consulte esto sobre cómo apagarlo.- Asegúrese de no eliminar o vaciar la sesión.
- Asegúrese de que la clave en su matriz superglobal
$_SESSION
no se sobrescriba en ninguna parte.- Asegúrate de redirigir al mismo dominio. Por lo tanto, redireccionar desde un sitio
www.yourdomain.com
ayourdomain.com
no lleva adelante la sesión.- Asegúrate de que tu extensión de archivo sea
.php
(¡sucede!).
Me encontré con este problema hoy. el problema tiene que ver con $ config [''base_url'']. Noté que htpp: //www.domain.com y http://example.com era el problema. para arreglar, siempre configure su base_url en http://www.example.com
La otra razón importante por la que las sesiones no pueden funcionar es jugar con la configuración de las cookies de sesión, por ej. estableciendo la duración de la cookie de sesión en 0 u otros valores bajos debido a un simple error o por otro desarrollador por un motivo.
session_set_cookie_params(0)