2012-07-19 69 views
1

我目前正在開發一個簡單的網絡系統,所以用戶首先會被定向到一個登錄頁面,然後是一個處理頁面。如果提供的帳戶數據是正確的,它將被引導到主頁面,因此它可以執行一些操作,最後它可以註銷。防止用戶訪問,如果還沒有登錄

所以我想問的是:我怎樣才能防止用戶在他們登錄之前訪問處理,主要或註銷頁面,我的意思是,如果我不限制它,登錄操作通過一些手段是無用的。我正在使用wamp開發Web系統。

我已經考慮過使用會話變量,但是,我不知道如何檢查變量的值。如果我在登錄頁面開始會話,那麼如果我跳過登錄頁面,但是直接進入主頁面,那麼我的主頁面中是否有會話變量?

回答

4

1)在php頁面的頂部添加session_start();以初始化會話。

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/或任何其他鏈接通過谷歌 - 「如何創建登錄/註銷功能與會議」。

關於你的問題,在每個頁面你將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

+1

爲什麼不只在每個非登錄頁面添加if(!$ _ SESSION ['logged_in'])){//重定向}'' – Luceos 2012-07-19 07:58:17

+0

是的,它也應該工作;)!只是給他舉了個例子。感謝您編輯:) – y2ok 2012-07-19 07:59:15

+0

@Luceos,人們可以禁用瀏覽器中的重定向,因此無論如何看到頁面 – Roman 2012-07-19 07:59:54

0

很好,這是我會做什麼。如果會話變量包含登錄頁面的用戶名,如果它沒有顯示錯誤404頁面,或者將用戶重定向到任何錯誤頁面,請使用if語句進行檢查......您可能想要無論如何創建自己(以便它重定向到登錄頁面)。

<? 
session_start(); 
if(!$_SESSION['username']){ 
header("Location: HTTP/1.1 404 File Not Found", 404); 
      exit;} 
?> 

你也可以創建一個新的文件,並把這個代碼中有讓你叫上everypage,將要求用戶訪問之前,登錄....

0

但嘗試訪問非登錄頁面,那麼您將被重定向到登錄頁面,然後嘗試訪問同一個非登錄頁面,這是第二次,即使您沒有登錄,您也可以訪問。

相關問題