2012-07-25 25 views
0

我正在努力解决以前从未遇到的问题。我在页面上有一个表单,通过POST将其数据提交到另一个页面,但数据未到达其他页面。如果我在页面顶部用表格将action=""然后var_dump()打印出来,则POST数据将打印出正常,但如果我制作action="http://localhost/dir/"并将var_dump()置于该页面的顶部,则会打印出array empty。究竟是什么导致了这种行为?我该如何调试?我迷路了。表单数据无法发布到其他页面

形式:在index.php文件顶部

<form id="form" method="post" action="http://localhost/dir"> 
    <input type="hidden" name="id" value="19"> 
    <select style="width: 60px;" name="number"> 
     <option value="1">1</option><option value="2">2</option><option value="4">4</option> 
    </select> 

    <input type="submit" class="input_submit" value="Submit" id="submitButton"> 
</form> 

代码:

var_dump($_POST);die(); 
+0

当专家到达时,动作路由的文件名是什么?索引文件? – manix 2012-07-25 02:38:30

+0

@Nate为什么你想要这样的路径?为什么不把文件名称? – itsols 2012-07-25 02:43:32

+0

@manix - 是的,'index.php' – Nate 2012-07-25 02:44:21

回答

1

要发布数据到一个网页,是在不同的目录中,使用相对路径。

例如,考虑这一点。 DirSub1和DirSub2处于同一级别,它们都在DirTop中。

  • DirTop
  • DirSub1
  • DirSub2

现在,如果你的表格是在目录DirSub1,你需要将它张贴在DirSub2到x.php,你写的action属性喜欢此:

行动= “../ DirSub2/x.php”

希望这可以解决您的问题。

+0

喜欢itsols。我不想在URL中包含文件名,因为那么用户会在url中看到'x.php',而不仅仅是目录。您的评论激发了我开始讨论URL的问题,并且我发现在操作URL末尾附加一个斜杠会导致数据被张贴,但没有斜杠,也没有数据。为什么会这样? – Nate 2012-07-25 20:39:26

+0

我不知道为什么在你的情况下,但通常情况下,我认为斜线表示目录的结尾,然后寻找明显的第一件事是索引或主要。因此,这可能是您的数据以斜线发布的原因。也许这可以在Apache或Web服务器上配置。 – itsols 2012-07-26 08:23:42

+0

我想要做的就是不显示与实际文件的交互,你有一个简单的选择。提交到相同的文件,然后执行服务器端重定向来执行处理,然后将用户带到不同的着陆页。这样,用户将不知道他经历了哪些地方。但这很奇怪你为什么要隐藏它。 – itsols 2012-07-26 08:25:21

1

尝试

<form id="form" method="post" action="../dir/index.php"> 
    <input type="hidden" name="id" value="19"> 
    <select style="width: 60px;" name="number"> 
     <option value="1">1</option><option value="2">2</option><option value="4">4</option> 
    </select> 

    <input type="submit" class="input_submit" value="Submit" id="submitButton"> 
</form> 

假设“DIR”目录是出侧包含该形式的文件的目录。

+0

嗨asprin。我不想在URL中包含文件名,因为那么用户会在url中看到'x.php',而不仅仅是目录。您的评论激发了我开始讨论URL的问题,并且我发现在操作URL末尾附加一个斜杠会导致数据被张贴,但没有斜杠,也没有数据。为什么会这样? – Nate 2012-07-25 20:39:49

+0

我不确定我是否知道确切的答案,但如果您不希望用户在地址栏中看到文件名,则可以从'x.php'中删除.php扩展名,以便用户看起来像就像一个目录'/ x'。如果您在Linux服务器上,或者在Windows服务器上使用web.config重写URL,请使用.htaccess查看URL重写。 – asprin 2012-07-25 23:02:10

相关问题