登录表单重定向

时间:2015-05-09 15:21:39

标签: php

我在第1页上有一个提交类型为login的登录按钮。它会重定向到第2页。

  • 如果输入的用户名字段正确(存在于数据库中),我想转到包含欢迎用户和其他一些按钮的页面。

  • 否则转到拒绝访问的页面并再次链接到第1页

第1页:

<!DOCTYPE html>
 <html>
<head>

</head>
<body  style="background-color:lightgrey">

    <form name="input" action="page2.php" method="post">
Username:<br/> <input type="text" name="username" />  <br />  

Password: <br/> <input type="text" name="password" />  <br />  

    <input type="submit" value="Log in" />
    </form>

      </form>
   </body>
</html>

第2页:

<?php

    $con = mysql_connect("localhost","root","111");
    if (!$con)
     {die('Could not connect: ' . mysql_error());
     }

     mysql_select_db("trial", $con);


$usertext=$_POST["username"];

$passwordtext=$_POST["password"];

$myusers = mysql_query("SELECT Username FROM users", $con);


$found=0;
while($row = mysql_fetch_array($myusers))
{
if($usertext== $row['Username'])
{

    $found=1;
}

 }

 if($found==1)
 {

//GO TO ANOTHER PAGE????


}
else 
{ //GO TO ANOTHER PAGE????
 echo "FAIL"; 

   }

    mysql_close($con);



?>

2 个答案:

答案 0 :(得分:1)

您可以使用

header("Location: http://www.example.com/");

答案 1 :(得分:0)

不要只使用重定向,因为任何人都可以在浏览器地址栏输入第二个页面网址。
如果您必须确保您在第二页上显示的数据是安全的,则只显示登录用户使用会话 - 在脚本开始时添加session_start();。 如果用户正确登录:$_SESSION['logged']=true; 否则:$_SESSION['logged']=false;

在第二页再次使用session_start();。 然后通过检查$_SESSION['logged']变量来检查用户是否已登录。

if($_SESSION['logged']==true){
   echo 'private data'; //or include some file for example require 'data.html';
}else{
   session_destroy();
   unset($_SESSION);
   echo 'go, and login again!';
}

此外,如果用户已经登录,您应该将用户从登录页面重定向到私人数据:

if($_SESSION['logged']==true){
   header('Location: second_form.php');
}

您的代码段的另一个问题是您从不检查有效密码:&gt; 好的,另一个安全违规行为

usertext=$_POST["username"];

$passwordtext=$_POST["password"];

请清理您的输入。 任何人都可能损坏您的数据库没有它(SQL Injection) - 这样做:

usertext=mysql_real_escape_string($_POST["username"]);

$passwordtext=mysql_real_escape_string($_POST["password"]);