将 HTML 表单操作与位于另一个目录中的 php 脚本一起使用(相对路径)

Posted

技术标签:

【中文标题】将 HTML 表单操作与位于另一个目录中的 php 脚本一起使用(相对路径)【英文标题】:Using HTML form action with a php script being in another directory (relative paths) 【发布时间】:2013-06-02 18:46:30 【问题描述】:

这是我的目录树的样子

/application
    /lib
    /util
        /login
    /views
        /base_view

我的登录页面是

localhost:737/astuto-lena/branches/application/views/base_view/index.php

我希望我的表单的动作是这样的

localhost:737/astuto-lena/branches/application/util/login/main.php

这是我的表单声明

<form class="form_login" action="./util/login/main.php" method="POST">
...
</form>

但是当我点击提交按钮时,它需要我去

localhost:737/astuto-lena/branches/application/views/base_view/util/login/main.php

这是错误的路径并生成错误 404。

那么我在表单声明中使用相对路径的方式有什么问题,我该如何解决?

【问题讨论】:

【参考方案1】:

在您的相对路径./util/login/main.php 中,您使用的是指向当前文件夹的./,因此它假定文件夹结构/util/login 位于/base_view 内。您应该尝试使用引用父文件夹的../

<form class="form_login" action="../../util/login/main.php" method="POST">
...
</form>

【讨论】:

谢谢!澄清一下:有什么理由我应该使用../ 两次?或者我可以只使用一个 ../ 的情况? @Flayshon 实际上是的,这是有区别的,基本上在你的情况下,你从localhost:737/astuto-lena/branches/application/views/base_view/开始,如果你使用../,你会在localhost:737/astuto-lena/branches/application/views/结束,并使用它两次带你到localhost:737/astuto-lena/branches/application/,这也是包含/util/login/的文件夹【参考方案2】:

您需要将操作设置为更好的相对路径或使用绝对路径。例子:

../../util/login/main.php

/astuto-lena/branches/application/util/login/main.php

./ 仅表示this directory(又名current working directory

【讨论】:

【参考方案3】:

你必须使用 ../ 去父目录

<form class="form_login" action="../../util/login/main.php" method="POST">
...
</form>

【讨论】:

【参考方案4】:

我遇到了类似的问题,我得到的错误是找不到对象 /application /includes connect.php insert.php index.php

<form action="/includes/insert.php" method="post">
    //code
</form>

上面的代码不起作用并显示错误 404,未找到对象。但是,

<form action="./includes/insert.php" method="post">
    //code
</form>

唯一的区别是在操作路径中添加.。 奇怪的是/include/filename 适用于requireinclude 但您需要为表单操作属性添加.

【讨论】:

以上是关于将 HTML 表单操作与位于另一个目录中的 php 脚本一起使用(相对路径)的主要内容,如果未能解决你的问题,请参考以下文章

来自不同 html 页面的 PHP 连接

执行位于另一个文件夹中的 PHP 文件

如何将 php 变量传递给同一页面中的另一个表单?

如何使用 HTML 表单将 JavaScript 值传递到另一个 PHP 页面?

从同一文件中的 HTML 表单调用 PHP 函数

将 HTML5 地理定位与 PHP 和 MySql 结合使用