-2

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

4

3 回答 3

2

如果条件和相等运算符忘记关闭

if($_SESSION['USERNAME'] = "DSaidov"{

应该

if($_SESSION['USERNAME'] == "DSaidov"){

其他人也一样

于 2013-03-21T09:57:59.333 回答
2

尝试关注

if($_SESSION['USERNAME'] == "DSaidov"){
echo 'Denis Saidov';
}
if($_SESSION['USERNAME'] == "LKatzarov"){
echo 'Lyoubomir Katzarov';
}
if($_SESSION['USERNAME'] == "Admin"){
echo 'George Gerginov';
}
于 2013-03-21T09:58:19.467 回答
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';
}
于 2013-03-21T09:59:36.740 回答