2
<?php
//Login Module (Updated, isset now correct)
session_start();
if(!(isset($_SESSION['login']) && ($_SESSION['login'] != ""))) {
    include('processor/ProcessLogout.php');
} else {
    include('processor/ProcessLog.php');
}
?>

问题是……它不起作用。我似乎无法让它验证为真 T_T。我在处理器/assess_login.php 中设置了 $_SESSION['login']。ProcessLog 只是一些 div 的容器和表单,表单将信息传递给 asssess_login(然后告诉我登录是否成功)。一个显示登录表单,另一个显示注销表单。不幸的是,即使我得到“登录成功”......令人担忧的是 $_SESSION['login'] 拒绝更改为 '1'。(如果登录成功,这就是我在评估登录中所做的。如果失败,我将其设置为空字符串。

现在据我所知 session_start() 应该记住这一点,但由于某种原因......它没有;所以关于我的错误搜索的任何提示

有编译错误和带走!事实上确实显示了替代方案,所以我知道那个位“正在”工作它只是没有评估为真。

现在......至于assess_login......

           if ($db_found) {
        $member_username = quote_smart($member_username, $db_handle);
        $member_password = quote_smart($member_password, $db_handle);

        $sql = "SELECT * FROM $tblname WHERE username=$member_username AND passphrase=$member_password";
        $result = mysql_query($sql);
        $num_rows = mysql_num_rows($result);

        //Validate there is a user
        if($result) {
            if($num_rows == 1) {
                session_start();
                $_SESSION['login'] = '1';
                header("location: ../login_success.php");

            } else {
                session_start();
                $_SESSION['login'] = "";
                header("location: ../login_fail.php");

            }
        } else {
            $error_msg = "Error Validating User! -1";
        }           
    mysql_close($db_handle);
    }

记住它有点掩埋了。正如我之前所说,我无法让登录保持不变,而且我知道我错过了一些明显的东西,如果我能弄清楚是什么,我会被诅咒的。

4

2 回答 2

1

您的 if 语句不正确:

if(!(isset($_SESSION['login'])) && ($_SESSION['login'] != ""))

应该

if(!(isset($_SESSION['login']) && $_SESSION['login'] != ""))
于 2012-05-07T19:01:08.087 回答
0
if(!(isset($_SESSION['login']) && $_SESSION['login'] != ""))

在这段代码中你说:如果它没有设置并且它不是空的你希望它被设置而不是空的:

if((isset($_SESSION['login'])) && ($_SESSION['login'] != ""))
于 2012-05-07T19:48:13.777 回答