让所有链接流经一个PHP文件继续实路径之前(如登录页面)
我有此脚本让所有链接流经一个PHP文件继续实路径之前(如登录页面)
<?php
$username = "namey";
$password = "passy";
$salted = "salty";
if (isset($_COOKIE['Cookiename'])) {if ($_COOKIE['Cookiename'] == sha1($password.$salted)) {
?>
<body>
<span>
it works
</span></body>
<?php
exit;}
else {
echo "Bad Cookie, Baaad lol";
exit;}}
if (isset($_GET['auth']) && $_GET['auth'] == "login") {
if ($_POST['user'] != $username) {
echo "The Provided Username Was Not Correct.";
exit;}
else if ($_POST['keypass'] != $password) {
echo "The Provided Password Was Not Correct.";
exit;}
else if ($_POST['user'] == $username && $_POST['keypass'] == $password) {
setcookie('Cookiename', sha1($_POST['keypass'].$salted));
header("Location: $_SERVER[PHP_SELF]");}
else {
echo "Something's wrong with the server.";}}
?>
<div>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?auth=login" method="post">
<label>Username<input type="text" name="user" id="user" /></label><br/>
<label>Password<input type="password" name="keypass" id="keypass" /></label><br/>
<input type="submit" id="submit" value="Login"/>
</div>
</form>
&基本上我需要在网站上的每一个环节来虽然这里&看,如果用户登录后才允许他访问他所要求的任何页面。
我刚开始学习PHP &现在我很困惑,你在上面看到的代码是我在这里看到的这个网站
我GOOGLE了一种方式来做到这一点的一个代码,但没有结果
您可以创建一个主要的php文件并添加一个检查来查看用户是否已登录。
并将主要的php文件包含在您要保护的每个脚本的顶部。
所以如果你创建了一个名为check.php
//add this to the created file check.php
if (!isset($_COOKIE['loggedin']) && !$_COOKIE['loggedin']){
header('Location: YOUR URL')
die();
}
文件,加入setcookie('loggedin', true));
下setcookie('Cookiename', sha1($_POST['keypass'].$salted));
,包括check.php在你的脚本的顶部。
希望这有助于:)
感谢您的帮助伴侣,拿你的榜样,增强它,它的作品超级棒。 – Jaqen
如果你想每页面验证登录,你会想要将这个文件包括在你需要认证的其他脚本的顶部。
另一种方法是使用PHP的auto_prepend_file
以及...将它预先添加到网络中的每个文件或所需的子目录中。
我的回答
无论如何,我宁愿创建一个cookie来存储,如果用户已经登录,然后检查每一页,如果用户没有登录,重定向他对你的脚本发布。
事情是这样的:
// cookies() is a function to validate your cookies..
if (!cookies()) {
header('Location: YOUR_URL', true, 303;
die();
}
检查this link关于PHP安全的重定向。
另一种选择是里面添加cookies()
重定向代码,所以你会仅仅只包含文件,其中cookies()
是,在你的脚本的顶部调用它。
那么,在PHP在页面的顶部,你可以添加一个指令,以验证用户是否登录('isset($ _ SESSION [“用户数据”])')如果它们不是,则使用'header('localtion:'+ url +'login.php')'将它们重定向到登录名。 – Nicolas
您需要在您的所有页面中包含此脚本,并在可以呈现真实页面之前先使其运行,然后检查登录是否正确。如果您已经有一个标题脚本,只需将其包含在其中,那么它将自动包含在其他页面中。在运行之前,请确保您没有呈现_anything_到输出,否则“位置”标题无法工作。 – ADyson