[英]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;
}
但是,如果用戶已登錄,如何編寫表達式以加載頁面?
對於那些想知道.htaccess
規則的人,我用來加載login-check.php文件的是:
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; }
創建一個函數來檢查用戶是否登錄:
函數checkLoggedUser($ user){if($ _SESSION ['auth'] ['user']!= $ user || $ _SESSION ['auth'] ['logged']!= true)標頭('location:redirectpage。 PHP'); 回顯“此處的頁面內容”。 }
在每個“受保護的” PHP文件的開始處,調用以下函數:
checkLoggedUser($ _ SESSION [ 'AUTH'] [ '用戶']);
請記住,這是一個示例,出於安全考慮,請避免不惜一切代價使用logging == true。
對不起,我的英語不好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.