Php 表单数据未过帐到其他页面

Php 表单数据未过帐到其他页面,php,html,forms,post,Php,Html,Forms,Post,我正在努力解决一个我以前从未遇到过的问题。我在一个页面上有一个表单,它通过POST将数据提交到另一个页面,但数据没有到达另一个页面。如果我使用action=“”,然后使用表单在页面顶部使用var\u dump(),则POST数据可以很好地打印出来,但是如果我使用action=”http://localhost/dir/“并将var_dump()放在该页顶部,然后打印出array empty。究竟是什么导致了这种行为?如何调试这个?我迷路了 表格: 要将数据发布到位于不同目录的页面,请使用相对路径

我正在努力解决一个我以前从未遇到过的问题。我在一个页面上有一个表单,它通过POST将数据提交到另一个页面,但数据没有到达另一个页面。如果我使用
action=“”
,然后使用表单在页面顶部使用
var\u dump()
,则POST数据可以很好地打印出来,但是如果我使用
action=”http://localhost/dir/“
并将
var_dump()
放在该页顶部,然后打印出
array empty
。究竟是什么导致了这种行为?如何调试这个?我迷路了

表格:


要将数据发布到位于不同目录的页面,请使用相对路径

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

  • 迪托普
  • DirSub1
  • DirSub2
现在,如果您的表单位于目录DirSub1中,并且需要将其发布到DirSub2中的x.php,那么您可以这样编写action属性:

action=“../DirSub2/x.php”

希望这能解决您的问题。

试试看

<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>

124

假设“dir”目录位于包含此表单的文件目录的外侧。

专家到达时。。路由操作的文件名是什么?索引文件?@Nate为什么要放这样的路径?为什么不直接输入文件名?@itsols-文件在不同的目录中。@请列出目录结构。@Nate try
echo$\u SERVER['REQUEST\u URI'],请确保您的操作正确。您好。我不想在url中包含文件名,因为这样用户将在url中看到“x.php”,而不仅仅是目录。你的评论激发了我对URL的兴趣,我发现在动作URL的末尾加上斜杠会导致发布数据,但没有斜杠,就没有数据。为什么会这样?我不知道为什么在你的例子中,但一般来说,我认为斜杠表示一个目录的结尾,显然首先要查找的是index或main。所以这可能就是为什么你的数据用斜杠发布的原因。也许这在Apache或web服务器上是可配置的。提交到同一文件,然后执行服务器端重定向以进行处理,然后将用户带到不同的登录页。这样,用户就不知道自己到哪里去了。但奇怪的是你为什么要把它藏起来,一点也不奇怪!看看这个页面的URL,比如:-)啊。。。这就是你的意思吗?:)如果您想让URL显示在本页中,只需更改编码方法即可。这种方法称为分段,而不是将文件名与查询字符串放在一起。如果您有一个OO模型或MVC框架,这是一件常见的事情。对于普通的编码,我发现这是额外的工作,但这就是我:)在启动CodeIgniter-.Hi asprin之后,我第一次真正使用了段。我不想在url中包含文件名,因为这样用户将在url中看到“x.php”,而不仅仅是目录。你的评论激发了我对URL的兴趣,我发现在动作URL的末尾加上斜杠会导致发布数据,但没有斜杠,就没有数据。为什么会这样?我不确定我知道确切的答案,但是如果您不想让用户在地址栏中看到文件名,您可以从“x.php”中删除.php扩展名,这样对用户来说它看起来就像一个目录“/x”。如果您在Linux服务器上,请使用.htaccess查看URL重写;如果在Windows服务器上,请使用web.config查看URL重写。
var_dump($_POST);die();
<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>