2012-04-05 123 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。