我正在使用
mysql_real_escape_string将数据存入我的数据库而没有任何问题.
所以数据库中的条目可能是:
1/4" Steve's lugnuts
所以这完全在数据库中.
现在我想搜索那个确切的东西.但是,它会陷入“或者”(我已经尝试了很多东西,它总是在某处弄乱).
这就是我现在拥有的:
(user_input来自上一页的表单)
$user_input=mysql_real_escape_string($_REQUEST['user_input']); $search_row=mysql_query("SELECT * FROM some_table WHERE some_column LIKE '%$user_input%' "); while($search = mysql_fetch_array($search_row)) {stuff happens} echo "<form action='search_results.php' method='post'>"; echo "<input name='user_input' type='text' size='50' value='" . $user_input. "'>"; echo "<input type='submit' value='Lookup Parts' />"; echo "</form>";
但问题是,我似乎无法得到任何错误.
搜索字段(应该填充它们已经放入的内容)只有:
1/4\" Steve\
我究竟做错了什么?
The search field (which is supposed to populate with what they already put in) just has
1/4\" Steve\
当然有!
你放错了地方.
mysql_real_escape_string仅适用于SQL!但你正在使用它的结果为HTML.对于HTML,您必须使用完全不同的转义方式.
所以,做吧
$user_input=mysql_real_escape_string($_REQUEST['user_input']); $search_row=mysql_query("SELECT * FROM some_table WHERE some_column LIKE '%$user_input%' "); while($search = mysql_fetch_array($search_row)) {stuff happens} $user_input =htmlspecialchars($_REQUEST['user_input'],ENT_QUOTES); // here it goes echo "<form action='search_results.php' method='post'>"; echo "<input name='user_input' type='text' size='50' value='$user_input'>"; echo "<input type='submit' value='Lookup Parts' />"; echo "</form>";
还要注意,回复这么大的HTML块是没有用的.只需关闭PHP标记,然后编写纯HTML:
?> <form action='search_results.php' method='post'> <input name='user_input' type='text' size='50' value='<?=$user_input?>'> <input type='submit' value='Lookup Parts' /> </form>
看起来更清晰,可读和方便
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。