Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/04/2003, 10:11
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Sobre ini_set() ... tan solo tienes que usar la sintax tipo:

ini_set("directiva","estado");

No todas las directivas de PHP.ini se pueden modificar en "tiempo real" (o tiempo en ejecución del script) .. Pero las de sessiones (la mayoria por no decir todas) si que se pueden ajustar así.

más info sobre ini_set():
http://www.php.net/manual/en/function.ini-set.php

Sobre las directivas de configuración de sessiones:

Hazte un phpinfo() a tu sitio y mira el estado de las directivas en cuestión:

session.gc_maxlifetime = 0

Determina el tiempo en el que una session (entiendase session a un SID valido y activo) tiene validez en el tiempo . Se expresa en segundos. Transcurrido ese tiempo la session creada pasará al estado "garbage" (basura) .. osese .. el archivo de sesión que se crea (si no cambias el "handler" ... q es file por defecto) permanecerá en el servidor en espera de ser "borrado" .. pero no será útil como sesion valida para ese SID asignado. Cuando se borrará "fisicamente" ese archivo creado de la sesion lo determinan:

session.gc_probability
Se expresa en porcentaje % ... de veces que se ejecuta un inicio de session via session_start() .. Si hay muchos accesos a tus páginas que hagan session_start() .. el porcentaje debería ser bajo .. 1% .. (por poner un ejemplo) . Si tienes pocos accesos y quieres "notar" que ese archivo de sesion realmente se "borra" .. deberias usar un porcentaje alto 100%.

Para PHP 4.3.x en adelante .. nace la directiva:
session.gc_dividend

con lo cual ya no es "porcentaje al 100%" sino que lo puedes cambiar y decir por ejemplo 1000% (mil por mil) .. etc ..

Estas dos directivas .. realmente no te interesan mucho .. si usas un servicio de hosting .. Pero la de session.gc_maxlifetime = 0 sí .. es mas .. a 0 indicaría .. "muere sesion al cerrar el navegador" ..

A su vez .. si usas propagación del SID en una cookie .. Lo determina la directiva:
session.use_cookies = 1 (a 1 . ON ..)

La cookie que se crea tiene tiempo de expiración tambien .. Por defecto suele estar a 0 segundos .. pero podría (o debería ser) igual al tiempo de session.gc_maxlifetime

session.cookie_lifetime = 0

Ya que te preocupa la seguridad (cosa normal y que a todos nos tiene que preocupar) .. te recomiendo que leas mas detenidamente:

http://www.php.net/manual/en/ref.session.php

Todo lo que te he dicho es prácticamente un resumen de lo que explica el propio manual de PHP oficial .. Cuanto mas conoces la configuración de las funciones que trabajas (en este caso sesiones) . mejor sabes como optimizarlas o entender como funcionan.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.