Проблема поиска и передачи переменных в php и mysql

У меня есть следующий код:

http://www.nomorepasting.com/getpaste.php?pasteid=22615

Который называется javascript, упомянутым в этом вопросе :

Моя проблема в том, что я, кажется, не могу передать $ query, как будто ничего не происходит, когда я вызываю этот файл сам по себе.

Я не уверен, что лучший способ контролировать поток информации. Моя логика в порядке? Передача запроса через javascript в файл php, а затем возврат его с помощью функции?

Я также обеспокоен тем, как я использую $ row, так как это не требуется.

10.12.2008 12:22:48
2 ОТВЕТА
РЕШЕНИЕ

Я думаю, что вы хотите заменить это (строка 36):

$rows = getRowsByArticleSearch($searchString, $table);

с этим:

$rows = getRowsByArticleSearch($query, $table);

И по соображениям безопасности, по крайней мере, вы должны сделать mysql_real_escape_string материал из сообщения Spelley.

1
10.12.2008 13:47:34

В коде, на который вы ссылаетесь, я не вижу, где объявлен $ searchString? В вышеупомянутом PHP я вижу эти два отдельных раздела:

$query ='';
if (isset($_GET["query"]))
$query = $_GET["query"];

и код, который вы выполняете позже вниз по странице

$table = 'Auctions';
$rows = getRowsByArticleSearch($searchString, $table);

Насколько я могу видеть в коде, нигде не объявлено $ searchString. Однако большее беспокойство вызывает то, что вы не очищаете строку запроса перед ее выполнением. Ради безопасности я бы по крайней мере заменил:

$result = mysql_query("SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME 
                       FROM {$table} 
                       WHERE upper ARTICLE_NAME LIKE '%" . $searchString . "%'");

с

$result = mysql_query("SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME 
                       FROM {$table} 
                       WHERE upper ARTICLE_NAME LIKE '%" . mysql_real_escape_string($searchString) . "%'");

Вы также должны проверить, включены ли магические кавычки, чтобы избежать двойного побега.

0
8.07.2010 14:13:14