使用HTML表单操作,php脚本在另一个目录中(相对路径)

时间:2013-06-06 16:37:21

标签: php html apache

这是我的指向树的样子

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

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

4 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:1)

您必须使用.. /转到父目录

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

答案 3 :(得分:0)

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

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

上面的代码不起作用,并显示错误404,Object Not Found。但是,

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

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