上传到服务器后,PHP标头位置无法正常工作

时间:2014-12-12 06:56:49

标签: php session redirect header

当我在本地主机上运行它时,此代码工作正常,但在我将其上传到服务器后,标头将无法正常工作。我使用了java脚本窗口定位方法,但重定向页面中的会话为空。当我运行它时它只显示消息。

function userHandle() {
    global $conn;
    global $email;
    $sql = "INSERT INTO votes (Email) VALUES ('$email')";

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
        $_SESSION["email"] = $email;
        ob_start();
        header("Location: https://sitename.com/login.php");
        exit();
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
        $_SESSION["email"] = $email;
        ob_start();
        header("Location: https://sitename.com/login.php");
        exit();
    }
}

$conn->close();

4 个答案:

答案 0 :(得分:1)

标题函数不允许在它之前输出任何内容。因此,要么删除回声,要么使用ob_clean(); ob_start()

答案 1 :(得分:1)

你必须删除

echo "New record created successfully";

echo "Error: " . $sql . "<br>" . $conn->error;

答案 2 :(得分:0)

问题是

echo "New record created successfully";

对输出流进行回显后,不能使用标题() 只需删除它们,然后查看header:php.net/header

的手册页

答案 3 :(得分:0)

也许你可以用JavaScript做直接页面

<script>window.location = 'URL'</script>

标题( “”);如果你把文件放在最上面,那就好了。

我不确定为什么localhost运行得很好,并且在托管上传后无法正常工作