Вот как выглядит мое дерево директив
/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.
Итак, что случилось с тем, как я использую относительные пути в объявлении формы и как я могу это исправить?
В вашем относительном пути ./util/login/main.php
вы используете ./
который ссылается на текущую папку, поэтому предполагает, что структура папок /util/login
находится внутри /base_view
. Вы должны попробовать использовать ../
который относится к родительской папке:
<form class="form_login" action="../../util/login/main.php" method="POST"> ... </form>
Вам нужно установить действие на лучший относительный путь или использовать абсолютный путь. Примеры:
../../util/login/main.php
или
/astuto-lena/branches/application/util/login/main.php
./
просто означает, что this directory
(или current working directory
)
Вы должны использовать ../, чтобы перейти в родительский каталог
<form class="form_login" action="../../util/login/main.php" method="POST"> ... </form>
Я столкнулся с аналогичной проблемой, и ошибка, которую я получил, была не найдена /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
работают нормально или require
но вам нужно будет добавить .
для атрибута действия формы