Bonjour,
J'ai un petit problème et à force de plancher dessus je commence à m'arracher les cheveux. Comme je vais finir par ne plus en avoir, je viens poser la question histoire d'arracher les cheveux des autres :p.
Contexte: Ubuntu - apache - php - prototype.js (et mysql mais on s'en fout).
Fonctionalité qui merde:
Page php -> objet en session -> requete ajax vers autre PHP -> retour de valeur
(contenue dans la session php, vu que je teste ça. Ca a l'air de ne servir à rien, mais je m'en sers par la suite pour savoir ce que je dois chercher en base comme données à afficher à l'utilisateur).
Etat initial (de tout naif quand je pensais que ça marchait tout seul):
- session_start();
- mise en session des valeurs par défaut (compte invité, la donnée s'affiche plus bas dans une div si je veux vérifier).
- sur click -> requete ajax vers un script php (qui pour ce test, renvoit juste la valeur mise en session)
- Ledit script fait un echo de la valeur (là j'ai déjà perdu la session je pense).
- Aucune valeur récupérée en retour.
Correction 1:
- Rajout de session_start(); au début du script php distant (mais ça ne marche toujours pas).
Correction 2 (là ça part en vrille de plus en plus):
- sauvegarde du session id dans une variable globale javascript
- requestHeaders: ['Set-Cookie', 'PHPSESSID=' + sid],
Dans ma requete je vois bien (firebug) le Set-Cookie avec la bonne valeur, mais ça ne marche toujours pas. (note, le phpessid de la réponse est différente)
Correction 3 (aussi nommée: "je m'enfonce"):
- idem que 2, mais je passe le phpessid aussi en paramètre, puis je:
- $sid = $_GET['sid']; header("Set-Cookie: PHPSESSID=".$sid);
Le set-cookie est bon dans les 2 sens mais ça ne marche toujours pas, toujours pas accès à ma session...
Corrections 4... 5... 6... etc (aussi nommé "le titanic")
-A partir de là j'ai tenté des trucs plus ou moins débiles ou loufoques, mais on va avoir la clémence de ne pas le mentionner. L'arrachage de cheveux commence et je suis bloqué...
Un peu d'aide pour un naufragé s'il vous plait?
La je bloque complètement...
N.B. ma variable session.cookie_path du php.ini est de base à /, ça m'a intrigué et je l'ai mise à /var/www/sessions (en créant le répertoire sessions) mais comme ça ne changeait rien, je l'ai remise à /.
N.N.B. la dernière fois que j'ai vu du code php, c'était il y a 5 ans, donc je suis débutant, mais en général je comprends assez vite... Ouais bon sauf là quoi...
Partager