Ajax - Erreur de Sessions chez Free

Résolu/Fermé
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 3 juin 2009 à 01:11
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 3 juin 2009 à 10:39
Bonjour,

J'ai mis en ligne un site internet qui fonctionne chez moi et au boulot en local. (PHP5 Mysql)
Ce site utilise de l'Ajax pour mettre à jour des variables en session.

Or je constate que si mon site ne fonctionne pas chez mon hébergeur (free), c'est parce que mes variable de session qui sont mises à jour dans mes scripts PHP au niveau du serveur, ne sont pas reconnues correctement sur la page web.

Pour ceux qui connaissent un peu moins bien les rouages de l'ajax, en gros, un script javascript appel depuis une page web un ficher PHP chargé de faire du traitement. Dans mon cas ce fichier PHP met à jour des variables en session, puis, déclenche une fonction de raffraichissement de ma page (fonction javascript donc).
Lorsque la page s'affiche à nouveau, les variables de session devrait avoir les nouvelles valeurs mises à jour précédemment, or ce n'est pas le cas !

J'essai de comprendre pourquoi depuis un moment mais j'avoue que je ne trouve pas.

Quelqun connaitrait-il la solution ?

En vous remerciant d'avance.

ps: j'ai vérifié, la session est bien toujours la même, pas de problème de ce coté.

3 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 856
3 juin 2009 à 10:39
Re bonjour,

Concernant les répertoires "session", effectivement chez Free il est obligatoire, mais ce n'est pas de là que vient le problème puisqu'il y ai déjà :)
Pour ce qui est de laisser des traces, déjà fait, et c'est justement ça qui m'a mis la puce à l'oreille sur une "mauvaise gestion" des sessions.

Au final j'ai trouvé d'où cela vient : simplement du serveur que j'ai loué et de sa config.
Il suffisait d'inclure un fichier .htaccess (ou php.ini chez free vu qu'ils n'acceptent pas les fichiers .htaccess) et d'y mettre les instructions pour changer la variable qui définie le type de transmission des sessions (soit par l'url, soit par les cookies) :

session.use_trans_id = 0

A 0 cette variable signifie que les identifiants de session sont transmis via cookies, alors que mon serveur était configuré avec la valeur 1, il attendait donc que les identifiants de session soient transmis par l'url, chose que je ne faisais pas (et que je ne veux pas faire)


Problème résolu donc.

1
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 172
3 juin 2009 à 03:17
Salut,

tu as cas retourner la valeur de la session une fois le changement fais avec le PHP. Ensuite tu affiche un simple alert contenant ce que le PHP te renvoie (la session changée).

Et si tu veux pousser, fais un try..catch en PHP qui renvoie une exception si il y a une erreur. Là tu sera fixé ;)

Redis moi l'erreur :)

A+

Gaerebut
0
Bonjour

Chez free, pour que les sessions fonctionnent, il faut créer un répertoire appelé 'sessions' à la racine. Tu n'as rien à mettre dedans.
0