2013-08-29 2 views
0

Je travaille sur un site web qui nécessite l'utilisation de sessions. Cependant, la valeur par défaut pour la durée de vie d'une session est de 1440 secondes ou 24 minutes. J'ai essayé de changer cela en utilisant ini_set() en veillant à mettre le ini_set() avant le session_start(), puis en le vérifiant avec ini_get(). Le ini_get() renvoie la valeur que j'ai définie mais la session semble toujours suivre le jeu de règles par défaut.Est-il possible pour un hôte de verrouiller un paramètre php ini?

Est-il possible pour un hôte de bloquer l'édition des paramètres ini?

+0

Quel serveur web? – wallyk

+0

Je crois que j'utilise Linux avec Apache. – user2126881

+0

oui.Un hôte peut forcer les paramètres souhaités ou vous empêcher d'apporter des modifications s'il le souhaite. Surtout avec quelque chose avec des fichiers externes comme des sessions où ils pourraient faire leur propre garbage collection. –

Répondre

0

Réponse courte: éventuellement.

Il se peut qu'ils aient désactivé l'utilisation de ini_set via la directive disable_functions dans le fichier php.ini global, mais cela n'explique pas le comportement que vous voyez; la documentation n'est pas claire, mais je m'attendrais à ce qu'elle renvoie une erreur si vous avez appelé une fonction désactivée, et n'explique pas non plus pourquoi ini_get renvoie ce que vous avez précédemment défini. Il est également tout à fait possible qu'ils exécutent leur propre version corrigée de PHP qui modifie ce comportement. Pas inouï, mais peu probable.

choses à essayer:

  • avec la mise en place session_set_cookie_params (doit être avant session_start)
  • double contrôle que vous configurez la bonne param (session.cookie_lifetime) et que votre ini_set est certainement placé avant session_start, ou que vous n'avez pas d'autre session_start ailleurs
+0

Oui, j'ai fait les deux. Ils doivent être les désactiver alors. Ce qui est un peu gênant lors de l'utilisation des sessions pour les connexions utilisateur. J'ai une conversation avec eux à ce sujet :) – user2126881

-1

L'erreur est oui.

L'agent php a 3 étendues.

1 Système

celui-ci des effets toutes les applications. C'est le fichier global.ini. Ils peuvent également désactiver les écrasements.

2 Perdir

Ceci est votre fichier php.ini. Cela affecte uniquement vos répertoires. Ici, vous pouvez désactiver écrasements pour le champ de script et de faire écrasements dans le cadre du système quand on les laisse

3 Script

Ceci est la portée ini_set. Il peut remplacer le système perdir & portée quand on les laisse

est-il donc possible pour un hôte de lock-out édition des paramètres ini?

Oui, ils peuvent désactiver les écrasements dans leur portée système.

+1

Vraiment? Avez-vous une source? De ce que [la documentation dit] (http://uk3.php.net/manual/en/configuration.changes.php), il me semble que ceux-ci sont cuits dans PHP et ne peuvent pas être modifiés sans patcher PHP lui-même . Donc, si une propriété est marquée comme modifiable par 'PHP_INI_ALL', je ne vois pas comment vous pouvez la modifier comme modifiable par' PHP_INI_SYSTEM' à la place. – BenLanc