我正在使用TMForm.js执行bat/MailHandler.php
文件来验证登录表单的用户名和密码。我正在使用Firefox Firebug来检查bat/MailHandler.php
的请求和响应,这是正常的,它检查数据库验证用户名和密码,但无法使用location
标头将控件转回登录页面后如下面的代码所示。标头位置无法在我的bat/MailHandler.php
文件中使用。我在这里粘贴代码,请指导我解决方案。
<?php
include("../connect.php");
$userName=$_POST['name'];
$password=$_POST['state'];
//$value=$_POST['check'];
$sql="SELECT * from login where email='".$userName."'";
$result=mysql_query($sql) or die(mysql_error());
while ($row=mysql_fetch_array($result)){
$memID=$row['id'];
$userNamedb=$row['email'];
$passworddb=$row['password'];
}
if($userName==$userNamedb && $password==$passworddb){
session_start();
$_SESSION['id']= $memID;
$_SESSION['uname']= $userName;
$_SESSION['upassword']= $password;
header("location:../afterlogin.php");
}
else{
$flag=1;
header("location:../memberlogin.php?valid=".$flag);
}
?>
答案 0 :(得分:0)
HTTP / 1.1需要绝对URI作为Location的参数:包括scheme,hostname和absolute path
http://php.net/manual/en/function.header.php
上面的链接还有一个如何修改代码的示例。
附注:
1
$userName=$_POST['name'];
// ...
$sql="SELECT * from login where email='".$userName."'";
不要这样做。此代码易受SQL注入攻击。另见:
2
不要使用mysql_*
个功能。请改用mysqli_*
:
建议不要将旧的mysql扩展用于新开发,因为它已从PHP 5.5.0开始被弃用,并且将来会被删除。