index.phpsession de PHP Subdomain disparaître
session_start();
if(!isset($_GET['n'])) {
$_SESSION['foo'] = "bar";
header("Location: /index.php?n=D");
}
echo "FOO: ".$_SESSION['foo'];
Cette page index.php
est utilisé dans un sous-domaine. Le sous-domaine est un dossier dans le domaine racine, à savoir
- WWW
- SUB DOMAIN
- index.php
La variable séance foo
est réglée sur appel page, puis vérifié après un en-tête de redirection - et il est parti.
J'ai essayé:
ini_set('session.cookie_domain','.example.com');
- Diverses combinaisons de
session_set_cookie_params()
- Lieu: http://subdomain.example.com
- Déchirer mes cheveux
mais rien ne semble fonctionner. Cela semble être un problème très simple - quelqu'un peut-il m'aider à trouver mon cookie/session/variable perdu?
EDIT
var_dump(session_get_cookie_params())
donne
array(5) { ["lifetime"]=> int(0) ["path"]=> string(11) "/" ["domain"]=>
string(23) ".example.com" ["secure"]=> bool(false) ["httponly"]=> bool(false) }
Mon URL a un tableau de bord -
en elle (my-example.com). Est-ce que ceci pourrait être le problème?
Également essayé le réglage session_name()
avant les paramètres. Ne fonctionne toujours pas.
Et qu'en est-il réellement dans les cookies? À quel domaine appartient le cookie de la variable de session? – zerkms
Merci pour la réponse - désolé, je ne comprends pas ce que vous essayez de dire. Tout ce qui devrait être dans le cookie est l'information d'identification de session, et ma variable 'foo'. J'ai rendu le cookie visible à tous les domaines avec '.example.com', il devrait donc être visible sur celui-ci. J'ai essayé de changer le 'chemin 'au sous-domaine, tous sans aucune chance. – Ben
Ahh vient de trouver le problème après cinq heures. 'session.save_path' n'a pas été défini sur mon serveur. Fera plus de recherche et écrira une réponse. – Ben