PHP - MailHandler.php标题位置无法在此处运行

时间:2015-05-30 07:22:50

标签: php

我正在使用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);
    }
?>

1 个答案:

答案 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开始被弃用,并且将来会被删除。

http://php.net/manual/en/mysqlinfo.api.choosing.php