页面之间的会话变量丢失[重复]
Posted
技术标签:
【中文标题】页面之间的会话变量丢失[重复]【英文标题】:Session variables lost between pages [duplicate] 【发布时间】:2014-11-06 08:06:42 【问题描述】:在一个页面中,两个变量在一个 URL 中传递。
在第二页中,这些变量被初始化。提交时,新页面打开。问题就在这里,我无法恢复会话变量。
脚本指示错误(未定义的索引)。
提前感谢您的帮助。
这里是代码:
首页:
<?php
$requete_cours="SELECT COURS.SIGLE AS SIGLE, ANNEE FROM COURS, MODULE WHERE COURS.ID_MODULE = MODULE.ID_MODULE and ID_PERSONNE = $userid";
//$requete_cours;
$res = mysqli_query($cxn, $requete_cours);
echo (mysqli_error ($cxn));
while($ligne = mysqli_fetch_array($res))
echo '<a href="professeur_absences.php?classe='.$ligne['ANNEE'].'&cours='.$ligne['SIGLE'].'">';
echo $ligne['ANNEE'].' - '.$ligne['SIGLE'].'</a>';
echo '<br/>';
?>
第二页:
$_SESSION['classe'] = $_GET['classe'];
$_SESSION['cours'] = $_GET['cours'];
第三页:
if(isset($_REQUEST['afficher']))
$semaine = $_REQUEST['semaine'];
$classe = $_SESSION['classe'];
$cours = $_SESSION['cours'];
$_SESSION['semaine'] = $semaine;
$requete_cours_id = "SELECT ID_COURS FROM COURS WHERE SIGLE = $cours";
//echo $requete_cours;
$res = mysqli_query($cxn, $requete_cours_id);
echo (mysqli_error ($cxn));
$coursId = mysqli_fetch_array($res);
【问题讨论】:
你的页面是用session_start()
开始的吗?在您的示例中看不到这个
session_start 已初始化,一直报错。
有时,您可能会将 cookie 路径设置为不存在的目录。检查 phpinfo、session、session.cookie_path。如果不是主值(即“/”) - 将其更改为您需要的目录或重置为默认值(即“/”)。还要检查 session.save_path 并执行与上述相同的操作。
【参考方案1】:
您必须通过在每个脚本的开头调用session_start()
来初始化会话。确保这始终是第一行,因为session_start()
发送标头。
找几个examples on basic usage in the PHP docs。
【讨论】:
session_start 已初始化,一直报错。以上是关于页面之间的会话变量丢失[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Rails 仅在生产时才在页面重新加载时丢失会话变量 current_user_id(React 16.13、Rails 6、Heroku)