error:
Warning: session_destroy(): Session object destruction failed
es bastante trivial, no hay ninguna sesión
se ha iniciado
objeto ha sido comitted, por lo que no puede destruirlo.
El operador @
no siempre está activo, p. con funciones de informe de errores.
Editar:
1) What causes this error?
Este error es causado normalmente cuando PHP intenta eliminar el archivo de sesión, pero no lo encuentra.
En su caso con session_destroy
solo hay one place in PHP que causa esto. Ahí es cuando el session.save_handler
(consulte también session_set_save_handler
) devuelve FALSE
para la acción destroy. Esto depende de qué tipo de manejador de guardado uses, el predeterminado es archivos. Con eso, cuando la configuración session.save_path
es incorrecta (por ejemplo, no es un directorio accesible), esto causaría tal error.
2) Why would the "@" not be suppressing the error?
Eso depende de cómo se crea la salida y en la configuración de PHP. @
no siempre funciona. Por ejemplo, las devoluciones de llamada registradas con set_error_handler
seguirán recibiendo estos mensajes.
¿Por qué quiere suprimir el error, en lugar de corregirlo? –
quizás debido a '$ _SESSION = array();' o llamando 'session_name()' before 'session_start()'? no estoy seguro de cuál es el correcto ... – LeleDumbo
Solo las primeras dos líneas tienen sentido, el resto del código es desconcertante. No creo que entiendas cómo funciona $ _SESSION. Simplemente llame a session_start() y úselo. – rook