Я пытаюсь получить форму HTML / PHP для правильной отправки.Некоторые детали:
базовый URL = http://localhost/directory
page = page/add
полный адрес = http://localhost/directory/page/add
Использование htaccess для перезаписи URL, такhttp://localhost/directory/page/add
на самом деле http://localhost/directory/index.php?q=page/add
Мое действие HTML POST - «page / add», так что передний контроллер знает, какую функцию запустить для очистки и отправки данных (он действует как «идентификатор формы»).
Страница прекрасно загружается на http://localhost/directory/page/add, но когда я нажимаю на кнопку отправки, URL перенаправляется на страницу / страницу / добавление.И каждый раз, когда я нажимаю «отправить», я добавляю еще одну «страницу» в URL.Таким образом, за 5 кликов появится «страница / страница / страница / страница / страница / страница / добавление»
Я не могу понять, почему я получаю эту «дополнительную» «страницу».
Фактическая ошибка PHP (page / page / add не существует в $ route, поскольку это недопустимый маршрут):
Примечание: неопределенный индекс: page / page / add в C: \ xampp \htdocs \ script \ includes \ common.inc в строке 92
Вот функция в строке 92:
function route_path($path = NULL) {
$routes = get_routes(); //Returns array: approved "urls => function callbacks"
if($path === NULL) {
$path = get_path(); //Returns $_GET['q'] with trim and strip_tags
}
$function = $routes[$path]; <<<<<----This is LINE 92
if(isset($function)) {
$form_name = str_replace('/', '_', $path); // page/add = function page_add()
}
if(function_exists($function)) {
call_user_func($function, $form_name);
}
else {
//TODO: Redirect to Login screen.
}
}
Основной HTML-код:
<form action="page/add" method="post" />
//Form elements
<input type="submit" value="Submit" />
</form>
Спасибоза помощь.
ОБНОВЛЕНИЕ : Я добавил тег <base>
в мои HTML-шаблоны.Это позволяет мне сохранять действие как page / add (так как это также маршрут в моем простом маршрутизаторе / диспетчере).