在下面给出的简单形式中,如果我们搜索某些东西,它会在浏览器中显示如下:
[1]: http://i.stack.imgur.com/8YEJz.png
表单代码:
<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>
现在,我想以某种方式改变原始查询方式,如果我们搜索合作伙伴食物&#39;如上例所示,它应该转换为md5并在我们存储时获取数据,因此它应该看起来像http://localhost/robbin.php?text=B9B5A976F29A3C71EDAD9320A9AB0982&Submit=Submit+Query
但是这不是这样的。
我试过这样:
$submit=$_GET['text'];
$encrypted=md5($submit);
$sql = mysql_query("SELECT * FROM searchengine WHERE pagecontent LIKE '%$encrypted%'");
请说明我该怎么办?
答案 0 :(得分:0)
我希望我没有误解你的问题。
如果您想将partner food
更改为加密文本然后通过GET方法发送,您必须先在客户端加密文本字段,我的意思是在客户端使用jQuery或Java Script加密,然后发送它
PHP是服务器端语言,md5()
只能加密数据,而您无法解密由md5()
加密的数据。
我建议您使用其他可以解密的功能,例如base64
或类似其他功能。
此外,如果您在MySQL中使用加密数据并且想要搜索它,则不需要LIKE
语句,请将查询更改为:
SELECT * FROM searchengine WHERE pagecontent = '$encrypted'
我希望它可以帮到你。
答案 1 :(得分:0)
简而言之:您不想在客户端散列或加密任何内容,因为它可能很容易混淆(并且算法突然严重依赖于浏览器)。发送实际搜索查询然后对服务器端进行哈希/加密有什么问题?
无论如何,正如@ Anderss0n所说,你可以改用base64。或者,如果您真的想要进行MD5哈希,请考虑
1)对一个简单的PHP脚本执行Ajax调用,返回它收到的md5:
return md5($_POST['encrypt_this_string']);
或
2)检查这个库:https://code.google.com/p/crypto-js/ - 它公开了一个CryptoJS
对象,它有一个名为MD5
的函数