tl,dr: if(isset($_SESSION["school"])) == true,则有效,否则无效
所以在我的首页,有一个下拉菜单,设置$_SESSION["school"],如果用户决定他们需要更多关于他们当地分支机构的信息。然后,我要确保他们在注册时设置正确。所以,我有一个下拉菜单,显示$_SESSION["学校"],如果它存在,然后显示下面的所有分支,以防他们需要改变。当$_SESSION["school"]不存在时,我希望它只显示学校列表,而忽略$_SESSION["school"]。
这段代码发生的情况是,如果设置了$_SESSION["school"],则信息将进入数据库,即使您在注册期间更改了下拉选项。如果没有设置$_SESSION["school"],即使在注册时设置,信息也不会进入数据库。更有趣的是,我对这个空白进行了验证,这意味着页面正在识别菜单!= "…如果$_SESSION["school"]之前没有设置,那么信息就不会一直到数据库。我认为下面的代码是相关的代码,因为这是我使用$_SESSION["school"]设置菜单选项的地方,但如果你需要的话,我可以发布一些其他的部分。
schoolsList.php
<?php
if(isset($_SESSION['school']) && $_SESSION['school']==true) {
echo
'<option value="'.$_SESSION["school"].'">'.$_SESSION["school"].'</option>';
}
echo
'<option value=""></option>
<option value="Indiana University">Indiana University</option>
<option value="Purdue University">Purdue University</option>';
?>
in my form:
<select
class="school"
id="school"
name="school"
>';
include "schoolsList.php";
echo
'</select>';
// will always validate to true except when $_SESSION["school"] is not set
if($_SESSION["school"])
这应该给你留下更多的空间来改进你的代码。
if(isset($_SESSION['school']) && $_SESSION['school']==true)
{
// do something here
}
PHP允许你设置变量和在不同类型之间切换,所以这些计算可能会很棘手。