标头位置无法在实时服务器上运行

时间:2014-11-05 02:19:36

标签: javascript php html header

我有一个注册和付款页面。程序流程就像注册>确认>付款。在注册页面验证和计算后需要进入确认页面 我的代码是

<?php
ob_start();
session_start();

include("header.php");
include("ini.php");
date_default_timezone_set('Asia/Brunei');
header('Cache-Control: max-age=900');

if (isset($_POST['submit'])) {
    $error = 0;
//validations

if ($error <= 0) { 
//do some calculation
header('location:confirm.php');
}
}
<?php
ob_flush();
?>

控制输入if($ error&lt; = 0)子句,但保留在注册页面上。

我尝试了很多方法,比如

 header('location:confirm.php', true, 302);

而不是

header('location:confirm.php');

已删除

ob_start() and ob_flush()



add exit() after  header()

然后转到空白页。

也尝试使用

echo '<script type="text/javascript">';
        echo 'window.location.href="confirm.php";';
        echo '</script>';

然后控件进入确认页面,但url似乎是registration.php

但是标题('location:confirm.php');在我的本地服务器上工作正常。任何人请帮我解决这个问题..是否有任何替代方式的header()。期待你们......谢谢

4 个答案:

答案 0 :(得分:1)

请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include或require,函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。

还尝试更改标题(&#39;位置:confirm.php&#39;); (注意L是资本,因为它在你的本地服务器上的工作可能是严格的php类型的问题尝试一次)

答案 1 :(得分:0)

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'confirm.php';
header("Location: http://$host$uri/$extra");

答案 2 :(得分:0)

最后使用ob_end_flush()。这应该像魅力一样。

答案 3 :(得分:0)

多年来我遇到了同样的问题,但今天我发现你不必在标题词之前有任何html或空格。试试吧