我有一个登录页面,当您成功登录后,您将被重定向到名为gallery.html
的页面。但是,当您使用/gallery.html键入url时,它会将您带到我尝试通过登录来保护的页面。使用条件语句以通过键入确切的方式来阻止页面打开的最佳方法是什么网址是什么?就像在页面开始加载之前检查一样,
答案 0 :(得分:3)
简单,在登录时使用session
变量,如果设置了会话ID,则将用户重定向到gallery.html
,否则重定向到登录页面,如下所示
if($_SESSION['userid']){
header( 'Location: gallery.html' ) ;
exit();
}elseif($_SESSION['userid'] == ''){
header( 'Location: login.html' ) ;
exit();
}
答案 1 :(得分:2)
我喜欢创建一个处理这类事情的函数:
function loggedin() {
if ( isset($_SESSION['user_id']) ) {
return true;
} else {
return false;
}
}
或使用三元运算符缩短的时间:
function loggedin() {
return (isset($_SESSION['user_id'])) ? true : false;
}
现在进行检查,只需在if语句中调用该函数:
if ( loggedin() ) {
// only logged in users can see this
}
OR
if ( !logged_in() ) {
// only users who aren't looged in can see this
}
比每次输入if (!isset($_SESSION['user_id'])) {
更容易!
答案 2 :(得分:1)
如果您不想向匿名用户显示gallery.html,请在页面顶部使用此代码
if(!isset($_SESSION['your_user_login_id']))
{
//redirect to home page
}
此代码将阻止匿名用户查看此页面。
答案 3 :(得分:1)
在gallery.php中使用$ _SESSION变量来检查$ _SESSION是否已设置。
虽然,我相信您必须将文件名从gallery.html更改为gallery.php
<?php
if (!isset($_SESSION['secret_variable'])
{
echo "<br/>Error Message<br/>";
return;
}
?>
继续使用其余代码。如果用户通过指定URL访问gallery.php,他/她将以Error Message
结束。
在您确定用户拥有有效的用户名和密码以确保有效登录后,应设置$_SESSION['secret_variable']
。
谢谢.. :))
答案 4 :(得分:1)
您需要在会话中设置登录状态,并在待保护页面中检查会话。
<?php
session_start();
if (!isset($_SESSION['login_status'])) {
// Add permission denied message or redirect back to the login page
}
?>
但是,这可以在PHP页面中完成,而不是在具有.html扩展名的页面中完成(除非您已使用“AddType x-httpd-php .html”指令明确指定了Web服务器配置。)
答案 5 :(得分:1)
最简单的方法是使用php。将您的gallery.html保存为gallery.php,或在所有编码之前在gallery.html页面的顶部输入以下代码。然后使用SESSION变量(此处为$ _SESSION ['userID'])存储当前登录详细信息。
<?php
if(! isset($_SESSION['userID'])){ //userID or something to identify the user
header('Location:login.php'); //redirects to the login page
}else{
header('Location:gallery.php'); //redirect to the gallery.php for valid login
}
?>
答案 6 :(得分:0)
无法阻止某人输入网址并请求该网页。您唯一能做的就是检查他们是否已登录页面本身。
答案 7 :(得分:0)
您必须在用户登录后设置cookie或会话。因此您将为用户设置会话或cookie。每次进入该特定网址时,您都必须检查会话以显示该网页,否则重定向到登录页面