En este artículo te contamos las causas más frecuentes que hacen que las sesiones o variables de sesión no funcionen en tu hosting qué puedes hacer para solucionarlo.
Antes que nada, ten en cuenta que si tienes configurado tu sitio, app o hosting para que no muestre errores de PHP, es posible que al producirse un error veas una página en blanco. En ese caso, debes recurrir a los logs de error de php o activar que se muestren los errores de PHP en pantalla o activar el modo debug en tu app.
También, asegúrate que tu cuenta tenga espacio en disco disponible y pueda escribir archivos correctamente.
Hemos creado un script para que puedas probar el funcionamiento de las sesiones de PHP de forma aislada en tu hosting: prueba-session.php
Problemas con el output
Si recibes un error como el siguiente:
PHP Warning: session_start(): Cannot start session when headers already sent
Este error ocurre cuando intentas ejecutar session_start luego de ya haber enviado una respuesta (output) al browser del visitante. La respuesta puede tratarse de algo mal en tu código o un error de PHP que haya sucedido antes de intentar abrir la sesión.
Problemas con el directorio temporal de las sesiones
Este tipo de errores suele ocurrir porque hay problemas con los archivos temporales de las sesiones. Puedes recibir errores como los siguientes:
Warning: session_start(): Failed to read session data: files (path: /xxx)
Warning: session_start(): open(/xxx, O_RDWR) failed: No such file or directory
Las causas podrían ser las siguientes:
- El directorio donde se almacenan los archivos de sesión de PHP no está definido correctamente en la configuración de tu hosting
Debes asegurarte que la variable "session.save_path" de tu configuración de PHP existe y esté correctamente definida. Esto puedes verificarlo dentro del MultiPHP INI Editor de tu cPanel y también de manera directa en tus archivos php.ini, .user.ini y .htaccess.
Muchas veces en el editor MultiPHP INI de cPanel se muestra el valor correcto de session.save_path para tu cuenta, pero no así en los archivos mencionados, por lo que te recomendamos constatar que en cada uno de los archivos, en donde se especifque session.save_path siempre coincidan y sean todos correctos.
Un valor correcto de "session.save_path" debería ser /var/cpanel/php/sessions/ea-phpXX (donde XX es la versión de PHP que estés utilizando).
Ten en cuenta que si mudaste tu cuenta desde otro proveedor, es posible que los archivos de configuración de PHP que te mencionamos hayan sido reemplazados con los que tenías en tu anterior hosting y tengan mal esa directiva. - Tu cuenta está bloqueada o no tiene espacio libre
Si tu cuenta no tiene la posibilidad de escribir más información o crear nuevos archivos, PHP no podrá crear nuevos archivos de sesión temporales. Conocer qué está consumiendo el espacio en mi Hosting - Utilizas un directorio personalizado para los temporales que no tiene los permisos adecuados
Si tienes especificado un directorio temporal para las sesiónes de PHP (session.save_path) propio y dentro de tu cuenta, asegúrate que tiene los permisos adecuados para que se puedan escribir los archivos temporales allí.
Otros problemas
Si tu sitio o app no son compatibles con la versión de PHP que tienes configurada, es posible que cambiando la versión puedas solucionar el inconveniente: Cambiar la versión de PHP
Si creés que tu sitio o cuenta fueron comprometidos o infectados, puedes recurrir a la siguiente guía para revisarlo a fondo: Cómo limpiar y prevenir un sitio web infectado
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.