我有一个php页面,可以从像这样的mysql表中显示信息
$query = "SELECT * FROM `diccionary` WHERE `entry` LIKE 'a%' ORDER BY `entry`";
并且我将每个结果用作第二个查询到另一个php文件的输入:
$escaped = mysql_real_escape_string($row['entry']);
echo "<a href=editor.php?entry=$escaped>".$row['entry']."</a> |
在此页面返回的一些单词具有下一种格式,它们以这种方式返回:
word1 word2
单词“
字+
字( - )
但它们没有正确发送到href = editor.php?entry = $转义部分,实际上只有以撇号结尾的那些是好的,因为我正在使用“mysql_real_escape_string”函数,我尝试将其他转换为转义字符,但它不起作用,如(“+”,“+”,$ row ['entry'])。 这些是我在所有这些情况下看到的链接:
2 words = editor.php?entry = word1(没有以下空格也没有word2,这给了我所有与word1匹配的单词,如果有的话,但不是word1 word2的复合词。)
单词'= editor.php?entry = word \'(由于该功能,这是正确的,它也给了我正确的单词)。
word + = editor.php?entry = word +(+应该被转义,因为如果我点击生成的链接,它就没有结果,空白页面。)
word( - )= editor.php?entry = word(这类似于2个单词的情况,除此之外还有应该转义的括号,这个也会产生空白页。)
我一直在寻找周围,我只能找到修复撇号的方法,我不知道如何修复其余的情况,任何帮助都是有价值的。
非常感谢。
答案 0 :(得分:1)
您需要对数据进行URL编码,以便输出到HTML href属性。
$query_string = urlencode($row['entry']);
echo "<a href=editor.php?entry=$query_string".$row['entry']."</a> |
mysql_real_escape_string
函数用于转义数据,以便在MySQL查询中使用,而不是用于查询结果。
答案 1 :(得分:0)
try urlencode($row['entry']);
方法http://in1.php.net/urlencode可能会起作用
但是在网址中发送转发数据的建议并不是一个好习惯。