Foros del Web » Programando para Internet » PHP »

eliminar informacion de sesion

Estas en el tema de eliminar informacion de sesion en el foro de PHP en Foros del Web. hola: tengo un servidor web con Apache 2 en RedHat 9 y uso Php 4.3.4, el problema lo tengo en que a veces al ingresar ...
  #1 (permalink)  
Antiguo 05/01/2004, 09:04
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
eliminar informacion de sesion

hola:

tengo un servidor web con Apache 2 en RedHat 9 y uso Php 4.3.4, el problema lo tengo en que a veces al ingresar al sistema con un usuario determinado por segunda vez no puedo acceder a la base de datos (Mysql 4.1, concretamente no puedo seleccionar una base de datos). Voy entonces al directorio /tmp y borro los archivos sess_xxxxxxx, y al ingresar de nuevo todo anda bien. Lo que me pregunto es por que se guardan tantos archivos de sesion, los cuales no se borran cuando el usuario abandona la pagina (como debiera ser).
Tambien tengo problemas al subir archivos, pues no puedo mover los archivos desde /tmp hacia un directorio del sitio web.

que alguien me ayude....gracias de antemano.
  #2 (permalink)  
Antiguo 05/01/2004, 11:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sobre el tema de los archivos de sesión .. PHP dispone de unas cuantas directivas para gestionar todo eso:

(php.ini)

session.save_path .. indica el directorio donde PHP va a generar esos archivos que contienen tus datos de sesión (variables). Puedes cambiarlo a otro directorio para tenerlo más controlado o dejarlo donde apunta actualmente (a tu /tmp)

session.gc_maxlifetime define el tiempo en el que una sesión (SID que va a asociado al archivo de sesión sess_xxx) es considerado como "basura" y entra en el ciclo de ser "recogido por el camión de la basura". (es decir; eliminado).


session.gc_probability y session.gc_divisor definen cada cuantas ejecuciones de "session_start()" se va a ejecutar la tarea de borrado de sesiones (archivos de sesión) que estén en modo "garbage" (listos para ser recogidos por el "camión de la basura).

Es un porcentaje de ejecuciones .. así que depende del número de veces que una página/script que haga uso de session_start() se ejecute .. así veras como se "limpian" los sess_xxxx o no .. mas o menos rápido.

Esas serian (si no me dejo alguna más) las directivas que afectan al tema de que veas o no esos archivos de sesión.

Así mismo .. el session.gc_maxlifetime junto con el session.cache_expire indican el tiempo que un SID es válido (expire). Su valor va expresado en segundos .. así que, juega con ese valor para que tu sesión muera al cerrar tu navegador (a 0 ambas vendría a ser ese efecto).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 05/01/2004, 11:22
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
si, los valores son los siguientes:

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off

pero no puedo modificar el php.ini por que no existe, nose, al compilar php no lo generó. Alguien sabe como hacer que aparezca?
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #4 (permalink)  
Antiguo 05/01/2004, 11:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Según la documentación oficial de PHP:

Cita:
By default on UNIX it should be in /usr/local/lib which is <install-path>/lib. Most people will want to change this at compile-time with the --with-config-file-path flag. You would, for example, set it with something like:

copy to clipboard
--with-config-file-path=/etc
And then you would copy php.ini-dist from the distribution to /etc/php.ini and edit it to make any local changes you want.

copy to clipboard
--with-config-file-scan-dir=PATH

On Windows the default path for the php.ini file is the Windows directory. If you're using the Apache webserver, php.ini is first searched in the Apaches install directory, e.g. c:\program files\apache group\apache. This way you can have different php.ini files for different versions of Apache on the same machine.

See also the chapter about the configuration file.
Al parecer nunca movistes ese php.ini-dist (y cambiar la extensión a sólo php.inio) al directorio indicado (y que tienes que indicarlo con la directiva de compilación que se menciona).

Ref.:
http://www.php.net/manual/en/faq.installation.php

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; 05/01/2004 a las 11:32
  #5 (permalink)  
Antiguo 05/01/2004, 13:24
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
entonces esta iniciandose con valores por defecto?, por que no hay nada en ese directorio en que debería estar el php.ini
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.

Última edición por claudiovega; 05/01/2004 a las 13:26
  #6 (permalink)  
Antiguo 05/01/2004, 13:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues así parece. Mueve el php.ini-dist a ese directorio .. cambia la extensión por .ini sólo y compilar PHP con la opción que le indica donde está el php.ini que vas a usar.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 05/01/2004, 14:03
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
genial, tome el archivo php.ini-dist y lo cambie al directorio indicado y lo renombre a php.ini, puse los cambios necesarios y voilá.
Ahora, que valores me recomendarias para session_xxx si lo que quiero es que la cookie de sesion se borre al salir y al volver hacia atrás (boton back del navegador)?
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #8 (permalink)  
Antiguo 05/01/2004, 14:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues ya te comenté .. todo a 0

session.gc_maxlifetime = 0
session.cache_expire = 0

Y ..
session.gc_probability

tendrás que ir probando ya que depende del nº estimado de ejecuciones de session_start() .. y eso va directamente relacionado con las ejecuciones que puedan tener esas páginas que lo contengan.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 05/01/2004, 15:00
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
gracias Cluster, lo deje en el valor por defecto 1%, pues lo habia subido a 10% y se terminaba muy rapido.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:47.