我正在尝试在用户从API获得特定响应时放置标头。它大部分时间都有效,但有时标题不起作用,我收到以下错误:
*char* str = "0x058f";
result = strtol(str,NULL,16);
printf("result = %x\n",result);*
在这种情况下,第126行是我在页面上唯一的标题
Warning: Cannot modify header information - headers already sent by (output started at /home/ubuntu/workspace/Payment.php:90) in /home/ubuntu/workspace/Payment.php on line 126 Call Stack: 0.0001 238200 1. {main}() /home/ubuntu/workspace/Payment.php:0 2.6037 271848 2. header() /home/ubuntu/workspace/Payment.php:126
我不确定为什么会这样(特别是因为它并不总是发生)。我的代码中某处有错误吗?
header("Location: $ConfirmationPage", false);
答案 0 :(得分:1)
答案 1 :(得分:0)
如果页面上有任何输出,则PHP header()
将无效。
<强>解决方案:强>
1)在页面开头添加ob_start()
。
ob_start()
会将输出保存到缓冲区并进行重定向。
2)使用javascript重定向。即使您在页面上有任何输出,也会发生Javascript重定向。
<?php
echo "<script>window.location.href='" . $ConfirmationPage . "';</script>";
?>