-1

已解决,我错过了添加文件夹路径。最近重组了我的服务器,从而给我带来了问题。

当我尝试重定向到父目录中的 HTML 页面时,PHP 中的 header() 出现问题。我试图在论坛中找到一些答案,但没有成功。

我试过同时使用 ../above.html 和完整地址http://www.test.com/above.html都没有成功。还有一点要提的是,我发送了带有隐藏输入的 redirrURL,但我已经检查过我得到了正确的地址。

这就是我的代码现在的样子,但我不断收到 404:

$redirrURL = $_POST['pageType'];
header( "Location: $redirrURL" );

这是我调用使用 header() 的 PHP 文件的地方;

<form method="post" action="rateBarFunction.php">
            <td>
                <input type="hidden" name="pageType" value="<? echo $redirrURL ?>" />
                <select name="grade">
                    <option value="" style="display:none;"></option>
                    <option value="5">5</option>
                    <option value="4">4</option>
                    <option value="3">3</option>
                    <option value="2">2</option>
                    <option value="1">1</option>
                </select>
                <input type="submit" name="submit"/>
            </td>
        </form>
<?php 
    echo "</tr>";
}
echo "</table>";
?>

是否因为我在使用 header() 后回显 HTML 代码而不起作用?

4

2 回答 2

0
            <input type="hidden" name="pageType" value="<? echo $redirrURL ?>" />
                                 ^^^^^^^^^^^^^^^

所以你需要使用

$_POST['pageType'];
于 2013-04-04T17:03:04.850 回答
0

不,由于 header()/echoing,您没有收到此错误。那应该没问题。

但是你想要做什么?在表单中,您有操作“ratebarFunction.php”。这就是将要执行的操作,除非您在 onSubmit - 事件期间通过 JavaScript 替换该操作。如果您在此表单上收到 404,那么是否没有有效的 URL 'ratebarFunction.php'。

您可以轻松测试 404。只需转到您页面的源代码并通过单击打开字段值中的 URL。当它出现时,它会起作用。如果不是,则语法不正确。最简单的解决方法是在任何浏览器中创建正确的 URL 并将其放入字段值中。

'../x.php' 是一种文件方法。它与 URL 的工作方式不同,在 PHP 中,您可以使用 $_SERVER['DOCUMENT_ROOT'] 更轻松地解决它。我建议您始终使用绝对 URL,因为当您决定将 php 文件放在另一个目录中时,它们不会失败。超全局 $_SERVER 等将帮助您。

于 2013-04-04T17:28:58.310 回答