Путаница сценария поиска PHP

При создании PHP-приложения я дошел до того, что должен работать над скриптом поисковой системы, однако у меня появилось несколько вопросов о том, как это сделать.

Я видел много руководств и руководств по этому вопросу, но ни один из них не объяснил, какой метод принять.

Таким образом, параметры:

Форма с методом post, которая предоставляет размещенные ключевые слова в функцию, которая выполняет запрос

<!--?php
$keywords = preg_split('/[\s]+/', $_POST['keywords']);
$products--->search($keywords);
?>
<form action="" method="post">
 
 
</form>

Форма с методом get, которая изменяет http-адрес следующим образом ?keywords=x+y+z, в этом случае ключевые слова передаются из $ _GET

<!--?php
$keywords = preg_split('/[\s]+/', $_GET['keywords']);
$products--->search($keywords);
?>
<form action="" method="get">
 
 
</form>

Форма с методом post, который после отправки перенаправляет на ту же страницу, но с ?keywords=x+y+z addon

<!--?php
header('Location: file.php?keywords=' . $_POST['keywords']);
exit();
?-->
<form action="" method="post">
 
 
</form>
<!--?php
$keywords = preg_split('/[\s]+/', $_GET['keywords']);
$products--->search($keywords);
?>

Из того, что я узнал, метод чистой почты довольно плохо, если вы хотите реализовать разбиение на страницы. Когда вы переключаете страницу через $ _GET ?page=2, пост больше не держится, и результаты поиска уходят, я понимаю, что мне пришлось бы переключаться на страницы через почту, поэтому я смутил бы тот подход, который я должен выполнить, спасибо за все советы :)

1 ответ

Если вы выполняете поиск, правильным методом будет GET, см. Описание различных методов запросов из w3. На этой основе GET более подходит, чем POST.

Сказав это, вы получаете какой-то ресурс, и вы можете утверждать, что эта страница является частью этого, так что, как вы, кажется, предлагаете, вы можете сделать

/search?keywords=HAL&page=2

или эта версия на основе uri, где страница является частью определения ресурса:

/search/2/?keywords=HAL

Или даже изо всех сил, как

/search/keyword1/keyword2/2

(Я не поклонник последнего, я предпочитаю средний или первый, все это связано с тем, что вы определяете как ресурс, который вы пытаетесь получить, и каковы параметры. Я уверен в Интернете полно дискуссий, которые были бы довольно длинными для публикации здесь)

Поймите, что вы не говорите о $_GET против $_POST. это реализация PHP. Вы должны решить, какой METHOD вы примете в качестве запроса, и затем вы можете посмотреть эти глобальные таблицы, чтобы узнать, где находится информация.

Мой совет был бы

licensed under cc by-sa 3.0 with attribution.