我需要这个PHP的帮助,这是一个if语句。根据usertype将显示不同的导航栏。我得到的所有global/i-super_nav.php
session_start();
if(isset($_SESSION["Member_type"]) && $_SESSION["Member_type"]== 'S'){
include ('global/i-super_nav.php');
}
elseif(isset($_SESSION["Member_type"]) && $_SESSION["Member_type"]== 'A'){
include ('global/i-admin_nav.php');
}
elseif(isset($_SESSION["Member_type"]) && $_SESSION["Member_type"]== 'U'){
include ('global/i-member_nav.php');
}
else
{
include ('global/i-nav.php');
}
答案 0 :(得分:0)
您使用的if语句非常简单,唯一的可能是$_SESSION["Member_type"]
始终是值"S"
。这意味着'问题'是另一回事。
您可以自己轻松验证。在您执行if语句之前,您可以放置print_r($_SESSION)
。如果这样做,您将在会话数组中看到值。它可能是小写的,也可能是简单的错误。
这应该是你的第一次测试(检查实际值,而不是你认为的那样)。
虽然我们正在努力,但我们还要添加一些代码审查。对于你所做的,另一种更常见的方法是switch()
:
switch( strtoupper($_SESSION["Member_type"]) ){
case 'S':
include ('global/i-super_nav.php');
break;
case 'A':
include ('global/i-admin_nav.php');
break;
case 'U':
include ('global/i-member_nav.php');
break;
default:
include ('global/i-nav.php');
break;
}
我添加了strtoupper()
。这样,如果您的值为S
或s
,它就会起作用。使用这样的字符串不是最佳的,这就是为什么我们经常使用数字,但这样你就使它变得更加愚蠢了:))
答案 1 :(得分:0)
你的if语句看起来很好。
但请仔细查看设置$_SESSION["Member_type"]
变量的代码。您的代码可能始终将其设置为值"S"