用户是否使用PHP登录变量

时间:2009-02-06 02:26:45

标签: php oop authentication

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

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

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

到目前为止,这是我的课程......完成了我的尝试......

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;


    }







 }

非常感谢!

1 个答案:

答案 0 :(得分:7)

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

但是,我强烈建议您编写自己的身份验证类,除非您真的认真对待它。有许多优秀的PHP auth脚本可供选择,已经解决了所有Session variable

相关问题