2013-04-04 138 views
-1

已解决,我错过了添加文件夹路径。最近重组了我的服务器,从而给我造成了一个问题。PHP头问题(),重定向到父目录中的HTML页面

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

我已经尝试使用../above.html和完整的地址http://www.test.com/above.html没有成功。另外值得一提的是,我发送一个隐藏的输入redirrURL,但我已检查,我得到正确的地址。

这是我的代码看起来是现在,但我不断收到404:

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

这就是我所说的,使用的标题()的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代码?

+0

您是否遇到PHP错误?那么错误是什么? – Jocelyn 2013-04-04 17:02:25

+0

用户是否指向了正确的URL? – PeeHaa 2013-04-04 17:11:36

+0

我没有得到任何PHP错误,只有我得到的是404 - 没有找到..我在我的HTML文档上使用了相同的文件名,我试图重定向到。 – Burro 2013-04-04 17:12:19

回答

0

不,你没有得到这个错误,因为头()/呼应。这应该没问题。

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

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

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

+0

感谢您的答案,我自己的重组与服务器上的文件夹导致了这个问题......有没有办法消除这个问题? – Burro 2013-04-04 17:36:14

+0

我认为你(和我)需要更多的声望点才有权删除问题。此外,这不是一个问题。我们都犯这样的错误。很多问题是人为错误的原因。有了这个问题和答案(如果你接受它),其他人可以得到帮助。 – 2013-04-04 17:40:50

+1

啊是的,好的老人因素。我想这个问题可以留下来,因为它可能会帮助别人。 – Burro 2013-04-04 17:47:44

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

所以你需要使用

$_POST['pageType']; 
+0

对不起,一定写错了。它在两个地方都是pageType,所以不是这样... – Burro 2013-04-04 17:10:13

+0

然后,$ redirrURL是否在PHP代码中设置?在提交表单之前,url是否实际显示在html中? – 2013-04-04 17:11:58

+0

它在我提交之前显示,并且URL匹配文件名。 HTML文件位于父目录中,我使用../fileToReach.html。我现在很困惑,事情是它在服务器上创建了一个包含文件夹的结构之前就工作了。现在它的结构为“公用文件夹”(root) - > PHP文件夹,而我试图访问的HTML文件位于“公用文件夹”中。 – Burro 2013-04-04 17:19:30