我有以下代码:
http://www.nomorepasting.com/getpaste.php?pasteid=22615
由this question中提到的javascript调用:
我的问题是我似乎无法传递$查询,因为当我单独调用此文件时似乎没有任何事情发生。
我不确定控制信息流的最佳方法是什么。我的逻辑好吗?通过javascript将查询传递给php文件,然后使用函数返回它?
我也担心我使用$ rows,因为它似乎不是必需的。
答案 0 :(得分:1)
我想你要替换它(第36行):
$rows = getRowsByArticleSearch($searchString, $table);
用这个:
$rows = getRowsByArticleSearch($query, $table);
出于安全考虑,你应该做的最少的是来自spelley帖子的mysql_real_escape_string。
答案 1 :(得分:0)
在您链接的代码中,我没有看到$ 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) . "%'");
您还应该检查是否已启用魔术引号,以避免双重转义。