簡體   English   中英

如果尚未登錄,則阻止用戶訪問

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

http://www.tizag.com/phpT/phpsessions.php/

http://www.w3schools.com/php/php_sessions.asp

好吧,這就是我要做的。 如果一個會話變量包含例如登錄頁面中的用戶名,那么檢查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.

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