我有一个注册和付款页面。程序流程就像注册>确认>付款。在注册页面验证和计算后需要进入确认页面 我的代码是
<?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()。期待你们......谢谢
答案 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)