получить доступ к переменным $ _GET во внешнем ajax search.php

0

Я просто настроил функцию интерактивного поиска 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)

Теги:

3 ответа

2
Лучший ответ

У вас есть несколько вариантов, это были первые, которые приходили в голову;
Вы можете либо зачитать переменные GET в javascript из URL-адреса, и передать их в search.php качестве параметров (здесь у вас будет возможность использовать GET или POST, функционально это не имеет значения).
Или вы можете сохранить их в $_SESSION и прочитать эти значения в search.php. Это требует, чтобы search.php и index.php выполнялись в том же домене, иначе вам пришлось бы создавать некоторые обманки с помощью куки файлов.

  • 0
    спасибо за Ваш ответ! Поэтому, если я хочу использовать SESSION , я бы просто сохранил это так: $_SESSION['category'] = $_GET['category'] ?
  • 0
    Да! И тогда в вашем search.php вы можете использовать $_SESSION['category'] чтобы прочитать значение. Тем не менее, никогда не передать сгенерированный пользователем ввод непосредственно в запрос, это очень плохая идея , потому что это оставляет вашу базу данных уязвимы для инъекций SQL.
0

[...]

if (isset ($ _ GET ['category']) &&! empty ($ _ GET ['category'])) {

[...]

Эта проверка достаточна.

0

Попробуйте использовать $ _REQUEST ['category'] вместо $ _GET ['category']. вы можете получить доступ к своей переменной.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню