À l'aide de session_name() en PHP - Impossible d'Accéder aux Données
Lorsque j'utilise:
session_name( 'fObj' );
session_start();
$_SESSION['foo'] = 'bar';
Par la suite au chargement de la page et en cours d'exécution:
session_start();
print_r( $_SESSION );
doe ne pas retourner les données de session.
Si je supprime le session_name(); il fonctionne très bien.
Personne ne sait comment utiliser les sessions avec un autre nom de session?
Mise à JOUR:
Si j'exécute le code ci-dessus, que les deux chargement de la page, puis changer pour:
session_name( 'fObj' );
session_start();
print_r( $_SESSION );
Je peux accéder aux données. Toutefois, si elle ne fonctionnera que si j'ai d'abord charger la page sans la ligne:
session_name( 'fObj' );
Le nom de la session est réinitialisé à la valeur par défaut stockée dans la session.nom à la demande temps de démarrage. Ainsi, vous devez appeler session_name() pour chaque requête (et avant session_start() ou session_register() sont appelées).
J'ai essayé, comme ci-dessus (mise à jour).
J'ai essayé, comme ci-dessus (mise à jour).
OriginalL'auteur Kohjah Breese | 2014-08-22
Vous devez vous connecter pour publier un commentaire.
John Robertson est correct, la déclaration qu'il a mentionné vient tout droit du manuel PHP (http://php.net/manual/en/function.session-name.php).
Votre nom de session par défaut vient du php.ini variable de session.nom", et c'est généralement réglé sur "PHPSESSID". À chaque démarrage du moment de la demande (comme déjà mentionné), la session sera renommé PHPSESSID sauf si vous appelez session_name( 'fObj) avant session_start()
sur chaque page, page1:
page 2:
Par la suite, vous pouvez aller à votre php.paramètres ini et modifier la session.nom de la variable PHPSESSID à fObj et tous de votre créé séances auront un nom de session de fObj.
OriginalL'auteur Anth Bieb
Je suis capable de faire fonctionner fine et le retour des données de SESSION avec le code suivant:
Si je le lance avec le deuxième session_start(); Il revient avec un message d'erreur me disant qu'une session est déjà commencé. Si vous êtes dans le dev, assurez-vous d'activer ERROR_ALL en php.ini. Assurez-vous de le désactiver dans la production. Un lien vers le rapport d'erreurs php fonctions.
Mise à jour:
Fonctionne également avec:
session_name( 'fObj' );
$_SESSION['foo'] = 'bar';
Utiliser Ubuntu 14.04 LTS, PHP 5.5.9-1 (laissez-moi savoir si vous avez besoin de plus d'infos sur le système de suss le problème)
OriginalL'auteur nwolybug
À la lumière de nwolybug du post, je pense que cela doit être dû à des paramètres environnementaux. Je peux obtenir que cela fonctionne via procédant de la manière suivante:
OriginalL'auteur Kohjah Breese