簡體   English   中英

PHP if(已登錄)然后(Load Page)是否(重定向到登錄)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM