[英]Prevent user to access if has not logged in
我目前正在開發一個簡單的Web系統,因此用戶首先將被定向到登錄頁面,然后是一個處理頁面。 如果提供的帳戶數據正確,它將被定向到主頁面,因此它可以執行一些操作,最后它可以注銷。
所以我想問的是:如何防止用戶在登錄之前訪問處理,主要或注銷頁面,我的意思是,如果我不限制它,登錄操作有些無用。 我正在使用wamp來開發Web系統。
我考慮過使用會話變量,但是,我不知道如何檢查變量的值。 如果我在登錄頁面上啟動會話,那么如果我跳過登錄頁面但是指示轉到主頁面,那么主頁面中是否存在這些會話變量?
1)添加session_start();
在php頁面的頂部初始化會話。
2)添加if語句
if($_SESSION['logged_in'] == 1) { ..show page.. } else { show login page }
3)創建一個驗證數據的登錄表單,如果數據正確則添加$_SESSION['logged_in'] = 1;
並使用注銷按鈕重定向到個人資料頁面。
就這樣 :)!
我建議您查看一些教程,因為它會為您提供更多信息 - http://www.intechgrity.com/create-login-admin-logout-page-in-php-w/或任何其他通過谷歌鏈接 - “如何使用SESSIONS創建登錄/注銷功能”。
關於你的問題,你會在每個頁面中放入session_start();
在文件的開頭,它們將包含您為用戶指定的所有會話。
編輯:
添加了一些有用的鏈接
http://www.php.net/manual/en/book.session.php
好吧,這就是我要做的。 如果一個會話變量包含例如登錄頁面中的用戶名,那么檢查if語句,如果它沒有顯示錯誤404頁面,或者將用戶重定向到任何錯誤頁面...你可能想要無論如何都要自己創建(以便將它們重定向回登錄頁面)。
<?
session_start();
if(!$_SESSION['username']){
header("Location: HTTP/1.1 404 File Not Found", 404);
exit;}
?>
您還可以創建一個新文件並將此代碼放在那里,以便您在訪問它之前需要用戶登錄的每個頁面上調用它。
但是第一次嘗試訪問非登錄頁面然后您將被重定向到登錄頁面,然后嘗試訪問相同的非登錄頁面,即使您沒有登錄,您也可以第二次訪問該頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.