似乎无法让PHP登录'坚持'

时间:2012-05-07 18:55:49

标签: php session

<?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。我在processor / assess_login.php中设置$ _SESSION ['login']。 ProcessLog只是一些div的容器,表单将表单传递给asssess_login(然后告诉我登录是否成功)。一个显示登录表单,另一个显示注销表单。不幸的是,即使我得到“登录成功”......但是相当令人担心的是$ _SESSION ['login']拒绝改为'1'。 (如果登录成功,那就是我在assessment_login中所做的。如果失败我将其设置为空字符串。

现在据我所知,session_start()应该记住这个,但由于某种原因......它不是o.o;关于我的虫子狩猎的任何提示

有编译错误并带走了!事实上显示替代方案,所以我知道有点'工作'它只是没有评估为真。

现在......至于assessment_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);
    }

请记住 埋藏了一些。正如我之前所说,我无法登录,我知道我错过了一些显而易见的东西,如果我能弄明白的话,我会被诅咒。

2 个答案:

答案 0 :(得分:1)

您的if语句不正确:

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

应该是

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

答案 1 :(得分:0)

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

在此代码中,您说:如果未设置且不为空 你希望它被设置而不是空:

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