Perte de session après une redirection sur serveur de prod

Résolu
Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 - 28 janv. 2014 à 14:09
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 7 mars 2014 à 12:47
Bonjour,
Je pense que le titre est assez explicite, mais je détaille quand meme au cas ou ;)
j'ai deux fichiers: p1.php, et p2.php
dans le premier, je crée une session et je redirige vers le second dans lequel j'affiche ma variable de session.
Ce fonctionnement fonctionne très bien en local, mais lorsque je teste ça sur mon serveur de production, p2.php m'affiche un tableau vide (array()) au lieu de m'afficher ma var de session
p1.php
<?php
session_start();
$_SESSION['toto'] =  md5('toto');

header('location: p2.php'); exit;
?>

p2.php
<?php
session_start();
print_r($_SESSION);
?>


Résultats:

en local:
Array ( [toto] => s:32:"f71dbe52628a3f83a77ab494817525c6"; )
en prod:
Array ()

quelqu'un a-t-il une idée?

Merci pour votre aide.

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
28 janv. 2014 à 18:27
Bonjour,

Pour ton header.. tu utilises strictement la même syntaxe que celle que tu nous présentes ou ton lien 'p2' est une autre url ?

Pourquoi cette question ?.. et bien simplement parce que le passage de variables de session ne fonctionne qu'avec des chemins relatifs..
Si tu essayes de passer des variables de sessions à une page que tu as appellés via son URL "complète" (exemple: www.monSite.fr/p2.php) cela ne fonctionnera pas alors que " ./p2.php" devrait ne poser aucun problème.
0
Pas vrai,
Cela fonctionne indifféremment que l'on utilise une adresse relative ou absolue

Par contre cela ne fonctionne pas si on change de serveur.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
7 mars 2014 à 12:47
@jacques : Je me suis mal Exprimé... c'est l'utilisation d'un include via une URL qui pose problème.
En passant par le chemin absolu (full Path ou en Relatif ) pas de soucis...
0
Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 2
28 janv. 2014 à 18:33
bonjour et merci pour ta réponse,

Je viens à l'instant de régler mon problème :)
et oui c'était un chemin relatif, je savais que les sessions ne passent pas entre domaine.
En fait, mon problème était dû au fait qu'une répartition de mon disque était full => impossible d'écrire sur le disque.
J'ai remonté jusqu'au fichier errors.log qui prenait 80% de mon espace disque => du coup, je vais le gérer différement à l'avenir :)

donc, pour ceux qui aurait le même problème, il m'a suffit de supprimé le fichier en question et de redémarrer apache.

Merci à tous

--
0
Rejoignez-nous