2012-04-05 132 views
0

我在網站上有一些頁面,我想用php會話來保護,所以只有具有有效密碼的管理員才能訪問此頁面,並且密碼和登錄名匹配。 這裏是爲index.html的代碼(認證的形式)使用php會話保護頁面

<form id="form2" name="form2" method="post" action="authagent.php"> 
<p class="kkm">Authentification </p> 
<table align="center" width="300" border="0"> 
    <tr> 
    <td width="146">Login</td> 
    <td width="144"><label for="textfield12"></label> 
    <input type="text" name="login" id="text" /></td> 
    </tr> 
    <tr> 
    <td width="146">Mot de passe</td> 
    <td><label for="textfield13"></label> 
    <input type="password" name="mdp" id="mdp" /></td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td><td><input type="submit" name="button" id="button" value="Se connecter" /></td> 

    </tr> 

</table> 
<p align="center"><a href="ajoutagent.html">Créer un nouveau compte</a></p> 
<p align="center"><a href = "javascript:history.back()"> 

,這是authagent.php

 <?php 
session_start() ; 
$_SESSION['connect']=0; 
mysql_connect("localhost","root","") or die(mysql_error()); 
mysql_select_db("agence"); 
$login = $_POST['login']; 
$mdp = $_POST['mdp'] ; 

$query = "SELECT * FROM agent where login_agent = '$login' and mdp_agent = '$mdp'"; 
$result = mysql_query($query); 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 


if ($login == $line['login_agent'] && ($mdp == $line['mdp_agent'])) // Si le nom d'utilisateur et le mot de passe sont correct 
{ 
$_SESSION['connect']=1; 
      header('Location: agent.php'); 

} 
else 
{ 
echo 'incorrect' ;// Si le nom d'utilisateur ou le mot de passe est incorrect 
} 
} 
?> 

的代碼下面是安全網頁代理的代碼。 php

<?php 
session_start(); 
if (isset($_SESSION['connect']))//On vérifie que le variable existe. 
{ 
     $connect=$_SESSION['connect'];//On récupère la valeur de la variable de session. 
} 
else 
{ 
     $connect=0;//Si $_SESSION['connect'] n'existe pas, on donne la valeur "0". 
} 

if ($connect == "1") // Si le visiteur s'est identifié. 
{ 
       header('Location: agent.php'); 

// On affiche la page cachée. 
} 
else 
{ 
        header('Location: seconnecteragent.php'); 


    } ?> 
+2

和你的問題是什麼? – dqhendricks 2012-04-05 20:36:12

+0

當我把一個有效的登錄名和密碼,它的工作原理,所以MySQL部分工作,我的問題是與PHP會話,我不希望有人訪問一個安全的網頁,直接把它的網址 – ziz194 2012-04-05 20:36:52

+3

'x'或1 = 1; - ' – 2012-04-05 20:37:43

回答

3

通常這是通過測試是否存在一個ses sion變量如登錄,如果不是= 1,則會自動重定向到登錄頁面。您可以將這些簡單的代碼放在每個頁面的頂部,並且如果登錄變量存在,則不會發生任何事情,並且頁面通常處於正常狀態。一個基本的例子:

<?php 
if(!isset($_SESSION['loggedin']) || $_SESSION['loggedin']!=1){ 
    header('Location: login.php'); 
    exit(); 
} 
?> 
+0

也許還會在'header(「Location:login.php」)之後加上'exit();'' – Dion 2012-04-05 20:50:40

+0

,謝謝你的編輯。 – rncrtr 2012-04-05 20:53:09

+0

是的我知道,但我有一個問題,當我輸入一個有效的登錄密碼,它直接指向我的身份驗證頁 – ziz194 2012-04-05 20:57:07

0

正如我所看到的,你的問題是你有一個遞歸那裏。在agent.php頁面中,如果用戶通過了身份驗證,那麼您將他發回到同一個頁面agent.php。