Если я использую GET с Front Controller, означает ли это, что я должен использовать GET для всех форм?

У меня есть класс фронт-контроллера. В этом классе у меня есть функция для анализа URL:

public function parseURL()
{
if(isset($_GET['url']))
{
return $url = explode('/',filter_var(rtrim($_GET['url'],'/'),FILTER_SANITIZE_URL));
}

}

Это основано на RewriteRule (что я все равно импортировал в IIS):

Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

Означает ли это, что все мои формы теперь должны использовать GET?

<form action="/controller/action" method="GET">

Разве все не проходит через фронт-контроллер, даже мой CRUD?

/controller/action/id, например.

Если это имеет значение, я использую IIS. У меня нет скрытых входов для ввода, удаления и т. Д. В настоящее время я не использую AJAX.

0

Решение

Нет, ваши формы все еще могут использовать POST. Я бы посоветовал вам не использовать GET при отправке значений формы, поскольку вы будете загрязнять свой URL данными формы.

Вы также можете легко получить доступ к своим атрибутам GET.

<form action="/controller/action/id" method="POST">
<input type="text" name="someText" />
<input type="submit />
</form>

В PHP вы делаете свой бизнес как обычно:

echo $_POST['someText']; //echos the input from the form control
echo $_GET['url']; //echos "/controller/action/id"
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]