web-dev-qa-db-fra.com

Comment changer session_save_path dans le fichier php.ini?

J'ai un hébergement partagé sur GoDaddy.

J'ai essayé de changer le chemin de sauvegarde de la session dans le fichier php.ini avec cette ligne,

sessions.save_path = "/session"

J'ai contrôlé le chemin de sauvegarde des sessions avec sessions.save_path () function. Il retourne /tmp avant et après avoir changé php.ini

Est-il possible de changer de chemin de sauvegarde de session sur un hébergement partagé?
Où est-ce que je me trompe?

14
ocanal

Vous pouvez modifier le chemin de sauvegarde de la session sur l'hébergement partagé en créant un php.ini personnalisé.

Incluez ceci dans votre fichier: session.save_path = "/path/to/your/folder"

Sinon, vous pouvez utiliser:

ini_set('session.save_path', '/path/to/your/folder')

Le dossier que vous utilisez doit se trouver sous votre domaine/compte mais ne doit pas être accessible via un navigateur Web. Il doit également disposer d'autorisations en écriture universelle. Et chaque page utilisant des sessions doit inclure cette ligne.

29
Mughil

C'est session.save_path et non sessions.save_path (il a peut-être été renommé ou quelque chose d'autre, je ne sais pas, mais sessions.save_path n'a pas fonctionné pour moi)

session.save_path = "/path/to/your/folder" 

fonctionne bien

6
Iburidu

Il est également important de noter que session.save_path doit être appelé avant session_start()

0
Akintunde-Rotimi

Voici comment j'ai fait fonctionner les sessions, avec l'aide de ce fil. J'exécute PHP dans IIS.

Définissez le dossier de session dans php.ini. 

session.save_path = "C:/inetpub/temp/php_session"

(Je ne sais pas encore si ce dossier de session est la meilleure pratique pour mon environnement ... en termes de sécurité. Je dois lire davantage à ce sujet.)

Définir le chemin de session n'était pas suffisant. Au début, j'avais placé session_start () dans une fonction où je devais définir mes variables de session mais, même si le fichier de session avait été créé dans mon chemin (sess_d9eeeb305928f2f39a25f296773b09eb), la valeur $ _SESSION était perdue lors d'une publication ajax à mon PHP page. Quelqu'un sur la pile\o a dit de mettre session_start () en première ligne, alors j’ai essayé et la valeur de ma session fonctionne. Je n'ai pas trouvé où le détruire.

<?php 
session_start();
...
0
Greg Bologna

Créez un dossier nommé session dans le C:\session.

Remplacez le répertoire session.save_path(); par le chemin nouvellement créé: (C:\session) en dehors du dossier tmp.

0