2014-11-14 238 views
-2

因此,我試圖建立一個安全的主頁,檢查您是否通過獲取用戶在登錄頁面上輸入的文本並檢查它們是否正確來登錄(所以您不能做www.website.com/home.php繞過登錄)建立登錄安全的PHP腳本

<body onload="OpenPhp()"> 
<form name="GetLogin" action="GetIfLoggedIn.php"> 
</body> 

的腳本是:

<script> 
function OpenPhp(){ 
document.GetLogin.submit(); 
} 
</script> 

php腳本應該包括用戶名和密碼登錄腳本並重新檢查瓦爾他們

<?php include "Login.php"; 
    if($Username === "*****" and $Password === "******"){ 

// Return To Page 

}else{ 
    //Go Back To Login Page 
} 

?> 

但是,包含語句使主頁無法訪問。每次我到主頁時,它都會將我發回index.html頁面。

有沒有更好的方法來保護網頁?如果是這樣,請告訴我或解釋爲什麼這不起作用,

+0

100%有語法錯誤在包含PHP頁面。 – SaidbakR 2014-11-14 21:14:56

+2

爲安全起見,絕不要依賴javascript。用戶總是可以關閉它。 – 2014-11-14 21:15:05

+1

@sємsєм包含的PHP頁面工作正常如果沒有此腳本 – 2014-11-14 21:18:22

回答

3

爲了保護網頁,我鼓勵您使用會話。

您使用一個腳本(讓我們稱之爲login.php)允許用戶登錄。如果登錄正確,則將用戶名存儲爲會話變量。

在您的安全頁面中,您只需檢查用戶名是否在會話中設置。

在所有腳本中,您需要執行session_start();以使$ _SESSION超全局變量可用。

用於註銷,則可以使用session_destroy();

例子只是破壞了用戶會話:

的login.php:

session_start(); 

function isValidLogin($username_, $password_) 
{ 
    if($username_=='sam' && $password_=='secret') 
    return true; 
    return false; 
} 

if(isValidLogin($username, password)) 
{ 
    $_SESSION['username']=$username; 
} 

your_secured_pa​​ge.php:

session_start(); 

if(isset($_SESSION['username')) 
{ 
    // display page 
} 
else 
{ 
    // redirect to login.php 
} 

logout.ph p

session_destroy(); 

另一個教程我發現: http://www.formget.com/login-form-in-php/

+0

這似乎是我需要的。你能澄清什麼是有限登錄()是? – 2014-11-14 21:38:35

+0

isValidLogin($ username,$ password)是檢查登錄是否正確(例如通過查詢數據庫)的任何函數。 名稱「isValidLogin」只是一個佔位符 – 2014-11-14 21:44:20

+0

函數是否必須返回True才能通過? – 2014-11-14 21:54:57