繁体   English   中英

将 JavaScript 结果存储在 Php 变量中

[英]Store JavaScript Result In Php variable

如果我想用 php md5() 生成密码,我有一些密码包含一些特殊的和数学字符,比如这个密码“HHE1134ƒ”,那么这不会给我正确的哈希值,比如“679b6dc6122a9c83ed31476ee82af36e”。

所以我有 Java 脚本,它可以为我的密码生成正确的 hash 但是我怎样才能将此值存储到 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

?>

有人告诉我使用 Ajax,请告诉我如何使用 Ajax 这个代码你能给我一个例子.....

您不能在服务器上的 PHP 代码中运行 JavaScript 代码。 PHP 解释器仅解释 PHP 代码。

您不需要,MySQL 和 PHP 都具有md5函数来计算这些哈希值。

Javascript 在到达用户浏览器之前不会运行。 这称为客户端。

PHP 是服务器端。 在将 web 页面交付给用户之前,您的所有 PHP 代码都会执行。 然后您的 Javascript 将在他们自己的计算机上由他们的web 浏览器执行。

从 Javascript 向服务器发送内容的唯一方法是使用 Ajax。 你可以调查一下,但我认为你不应该以你目前的两种语言经验水平。 您使用它们多久了?

You can just use the md5() function which is built right into php btw: http://php.net/manual/en/function.md5.php

使用 php 原生 md5 function:

md5($password);

PHP 在 javascript 到达浏览器之前被解释。 你不能那样做。 阅读有关AJAX的更多信息,这将对您有所帮助。

顺便说一句:你为什么用 javascript 生成 md5 哈希?

这很正常,您的userpass值将只是<script type... Javascript 是客户端脚本语言,而 php 运行服务器端,您希望如何在服务器端解释您的 md5?

您可以做的是 hash 密码在发送之前,但它会让您信任访问者,您不应该做的事情,或者只是使用 php ZC1C425268E68385D1AB5074C17A94F14 进行 md5 散列。

我认为您复制粘贴的代码不正确。 根据错误,您尝试将 $userpass 变量放入 SQL 语句中,但是在代码中,您使用的是 $tmp 变量,该变量根本没有定义。

尝试这个:

$tmp = md5($password);
$query1="UPDATE `wp_110504users` SET `user_pass` = '$tmp' WHERE `user_login` = '$user_id'";

您也可以使用 MySQL function:

$query1="UPDATE `wp_110504users` SET `user_pass` = MD5('$tmp') WHERE `user_login` = '$user_id'";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM