【问题标题】:Session variables lost between pages [duplicate]页面之间的会话变量丢失[重复]
【发布时间】:2023-03-30 04:53:01
【问题描述】:

在一个页面中,两个变量在一个 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'].'&amp;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 并执行与上述相同的操作。

标签: php session-variables


【解决方案1】:

您必须通过在每个脚本的开头调用session_start() 来初始化会话。确保这始终是第一行,因为session_start() 发送标头。

找几个examples on basic usage in the PHP docs

【讨论】:

  • session_start 已初始化,一直报错。
猜你喜欢
  • 2012-06-15
  • 1970-01-01
  • 2011-06-02
  • 2011-12-15
  • 2019-04-04
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
相关资源
最近更新 更多