Maison >développement back-end >Problème PHP >Concernant le problème que php ne peut pas obtenir la valeur de session

Concernant le problème que php ne peut pas obtenir la valeur de session

藏色散人
藏色散人original
2020-08-17 09:16:113197parcourir

La solution au problème selon lequel PHP ne peut pas obtenir la valeur de session : créez d'abord un dossier nommé "session_temp" ; puis définissez ses autorisations sur "inscriptible" et enfin redémarrez Apache.

Concernant le problème que php ne peut pas obtenir la valeur de session

Recommandé : "Tutoriel vidéo PHP"

Aujourd'hui, j'ai écrit un morceau de code et testé le session , mais j'ai constaté que la valeur de session écrite ne pouvait pas être obtenue. Après avoir vérifié pendant un moment, j'ai finalement trouvé le problème :
Mon environnement est windows7+apache2.22+php5.2.17
Code de valeur de session spécifique

page1.php
<?php
echo "what are you doing now?";
session_start();
$_SESSION[&#39;a&#39;] = &#39;wangzhong&#39;;
$_SESSION[&#39;b&#39;] = &#39;liyu&#39;;
?>
page2.php
<?php
echo "I am testing";
session_start();
echo $_SESSION[&#39;who&#39;].&#39;<br/>&#39;;
echo$_SESSION[&#39;hiswife&#39;],&#39;<br/>;
?>

Les pages lues par ces deux sessions de test ont révélé que page2.php n'a pas pu obtenir la valeur enregistrée dans page1.php. Quelle est la raison spécifique ?
J'ai vérifié la configuration de la session dans Apache, les détails sont les suivants :

session

Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_pisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path D:/php/session_temp D:/php/session_temp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

Ensuite, j'ai trouvé que la session est entièrement ouverte, la session I a vérifié le chemin de sauvegarde et a constaté que le répertoire session_temp n'était pas trouvé dans le répertoire php. Cela peut être un problème ici. J'ai essayé de créer un dossier avec le même nom et de le rendre accessible en écriture. Ensuite, j'ai redémarré Apache et je l'ai testé à nouveau. . Cette fois, j'ai trouvé que la valeur de la session peut être lue.

Vraiment, ce simple petit problème doit aussi être soigneusement étudié. Je trouve que j'ai été un peu impétueux ces derniers temps.

Il n'y a pas de problème s'il y a htmldom avant la méthode session_start(), et cela n'affectera pas la lecture de la valeur de session. De même, s'il y a une instruction de sortie echo avant la méthode session_start(), cela n'affectera pas la lecture de la valeur de session. n'affectera pas la lecture de la valeur de la session.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn