我有一些密码包含一些特殊和方法的字符,如此密码“HHE1134ƒ”如果我想用php md5()生成密码那么这不会给我正确的哈希像这样的“679b6dc6122a9c83ed31476ee82af36e”。
所以我有Java Script可以为我的密码生成正确的哈希值 但是我如何将这个值存储到mysql
我的代码如下,请帮助我。
$result = mysql_query("SELECT * FROM `table`") or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
$user_id = $row['user_id'];
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$spno = $row['spno'];
$password = $row['password'];
$tmp = "<script type='text/javascript'> document.write(MD5('".$password."'));</script>";
$query1="UPDATE `wp_110504users` SET `user_pass` = '$tmp' WHERE `user_login` = '$user_id'";
mysql_query($query1) or die(mysql_error());
}
这会给我一个像
这样的错误You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'text/javascript'> document.write(MD5('HW72'));' WHERE `user_login` = '0' at line 1
&GT;
有人告诉我使用Ajax,请告诉我如何使用Ajax这段代码你能给我一个例子......
答案 0 :(得分:3)
您无法在服务器上的PHP代码中运行JavaScript代码。 PHP解释器只解释PHP代码。
您不需要,MySQL和PHP都有md5
函数来计算这些哈希值。
答案 1 :(得分:2)
Javascript在到达用户的浏览器之前不会运行。这称为客户端。
PHP是服务器端。在将网页传递给用户之前,所有PHP代码都会执行。然后,您的Javascript将在他们的自己的计算机上执行,他们的网络浏览器。
从Javascript向服务器发送内容的唯一方法是使用Ajax。你可以调查它,但我不认为你应该用你目前的两种语言的经验水平。你用它多久了?
你可以使用内置于php btw的md5()函数:http://php.net/manual/en/function.md5.php
答案 2 :(得分:1)
使用php native md5功能:
md5($password);
答案 3 :(得分:0)
在javascript到达浏览器之前解释PHP。 你不能这样做。 阅读有关AJAX的更多信息,这对您有所帮助。
BTW:你为什么用javascript生成md5哈希?
答案 4 :(得分:0)
这很正常,userpass
值只是<script type...
。 Javascript是客户端脚本语言,而php运行服务器端,您希望如何在服务器端解释您的md5?
你能做什么,是在发送密码之前对密码进行哈希处理,但它会让你信任访问者,你永远不应该做什么,或者只是使用php函数进行md5哈希。
答案 5 :(得分:0)
我认为您复制粘贴的代码不正确。根据错误,您尝试将$ userpass变量放在SQL语句中,但是,在代码中,您使用的是$ tmp变量,它根本没有定义。
答案 6 :(得分:0)
试试这个:
$tmp = md5($password);
$query1="UPDATE `wp_110504users` SET `user_pass` = '$tmp' WHERE `user_login` = '$user_id'";
你也可以使用MySQL功能:
$query1="UPDATE `wp_110504users` SET `user_pass` = MD5('$tmp') WHERE `user_login` = '$user_id'";