登錄時,我有一個登錄頁面,當你登錄成功,你將被重定向到一個名爲gallery.html
頁面。但是,當你使用/gallery.html鍵入url時,它會將你帶到登錄時嘗試保護的頁面。使用條件語句防止打開頁面的最佳方式是通過鍵入確切的網址是什麼?像頁之前的檢查開始加載,加載頁面登錄時,只有在
回答
,如果你想不顯示gallery.html匿名用戶,在頁面頂部使用此代碼
if(!isset($_SESSION['your_user_login_id']))
{
//redirect to home page
}
這個代碼將防止匿名用戶查看這一頁。
簡單,使用上登錄session
變量,將用戶重定向到gallery.html
如果會話ID設置,否則重定向到登錄頁面,這樣的事情
if($_SESSION['userid']){
header('Location: gallery.html') ;
exit();
}elseif($_SESSION['userid'] == ''){
header('Location: login.html') ;
exit();
}
沒有阻止他人的方式輸入URL並請求頁面。你唯一能做的就是檢查他們是否登錄在網頁上。在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']
應設置。
謝謝.. :)
你必須設置Cookie或會話一旦用戶登錄。所以你會設置爲用戶會話或餅乾。而每次輸入特定的網址,你必須檢查會話用於顯示該網頁或者重定向到登錄頁面
您需要設置登錄狀態的會話,並在您將要保護的頁面檢查會議。
<?php
session_start();
if (!isset($_SESSION['login_status'])) {
// Add permission denied message or redirect back to the login page
}
?>
然而,這可以在PHP頁面來完成,而不是在所有以.html extenstion頁面(除非您已明確指定Web服務器配置與「將AddType X的httpd - PHP的。html的」指令。)
最簡單的方法是使用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
}
?>
我想創建一個函數來處理這種事情:使用三元操作
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'])) {
容易得多!
我喜歡這種檢查方式。特別是更好,以免打字 – Beanno1116
- 1. 登錄加載頁面
- 2. 密碼驗證不會登錄,只是重新加載登錄頁面
- 3. Magento管理登錄頁面未加載
- 4. 自動登錄的頁面加載
- 5. Google+和Facebook登錄頁面加載
- 6. ASPNETDB登錄頁面將不會加載
- 7. 加載頁面使用meteor.js登錄
- 8. Facebook登錄彈出頁面加載?
- 9. 只在頁面刷新時加載TinyMCE
- 10. 在CherryPy的每個頁面加載時檢查登錄狀態
- 11. $ routeChangeStart在登錄頁面加載時調用兩次
- 12. 如何使此頁面在登錄/註銷時重新加載?
- 13. 只有登錄的用戶才能訪問PHP登錄頁面?
- 14. Facebook登錄在彈出窗口內加載登陸頁面
- 15. 登錄時不顯示登錄頁面
- 16. 白屏在加載Azure登錄頁面之前已經有一段時間了
- 17. PHP只在頁面完全加載時解析HTML頁面
- 18. 錯誤試圖加載登錄/註冊頁面時
- 19. 成功登錄時加載新頁面「JSP java」
- 20. 在登錄頁面
- 21. 頁面加載時的只讀輸入
- 22. 在Internet Explorer 10上加載頁面時jQuery不加載;只在頁面刷新時加載(F5)
- 23. 頁面只加載頁面的一半
- 24. 只有document.ready代碼在Rails頁面重新加載時運行
- 25. 只有背景圖像必須在頁面加載時淡入
- 26. 將登錄頁面重定向到登錄頁面(如果沒有登錄)(tanyacms)
- 27. iOS:在UIWebView加載的Facebook登錄頁面的自動填充登錄/密碼
- 28. 的Django + APACHE:HTTPS只爲登錄頁面
- 29. 只創建登錄頁面一次
- 30. 如何加載requireJs文件只有一次,當用戶登錄,並防止它每次頁面重新加載
像這樣的東西可以方便地放入一個包含文件,該文件可以很容易地包含在任何需要使用戶可見的頁面上。 –
謝謝你的好答案。那是我在想什麼,但不知道是否有另一種方式。欣賞意見 – Beanno1116