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)
非常感谢你!
由于HTTP是无状态的,因此您的类'静态变量($ _auth)将不会在页面加载之间"存活",因此如果您尝试使变量保持不变,则需要将其存储为Session变量.
但是,我强烈建议你不要写自己的auth课程,除非你真的认真对待它.有许多优秀的PHP auth脚本可供选择,它们已经解决了所有复杂的Web身份验证问题.
归档时间: |
|
查看次数: |
746 次 |
最近记录: |