Я просто настроил функцию интерактивного поиска ajax для своей страницы, и у меня возникают проблемы с сохранением GET
-variables.
На моем index.php
меня есть много флажков и кнопок, которые создают GET
-variables, например $_GET['category']
.
Это часть моего внешнего скрипта search.php
который вызывается через ajax, когда пользователь выполняет поиск (на index.php):
[...]
$query = 'SELECT row FROM table WHERE';
if (strlen($search_string) >= 1 && $search_string !== ' ') {
$query = $query . ' something LIKE "%'.$search_string.'%" AND';
}
if(!empty($_GET['category'])){
$query = $query . ' category LIKE "%'.$_GET['category'].'%" AND';
}
[...]
Теперь, как вы можете себе представить, переменная $_GET['category']
не работает. Как я могу получить к нему доступ?
(он создается в index.php, я хотел бы получить к нему доступ в search.php)
У вас есть несколько вариантов, это были первые, которые приходили в голову;
Вы можете либо зачитать переменные GET в javascript из URL-адреса, и передать их в search.php
качестве параметров (здесь у вас будет возможность использовать GET или POST, функционально это не имеет значения).
Или вы можете сохранить их в $_SESSION
и прочитать эти значения в search.php
. Это требует, чтобы search.php
и index.php
выполнялись в том же домене, иначе вам пришлось бы создавать некоторые обманки с помощью куки файлов.
[...]
if (isset ($ _ GET ['category']) &&! empty ($ _ GET ['category'])) {
[...]
Эта проверка достаточна.
Попробуйте использовать $ _REQUEST ['category'] вместо $ _GET ['category']. вы можете получить доступ к своей переменной.
SESSION
, я бы просто сохранил это так:$_SESSION['category'] = $_GET['category']
?search.php
вы можете использовать$_SESSION['category']
чтобы прочитать значение. Тем не менее, никогда не передать сгенерированный пользователем ввод непосредственно в запрос, это очень плохая идея , потому что это оставляет вашу базу данных уязвимы для инъекций SQL.