use_strict_mode una sesion recuperar ini_set destruir delete session php

session - una - Errores de manejo de la sesión de PHP



recuperar session php (13)

Mira tu mensaje

Entonces, lo primero que se relaciona con el permiso

open(/var/lib/php/session/sess_isu2r2bqudeosqvpoo8a67oj02, O_RDWR) failed: Permission denied (13) in Unknown on line 0

tienes que verificar el modo de cambio de permiso de archivo esto /var/lib/php/session/

En segundo lugar, se relaciona con session.save_path

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0

en php.ini

[Session] ; Handler used to store/retrieve data. session.save_handler = files ; Argument passed to save_handler. In the case of files, this is the path ; where data files are stored. Note: Windows users have to change this ; variable in order to use PHP''s session functions. ; As of PHP 4.0.1, you can define the path as: ; session.save_path = "N;/path" ; where N is an integer. Instead of storing all the session files in ; /path, what this will do is use subdirectories N-levels deep, and ; store the session data in those directories. This is useful if you ; or your OS have problems with lots of files in one directory, and is ; a more efficient layout for servers that handle lots of sessions. ; NOTE 1: PHP will not create this directory structure automatically. ; You can use the script in the ext/session dir for that purpose. ; NOTE 2: See the section on garbage collection below if you choose to ; use subdirectories for session storage session.save_path = /tmp/ //=>HERE YOU HAVE TO MAKE SURE ; Whether to use cookies. session.use_cookies = 1

Tengo esto en la parte superior de mi archivo send.php :

ob_start(); @session_start(); //some display stuff $_SESSION[''id''] = $id; //$id has a value header(''location: test.php'');

Y lo siguiente en la parte superior de mi archivo test.php:

ob_start(); @session_start(); error_reporting(E_ALL); ini_set(''display_errors'', ''1''); print_r($_SESSION);

Cuando los datos se envían a test.php , se muestra lo siguiente:

Array ( )

Advertencia: Desconocido: abierto (/ var / lib / php / session / sess_isu2r2bqudeosqvpoo8a67oj02, O_RDWR) fallido: Permiso denegado (13) en Desconocido en la línea 0

Advertencia: Desconocido: no se pudieron escribir los datos de la sesión (archivos). Verifique que la configuración actual de session.save_path sea correcta (/ var / lib / php / session) en Desconocido en la línea 0

Lo intenté solo con session_start (); pero los resultados son los mismos



tienes que cambiar la configuración de session.save_path al directorio accesible, /tmp/ por ejemplo

Cómo cambiar: http://php.net/session_save_path

Al estar en el host compartido, se recomienda establecer la ruta de guardar de la sesión dentro de su directorio de inicio, pero debajo de la raíz del documento

También tenga en cuenta que

  • usar ob_start es innecesario aquí,
  • y estoy seguro de que pusiste @operador por accidente y ya lo eliminarás para siempre, ¿no?

Este fue un error conocido en la (s) versión (es) de PHP. Según el entorno de su servidor, puede intentar configurar la carpeta de sesiones en 777:

/var/lib/php/session (su ubicación puede variar)

Terminé usando esta solución:

session_save_path(''/path/not/accessable_to_world/sessions''); ini_set(''session.gc_probability'', 1);

Deberá crear esta carpeta y hacerla escribible. No me he equivocado mucho con los permisos, pero el 777 me funcionó (obviamente).

Asegúrese de que el lugar donde está almacenando sus sesiones no sea accesible para el mundo.

Esta solución puede no funcionar para todos, pero espero que ayude a algunas personas.


Vaya a su archivo PHP.ini o encuentre PHP.ini EZConfig en su Cpanel y establezca PHP.ini EZConfig en la ruta completa que conduce al archivo tmp , es decir: /home/cpanelusername/tmp


Al usar la función de encabezado, php no activa un cierre en la sesión actual. Debe usar session_write_close para cerrar la sesión y eliminar el bloqueo de archivo del archivo de sesión.

ob_start(); @session_start(); //some display stuff $_SESSION[''id''] = $id; //$id has a value session_write_close(); header(''location: test.php'');


revise el espacio de su cpanel. elimine el archivo no utilizado o el archivo error.log y luego intente iniciar sesión en su aplicación (este trabajo para mí);


Recibí estos dos mensajes de error, junto con otros dos, y jugueteé un rato antes de descubrir que todo lo que tenía que hacer era reiniciar XAMPP. ¡Espero que esto ayude a salvar a otra persona del mismo tiempo perdido!

Warning: session_start(): open(/var/folders/zw/hdfw48qd25xcch5sz9dd3w600000gn/T/sess_f8bgs41qn3fk6d95s0pfps60n4, O_RDWR) failed: Permission denied (13) in /Applications/XAMPP/xamppfiles/htdocs/foo/bar.php on line 3 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /Applications/XAMPP/xamppfiles/htdocs/foo/bar.php:3) in /Applications/XAMPP/xamppfiles/htdocs/foo/bar.php on line 3 Warning: Unknown: open(/var/lib/php/session/sess_isu2r2bqudeosqvpoo8a67oj02, O_RDWR) failed: Permission denied (13) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0


Tuve el mismo error, todo fue correcto, como configurar los permisos de la carpeta.

En mi caso, parece un error en php porque cuando eliminé mi cookie PHPSESSID estaba trabajando nuevamente, así que aparentemente algo se echó a perder y la sesión se eliminó pero la cookie todavía estaba activa, así que php tuvo que definir la causa de manera diferente y verificar primero si el archivo de sesión sigue siendo ellos y dan otro error y no el error de permiso


Estoy usando php-5.4.45 y tengo el mismo problema.

Si usted es un usuario de php-fpm, intente editar php-fpm.conf y cambie listen.owner y listen.group a la derecha. Mi usuario de nginx es apache, así que aquí los cambio a params a apache, entonces funciona bien para mí.

Para el usuario de apache, supongo que deberías editar tus params de cgi rápidos, consulta los dos parámetros que mencioné anteriormente.


Si usa un host virtual configurado y encuentra el mismo error, puede anular la configuración predeterminada de php_value session.save_path en su <VirtualHost *:80>

# # Apache specific PHP configuration options # those can be override in each configured vhost # php_value session.save_handler "files" php_value session.save_path "/var/lib/php/5.6/session" php_value soap.wsdl_cache_dir "/var/lib/php/5.6/wsdlcache"

Cambia la ruta a tu propio ''/tmp'' con chmod 777.



Al usar la última WHM (v66.0.23), puede ir al Editor INI de MultiPHP y elegir la versión de PHP y establecer session.save_path como predeterminado / var / cpanel / php / sessions / ea-php70 en lugar de tmp simple anterior - esto me ayudó a obtener deshacerse de tales errores.