Использование действия формы HTML с php-скриптом, находящимся в другом каталоге (относительные пути)

Вот как выглядит мое дерево директив

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

Итак, что случилось с тем, как я использую относительные пути в объявлении формы и как я могу это исправить?

Solutions Collecting From Web of "Использование действия формы HTML с php-скриптом, находящимся в другом каталоге (относительные пути)"

В вашем относительном пути ./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 но вам нужно будет добавить . для атрибута действия формы