Php 表单搜索问题

Php 表单搜索问题,php,mysql,sql,Php,Mysql,Sql,以下面给出的简单形式,如果我们在浏览器中搜索某个内容,它的外观如下: [1]: http://i.stack.imgur.com/8YEJz.png $submit=$_GET['text']; $encrypted=md5($submit); $sql = mysql_query("SELECT * FROM searchengine WHERE pagecontent LIKE '%$encrypted%'"); 表格编号: <form name="newad" method="

以下面给出的简单形式,如果我们在浏览器中搜索某个内容,它的外观如下:

[1]: http://i.stack.imgur.com/8YEJz.png
$submit=$_GET['text'];
$encrypted=md5($submit);
$sql = mysql_query("SELECT * FROM searchengine WHERE pagecontent LIKE '%$encrypted%'"); 
表格编号:

<form name="newad" method="get"  action="search.php">
<h1 align="center"> Type your query<input type="text" name="text">
<h1 align="center"><input name="Submit" type="submit" >
</form>

请说明我应该做什么

我希望我没有误解你的问题

如果您想将
partner food
更改为加密文本,然后通过GET方法发送,您必须首先在客户端加密文本字段,我的意思是在客户端使用jQuery或Java脚本进行加密,然后发送

PHP是服务器端语言,而且
md5()
只能对数据进行加密,而不能解密由
md5()
加密的数据

我建议您使用另一个可以破译的函数,如
base64
或类似的函数

另外,如果您在MySQL中使用加密数据并希望搜索该数据,则不需要类似于语句的
,将查询更改为:

从搜索引擎中选择*,其中pagecontent='$encrypted'


我希望它能帮助你。

简而言之:你不想在客户端散列或加密任何东西,因为它很容易被弄乱(而且算法突然严重依赖于浏览器)。发送实际的搜索查询,然后在服务器端对其进行哈希/加密,有什么不对

无论如何,正如@Anderss0n所述,您可以使用base64。或者,如果你真的想做MD5哈希,考虑一下

1) 对一个简单的PHP脚本执行Ajax调用,返回其接收内容的md5:

return md5($_POST['encrypt_this_string']);


2) 检查此库:-它公开了一个
CryptoJS
对象,该对象具有一个名为
MD5

的函数。您想在浏览器中显示加密的关键字,还是只想在数据库中搜索?如果您只想在数据库中搜索,那么您的方法是正确的。我想在数据库中搜索加密字,基于查询,如果方法是rgiht,那么为什么不搜索,意味着只搜索术语。顺便说一句,如果您在浏览器中以纯文本形式显示关键字,为什么在数据库中按加密方式对其进行笔划?我认为这不是正确的方法。检查您的列大小。有时在加密字符串变长后,如果您的列大小变小,DB会存储该加密字符串中的几个字符。不知何故,将它们以加密的形式存储在DB中是很重要的,然后按照加密的方式进行处理,但不起作用。请建议任何帮助或类似的帮助。我想有人已经提出的另一个问题会对您有所帮助。我会选2号。您只需将js文件包含在
标记中。