我目前有一个登录表单,如果登录成功,会将用户重定向到另一个页面。该页面应该是受保护的页面,如果用户未登录则无法为用户打开,并将其重定向到登录表单页面。
为了做到这一点,我将登录数据(电子邮件和密码)存储为会话变量,并使用它们来验证是否允许用户查看该页面。
在我的登录php页面中,我有以下代码
<?php
session_start();
if ($count == 1) {
$_SESSION['logged'] = 1;
$_SESSION['email'] = $myemail;
$_SESSION['password'] = $mypassword;
header("Location: account.html");
exit();
}
?>
我用以下内容开始我的帐户html文件:
<?php
session_start();
if ($_SESSION['logged'] != 1) { //no session
header("Location:memberlogin.html");
exit();
}
?>
但是,无论何时加载帐户页面,我都可以每次查看。这是我第一次使用Session变量,我不确定我是否正确使用它。
已修复感谢以下建议
我调整了下面建议的代码,我的受保护页面正在运行。感谢您的帮助。
答案 0 :(得分:0)
不会从html页面引用php代码。 因此,将account.html更改为account.php,然后在页面顶部添加会话检查代码,如下所示:
account.php:
<?php
if ($_SESSION ['logged'] !=1) {
//User is not logged in
header ("Location:memberlogin.html");
exit();
}
?>
但是,重定向不是最佳解决方案,如果用户未登录,您可以显示错误消息,否则授予用户访问页面信息的权限。 您可以按如下方式实现它:
account.php:
<?php
if ($_SESSION ['logged'] !=1) {
//User is not logged in, display an error message
echo 'You need to be logged in to access this page';
exit();
}
else{
//Display all information that only a logged in user can view
echo 'You are logged in, you can view the page';
}
?>