表单搜索问题php

时间:2015-01-12 05:33:34

标签: php mysql sql

在下面给出的简单形式中,如果我们搜索某些东西,它会在浏览器中显示如下:

[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%'"); 

请说明我该怎么办?

2 个答案:

答案 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的函数