2015-04-23 92 views
0

我有一個「登錄」頁面。當用戶從數據庫中以正確的用戶名和密碼組合登錄時,他們將被引導到另一個頁面('input.html')。當組合錯誤時,他們會得到一個錯誤。可以在不登錄的情況下訪問頁面

如果沒有登錄,我只需更改網址(從「login.php」到「input.html」)的名稱並訪問該頁面即可。我只希望管理員和用戶訪問該頁面,而不僅僅訪問者沒有帳戶。

我的代碼爲我的'login.php'。

<?php 
session_start(); 

$host = "localhost"; 
$user = "332547"; 
$pass = "cvEsbduv"; 
$db = "332547db"; 

mysql_connect($host, $user, $pass); 
mysql_select_db($db); 




if (!empty($_POST)) { 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
      $sql = "SELECT * FROM inloggen2 WHERE username='".$username."'  AND password='".$password."' LIMIT 1"; 




      $res = mysql_query($sql); 
      if(mysql_num_rows($res) == 1) { 
       header('location: input.html'); 
       exit(); 
      }else { 

       echo "Niet goed ingelogd. Keer alstubliefd terug naar de vorige pagina."; 

       header('location: foumelding.php'); 
       exit(); 
      } 
} 
?> 




<html> 

<head> 
<title>Inloggen</title> 
</head> 

<body> 
<table border="1"> 
    <tr> 
    <td align="center">Inlogggen</td> 
    </tr> 
    <tr> 
    <td> 
     <table> 

     <form method="post" action="login.php"> 
    Gebruikersnaam: <input type="text" name="username" required/> <br /><br /> 
    Wachtwoord: <input type="password" name="password" required/> <br /><br /> 
<input type="submit" name="submit" value="Log in" /> 
</form> 
     </table> 
     </td> 
    </tr> 
</table> 
</body> 
</html>  
+2

不要使用mysql嘗試執行mysqli或PDO –

+2

設置一個會話變量。在你希望登錄的每個頁面上訪問用戶,以檢查會話變量是否存在。如果不使用標題重定向它們。 –

+0

您必須檢查用戶是否在** input.html **中進行了身份驗證,您將要更改爲** input.php **。此驗證可以通過會話或cookie完成。 –

回答

0

您需要在指數使用PHP代碼。 HTMLPHP

更具體:Sessions

我你已經在這個頁面上使用session_start();看到。也可以在index.php上使用它,然後繼續學習/使用會話。

OFFTOPIC:

  • 你是開放的mysql injection
  • 不使用mysql使用mysqli或PDO代替
  • 不要將密碼存儲爲純文本。 Hash them etc...(只是谷歌如何將密碼存儲在數據庫中)。
  • 你有很多錯字的的(我認爲),如:

    echo "Niet goed ingelogd. Keer alstubliefdtterug naar de vorige pagina.";

    和(可能):

    header('location: foumelding.php');它不應該是:header('location: foutmelding.php');

    和:

    <td align="center">Inlogggen</td>它不應該是:<td align="center">Inloggen</td>

+0

如果你不知道如何使用會話,不要提出另一個問題。它將作爲副本關閉。你應該在Stackoverflow/Google上找到關於會話的足夠的問題/答案 – Loko

相關問題