我有一个auth.php脚本,它将MySQL表中的值插入$_SESSION['USERNAME'];
这是auth.php的脚本:
<?php
include("sql.php");
session_start();
function Destroy() {
unset($_SESSION['UID']);
unset($_SESSION['USERNAME']);
unset($_SESSION['FULL NAME']);
header("location: index-restricted.php");
}
if(isset($_SESSION['UID']) && isset($_SESSION['USERNAME'])) {
$UID = $_SESSION['UID'];
$username = $_SESSION['USERNAME'];
$qry = mysql_query("SELECT * FROM `users` WHERE `UID` = '$UID' AND `Username` = '$username'");
if(mysql_num_rows($qry) != 1) { Destroy(); }
} else { Destroy(); }
?>
我有一个dashboard.php,这是我的CMS首页,在顶部我添加了echo $_SESSION['USERNAME'];
,它显示了谁登录了CMS,所以我想做某事。像那样。 (请记住,我在mySQL表中有3个用户:DSaidov,LKatzarov,Admin)
if($_SESSION['USERNAME'] = "DSaidov"{
echo 'Denis Saidov';
}
if($_SESSION['USERNAME'] = "LKatzarov"{
echo 'Lyoubomir Katzarov';
}
if($_SESSION['USERNAME'] = "Admin"{
echo 'George Gerginov';
}
但是,当我执行以下操作时,它显示我:Denis SaidovLyoubomir KatzarovGeorge Gerginov
。我认为问题出在auth.php文件和mySQL表中的变量中。
我希望你理解我的意思。提前谢谢。
答案 0 :(得分:2)
你忘了关闭条件和等式运算符
if($_SESSION['USERNAME'] = "DSaidov"{
应该是
if($_SESSION['USERNAME'] == "DSaidov"){
其他人
答案 1 :(得分:2)
尝试以下
if($_SESSION['USERNAME'] == "DSaidov"){
echo 'Denis Saidov';
}
if($_SESSION['USERNAME'] == "LKatzarov"){
echo 'Lyoubomir Katzarov';
}
if($_SESSION['USERNAME'] == "Admin"){
echo 'George Gerginov';
}
答案 2 :(得分:1)
这可能是您的错误,或者您对PHP中的比较运算符感到不舒服
您正在放置if语句,例如if($_SESSION['USERNAME'] = "DSaidov")
以上情况永远是正确的,因为您设置 $ _SESSION值而不是将比较为
。将上述内容更改为if($_SESSION['USERNAME'] == "DSaidov")
(注意额外=)将为您解决此问题。
如果您需要进一步说明,请查看以下比较运算符手册:
http://php.net/manual/en/language.operators.comparison.php
您的完整代码应为:
if($_SESSION['USERNAME'] == "DSaidov"){
echo 'Denis Saidov';
}
if($_SESSION['USERNAME'] == "LKatzarov"){
echo 'Lyoubomir Katzarov';
}
if($_SESSION['USERNAME'] == "Admin"){
echo 'George Gerginov';
}