PHP如果$ _SESSION回显。 PHP / MySQL的

时间:2013-03-21 09:55:52

标签: php mysql session

我有一个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表中的变量中。 我希望你理解我的意思。提前谢谢。

3 个答案:

答案 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';
}