bueno pues en windows el tema de sesiones me funciona muy bien y se guardan en la carpeta qeu indica el php.ini
pero ahora me llevo la pagina a un server en linux y no entra en las sesiones por que?¿
Gracias
Un Saludo
| |||
Si revisas la documentación de sessiones del manual oficial de PHP .. veras que Hay bastantes factores a tener en cuenta a la hora de que TU código q usas ahora para trabajar con sesiones funcine en la configuración de tu servidor ... Tu como progagas el SID? automático o manual Revisa y compara la configuración de sessiones en tu servidor y el otro servidor .. Un saludo, |
| ||||
esto es loq ue hace en el archivo de configuraracion Código PHP: [PHP] include("configuracion.php"); session_start(); include("style.php"); echo '<div align="center" class=texto>'; checklogin($lang,$session); if($_SESSION['logged_in']==$session){ [PHP] |
| |||
cluster se referia a la configuracion de php. no de tu script.
__________________ Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX. |
| ||||
bueno este es el contenido de php.ini de linux, vamos el fragmento del session y lo vea igual que el de windows solo con la diferencia del session.save_path
Código:
joer no se que hacer ya estoy lokooooooooooooo [Session] session.save_handler = files ; handler used to store/retrieve data session.save_path = /tmp ; argument passed to save_handler ; in the case of files, this is the ; path where data files are stored session.use_cookies = 1 ; whether to use cookies session.name = PHPSESSID ; name of the session ; is used as cookie name session.auto_start = 0 ; initialize session on request startup session.cookie_lifetime = 0 ; lifetime in seconds of cookie ; or if 0, until browser is restarted session.cookie_path = / ; the path the cookie is valid for session.cookie_domain = ; the domain the cookie is valid for session.serialize_handler = php ; handler used to serialize data ; php is the standard serializer of PHP session.gc_probability = 1 ; percentual probability that the ; 'garbage collection' process is started ; on every session initialization session.gc_maxlifetime = 1440 ; after this number of seconds, stored ; data will be seen as 'garbage' and ; cleaned up by the gc process session.referer_check = ; check HTTP Referer to invalidate ; externally stored URLs containing ids session.entropy_length = 0 ; how many bytes to read from the file session.entropy_file = ; specified here to create the session id ; session.entropy_length = 16 ; session.entropy_file = /dev/urandom session.cache_limiter = nocache ; set to {nocache,private,public} to ; determine HTTP caching aspects session.cache_expire = 180 ; document expires after n minutes |
| |||
Segun parece .. tu forma de trabajar (de tu script) asume que propagas el SID en modo automatico (no se ve por ningun lado que lo hagas manual .. ) En la configuración q pusistes NO SE VE .. el estado de: session.use_trans_sid Comparalo con la de tu servidor .. ha de estar a "1" segun la programación de tu script lo hace .. Un saludo, |
| ||||
bueno faltaban estas dos lineas en el ini del linux Código PHP: |
| |||
Que vesión de PHP usas en tu "linux" y como usas la directiva: register_globals ? (on/off) Seguro que el cambio q hicistes en tu PHP.ini fué efectivo? .. sale en un phpinfo() los cambios q hicistes? .. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Hola Cluster. Yo tengo mas o menos el mismo problema que este usuario. La configuración de mi servidor es la siguiente (y estoy segura de ello): - Propago el SID automaticamente - session.use_trans_sid = 1 - session.save_path=/tmp (existe esta carpeta y se guardan perfectamente los archivos de session) - session.save_handler = files El Session_id() se propaga perfectamente de pagina en pagina. A diferencia del resto de preguntas que he encontrado sobre sesiones en este foro, yo no quiero utilizar las sesiones para el registro de usuarios . Quiero que el usuario que navega por mi web pueda seleccionar una serie de registros (en mi caso concreto son publicaciones) y cada vez que cambia de pagina quiero hacerle saber las publicaciones que ya ha ido seleccionando. Como te decia el UID lo propaga a las mil maravillas pero las variables de su sesión que voy creando las pierdo de enlace a enlace. Bueno, ya no las pierdo (escribiendo este mensaje seguí probando cosas). Ahora lo único que consigo con este código ... Código PHP: ... es: Lo que me devuelve print_r($SESSION) es lo siguiente: Array ( [SESSION] => Array ( [count] => 0 ) ) Cuando lo que yo esperaba es algo como: Array ( ['40'] => 'Publicacion 40' ) ¿Alguna idea? Un beso |
| ||||
Otra curiosidad sobre las sesiones. Respecto a session.save_handler = files, pensé en cambiarlo para que me gardara las variables en memoria en ves de en archivos porque pensaba que no las leia correctamente, que al guardarlas en archivos tenia que hacer el procedimiento de abrir el archivo y leerlas de ahí directamente. Para cambiarlo a modo memoria utilicé la función ini_set('session.save_handler','mm'); pero en el momento que incluía esa función en mi php, la página no me cargaba. Ni se colgaba ni daba error, sólo aparecía el típico mensaje de "No se puede mostrar la página". Volvía comentar la línea donde tenía incluida esa llamada y volvía a funcionar perfectamente. ¿Se te ocurre algo al respecto? Mil besos
__________________ BUSCO TELETRABAJO Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ... |
| |||
Se te olvidó una directiva más de propagación del SID .. session.use_cookies = 1 Y que tu navegador de pruebas las acepte. Sino, redireccionamientos javascript, META tag, header("location ... no te funcionará .. (te lo aviso por qué no veo cómo "saltas" de una página a otra ..) Y por supuesto del estado de register_globals .. aunque tu usas session_register() con lo cual podrás asumir las variables como globales si usas register_globals a ON .. A todo esto .. No puedes declarar una variable de sesión y en el mismo flujo del escript leer o esperar leer su valor. Las sesiones sólo quedan disponibles en la próxima petición al servidor. (una recarga de página o un salto de página en página por un link, formulario .. redirección ..) Y bueno .. el session_start() se ha de usar en tódas las páginas que requieras del uso de tus variables de sesión. También te recomiendo que NOOO uses la forma de trabajar con variables de sesión donde asumes dichos valores como globales. Usa los arrays superglobales $_SESSION (si usas PHP 4.1.0 o superior .. sino, es hora de actualizarse que ya van por PHP 4.3.3 RC1 ..). En las priméras FAQ's tienes un comentario al respecto. El "handler" mm Requiere de no me acuerdo que directiva de complilación/libreria extra para trabajar con la "Memoria". Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. Última edición por Cluster; 23/06/2003 a las 17:02 |
| ||||
Cita: Está a On perfectamente Mensaje Original por Cluster Se te olvidó una directiva más de propagación del SID .. session.use_cookies = 1 Cita: Lo acepta perfectamente Mensaje Original por Cluster Y que tu navegador de pruebas las acepte. Sino, redireccionamientos javascript, META tag, header("location ... no te funcionará .. (te lo aviso por qué no veo cómo "saltas" de una página a otra ..) Cita: También está a On. Mensaje Original por Cluster Y por supuesto del estado de register_globals .. aunque tu usas session_register() con lo cual podrás asumir las variables como globales si usas register_globals a ON .. Cita: El resultado de leer la variable de sesión que te puse está copiado de una página posterior a la que cree la variable de sesión de ahí mi asombro.Mensaje Original por Cluster A todo esto .. No puedes declarar una variable de sesión y en el mismo flujo del escript leer o esperar leer su valor. Las sesiones sólo quedan disponibles en la próxima petición al servidor. (una recarga de página o un salto de página en página por un link, formulario .. redirección ..) Cita: Efectivamente lo uso. Mensaje Original por Cluster Y bueno .. el session_start() se ha de usar en tódas las páginas que requieras del uso de tus variables de sesión. Creeme que me he recorrido las FAQs, el manual completo de php.net y que hago todo correctamente como dice en esos sitios pero no consigo leer correctamente las variables de sesión de una página a otra. Cita: He probado multitud de formas de trabajar con variables de session.. la que te he puesto en este mensaje, con $HTTP_SESSION_VARS y con $_SESSION y con todas he obtenido el mismo problema. Mensaje Original por Cluster También te recomiendo que NOOO uses la forma de trabajar con variables de sesión donde asumes dichos valores como globales. Usa los arrays superglobales $_SESSION (si usas PHP 4.1.0 o superior .. sino, es hora de actualizarse que ya van por PHP 4.3.3 RC1 ..). En las priméras FAQ's tienes un comentario al respecto. Sé que donde fallo es en esto pero no consigo lograr nada. Cita: Bueno, por lo que me has contado desecho el querer cambiar el modo del handler.Mensaje Original por Cluster El "handler" mm Requiere de no me acuerdo que directiva de complilación/libreria extra para trabajar con la "Memoria". Cita: Mil graciasMensaje Original por Cluster Un saludo, Un beso |
| ||||
Cluster..... solucionado. Eres un (#) --> Tendrás que ponerlo en el messenger para saberlo ;P El problema lo tenía donde yo creía... Tenía un error a la hora de comprobar si existían o no las variables de sesión que quería ir creando. Mil besos ;)
__________________ BUSCO TELETRABAJO Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ... |