我在第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);
?>
答案 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"]);