sesion pasar paginas entre cerrar array php session session-variables

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.


  1. 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.
  2. Después del redireccionamiento del header , finalice el script actual usando exit(); (Otros también han sugerido session_write_close(); y session_regenerate_id(true) , puede probarlos también, pero usaré exit(); ).
  3. Asegúrese de que las cookies estén habilitadas en el navegador que está utilizando para probarlo.
  4. Asegúrese de que register_globals esté desactivado, puede verificarlo en el archivo php.ini y también utilizando phpinfo() . Consulte esto sobre cómo apagarlo.
  5. Asegúrese de no eliminar o vaciar la sesión.
  6. Asegúrese de que la clave en su matriz superglobal $_SESSION no se sobrescriba en ninguna parte.
  7. Asegúrate de redirigir al mismo dominio. Por lo tanto, redireccionar desde un sitio www.yourdomain.com a yourdomain.com no lleva adelante la sesión.
  8. Asegúrate de que tu extensión de archivo sea .php (¡sucede!).

Persecución de PHP perdida después de redirigir


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)