PHP 如果(已登录)然后(加载页面)否则(重定向到登录)


PHP if (Logged In) then (Load Page) else (redirect to login)?

我正在尝试了解如何编写PHP代码以仅允许登录访问者访问目录/文件夹。我已经有了.htaccess规则,可以在访问 url 时加载 PHP 文档,它会像我想要的那样重定向到登录页面。但是我正在尝试了解PHP以在用户登录时加载url内容。

这是我到目前为止所拥有的:

<?php
/* Protect directory files with login. */
 /* Load WordPress heading */
require_once('wp-load.php');
require_once ABSPATH . WPINC . '/formatting.php';
require_once ABSPATH . WPINC . '/capabilities.php';
require_once ABSPATH . WPINC . '/user.php';
require_once ABSPATH . WPINC . '/meta.php';
require_once ABSPATH . WPINC . '/post.php';
require_once ABSPATH . WPINC . '/pluggable.php';
wp_cookie_constants();

/* If user is logged-in else redirect to login */
is_user_logged_in() ||  auth_redirect();

我找到了这个答案来使用以下代码获取当前页面网址:

function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

但是,如果用户已登录,如何编写表达式来加载页面?


对于那些想知道我用来加载登录检查.php .htaccess规则的人,文件是这样的:

RewriteCond %{REQUEST_URI} ^.*protected/.*
RewriteRule ^protected/(.*)$ login-check.php?file=$1 [QSA,L]
您必须将

用户登录的信息保存在 $_SESSION 中,以便每次加载页面时都可以对其进行验证。

你需要的是这样的东西:

当用户登录时,您应该执行以下操作:

if($user == 'user' && $pass =='password'){ $_SESSION['auth']['user'] = $user; $_SESSION['auth']['logged'] = true;}

创建一个函数来检查用户是否已登录:

函数检查日志用户($user) { 如果 ($_SESSION['auth']['user'] != $user || $_SESSION['auth']['logged'] != true) header('location:redirectpage.php'); 回显"此处的页面内容"。}

在每个"受保护"PHP 文件的开头调用该函数:

checkLoggedUser($_SESSION['auth']['user']);

请记住,这是一个

示例,出于安全原因,不惜一切代价避免使用 logged==true。

对不起,我的英语不好。