标头位置重定向使PHP命令执行两次

时间:2013-08-26 20:30:08

标签: php

我有一个处理来自付款服务提供商的付款的脚本,然后使用PHP重定向来显示“谢谢”页面。

来源:( Websend.php包括来源:http://pastebin.com/raw.php?i=TmmysJiD

include_once 'Websend.php';
if ($file != "GREAT") {
    header("Location: ../failed.html");
    exit();
} else {
    $ws = new Websend("192.168.56.105");
    $ws->connect("passwd");
    $ws->doCommandAsConsole("give " . $token . " 2000");
    $ws->disconnect();
    header('Location: ../success.html');
    exit();
}

success.html的来源

<head>
    <meta http-equiv="refresh" content="0; url=http://site.com/index.html"> 
</head>
<script type="text/javascript">
    alert("Some alert");
</script>

但是header("Location: ../success.html");导致命令运行两次(并且给用户两次,这不应该发生。 当我删除header("Location: ../success.html");代码时,代码可以正常工作。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

这是令人耳目一新的success.html

<meta http-equiv="refresh" content="0; url=http://site.com/index.html">

<强> EDITED

您是否尝试删除<meta http-equiv="refresh" content="0; url=http://site.com/index.html">?同时尝试将header('Location: ../success.html');更改为header('Location: ../index.html');