【发布时间】:2015-07-11 18:52:23
【问题描述】:
我知道这个问题被问了很多次,但没有一个解决方案对我有用。
我可以设置会话,但问题是,由于某种原因,当我的会话未设置时,它一直说您的会话已设置。
这是我的一段代码:
session_start();
if($_SESSION["GOALOLD"]=="GOALOLDVALS") {
//echo $_SESSION['GOALOLD'];
$prog_descs = "";
$sel_prog_descs = "SELECT * FROM prog_description WHERE cons_id = '" . $_SESSION['behaviour_user'] . "' AND prog_id = '" . $_SESSION['prog_id'] . "' AND student_id = '" . $_SESSION['current_student'] . "' ORDER BY prog_desc_id DESC LIMIT 1";
$sel_prog_dessc = mysql_query($sel_prog_descs) or die(mysql_error());
if (mysql_num_rows($sel_prog_dessc) > 0) {
$rs_prog_dessc = mysql_fetch_array($sel_prog_dessc);
$prog_descs = $rs_prog_dessc['prog_goal_con'];
}echo $prog_descs;
}else if($_SESSION["GOALNEW"]=="GOALNEWVALS") {
//echo $_SESSION['GOALNEW'];
$prog_descs = "";
$sel_prog_descs = "SELECT * FROM prog_description WHERE cons_id = '" . $_SESSION['behaviour_user'] . "' AND prog_id = '" . $_SESSION['prog_id'] . "' AND student_id = '" . $_SESSION['current_student'] . "' ORDER BY prog_desc_id DESC LIMIT 1";
$sel_prog_dessc = mysql_query($sel_prog_descs) or die(mysql_error());
if (mysql_num_rows($sel_prog_dessc) > 0) {
$rs_prog_dessc = mysql_fetch_array($sel_prog_dessc);
$prog_descs = $rs_prog_dessc['prog_goal_con'];
}
echo $prog_descs;
}else{
}
这是我取消会话的方法:
unset($_SESSION['GOALOLD']);
unset($_SESSION['GOALNEW']);
是否有可靠且适当的方法来检查会话,无论它是否已设置,或者其中是否有一些 xyz 值?
对我来说,它们不起作用。
我什至在另一个浏览器中尝试过,但仍然遇到同样的问题,它一直说它已设置。可能我的if else 有问题或有技术问题;我不确定。
【问题讨论】:
-
好吧,反正情况并非如此。@Glorfindel
-
您能否检查一下本文提供的代码是否有效。 PHP Sessions。如果它不起作用,则存在某种类型的“设置”问题。
-
您需要添加更多代码,尤其是您在问题中引用的部分。您的代码只是一个空的 if/else,它什么都不做。
-
@KeepCoding 请在您的会话设置中包含更多信息,以便支持质量可以更好地反映您想了解的内容。你从 session_start() 开始吗?这是独立的吗?这是测试文件中的第一段代码吗?
标签: php session session-variables