用户是否使用PHP登录变量

ale*_*lex 0 php oop authentication

我已经构建了一个名为Login的类,其中有一个构造可以记录它们但它没有...我还有一个名为isAuthenticated的静态函数,用于检查用户是否已登录...我一直在用静态函数等乱搞,但似乎无法得到我想要的东西.

理想情况下,它是我可以轻松去的地方

<?php if (Login::isAuthenticated()) { ?>
<a href="/sign-out/">Sign Out</a>
<?php } ?> 
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的班级...完成我的尝试..

class Login
 {
    private static $_auth;

    public function __construct($username, $rawPassword) {

        global $db;

        require('edit/users/config.php');

        $hashedPassword = sha1(SALT . $_POST['password']);

        $query = 'SELECT firstname FROM users WHERE user = "' . $db->cleanString($username) . '" AND pass = "' . $db->cleanString($hashedPassword) . '" LIMIT 1';


        $login = $db->query($query);

        if ($login) {


            $_SESSION['username'] = $username;
            self::$_auth = true;



            header('Location: ' . CONFIG_DIR_BASE);


        } else {

            ErrorHandler::addErrorToStack('Your username and/or password did not match one on our system. ');

        }

    }



    public static function isAuthenticated() {



         return self::$_auth;


    }







 }
Run Code Online (Sandbox Code Playgroud)

非常感谢你!

Jen*_*and 7

由于HTTP是无状态的,因此您的类'静态变量($ _auth)将不会在页面加载之间"存活",因此如果您尝试使变量保持不变,则需要将其存储为Session变量.

但是,我强烈建议你不要写自己的auth课程,除非你真的认真对待它.有许多优秀的PHP auth脚本可供选择,它们已经解决了所有复杂的Web身份验证问题.