PHP - 未登录重定向
问题描述:
我添加了登录到我的网站,一切工作除了一件事情:如果一个用户谁没有登录没有重定向到login.php,我尝试了几件事请帮助我,谢谢。PHP - 未登录重定向
process.php(登录过程):
if ($row['username'] == $username && $row['password'] == $password && ("" !== $username || "" !== $password)){
$_SESSION["users"] = $row['username'];
$_SESSION['login'] = true;
header("Location: https://ferapps.altervista.org/tia/inde.php");
} else {
header("Location: error.php");
}
logout.php:
session_start();
$_SESSION['users'] = NULL;
$_SESSION['login'] = false;
header("location: https://ferapps.altervista.org/tia/content/login/login.php");
exit();
在网站我添加的所有网页:
include("content/login_verif.php");
login_verif.php:
session_start();
if $_SESSION['login'] != true;
{
header('Location: https://ferapps.altervista.org/tia/content/login/login.php');
exit();
}
答
只需在您的主页上添加安全措施。检查是否设置了$_SESSION['users']
和$_SESSION['login']
。如果其中任何一个没有设置,则将用户重定向到登录页面。
login_verif.php
session_start();
if(!isset($_SESSION['users']) || !isset($_SESSION['login'])){
// redirect the user to login page
header('Location: https://ferapps.altervista.org/tia/content/login/login.php');
exit();
}
,包括这个login_verif.php页面以下列方式,
require_once("content/login_verif.php");
而且这不是你应该如何注销用户。您需要正确清除cookies和销毁会话,因此你logout.php页面应该是这样的:
logout.php
<?php
session_start();
if(!isset($_SESSION['users']) || !isset($_SESSION['login'])){
// redirect the user to login page
header('Location: https://ferapps.altervista.org/tia/content/login/login.php');
exit();
}
$_SESSION = array();
if(isset($_COOKIE[session_name()])){
setcookie(session_name(),'',time()-42000,'/');
}
session_destroy();
// redirect the user to login page
header('Location: https://ferapps.altervista.org/tia/content/login/login.php');
exit();
?>
答
这里的问题是不正确的使用 “的file_get_contents” 的。
如http://php.net/manual/en/function.file-get-contents.php所述,file_get_contents是一种获取另一个文件的内容并以字符串格式返回的方法。
如果您想用另一个文件代码扩展文件,您应该查看require和/或include。
对于当前的代码,换出
file_get_contents("content/login_verif.php");
对于
require("content/login_verif.php");
+0
我知道,我写错了问题 – SkateIV
现在谢谢你的使用 – SkateIV
@SkateIV不客气!很高兴我能帮上忙。 :-) –