我有一个for loop,示例用户数组,我想md5密码,但事实是,它是两次哈哈密码。我只想要一次md5($_POST[2]);
user([userid, username, password]);
$num_fields =3;
for ($y = 1; $y < $num_fields; $y++) {
$password = md5($_POST[2]);
$_POST[2] = $password;
}
密码的示例输入是user
,输出为
ee11cbb19052e40b07aac0ca060c23ee0d8d5cd06832b29560745fe4e1b941cf
而不是
ee11cbb19052e40b07aac0ca060c23ee
我的解决方案是
for ($y = 1; $y < $num_fields; $y++) {
$password = md5($_POST[2]);
$_POST[2] = $password;
return $_POST[2];
}
,但我不希望return $_POST[2];
并在循环中为MySQL插入目的打破循环。所以我的问题是,如何在不返回的情况下一次循环并获得唯一的MD5值?
您不需要循环。您不使用$y
变量。条件下的可变$num_fields
使循环运行两次(对于$y
等于1和2)。
这应该做您期望的事情:
user([userid, username, password]);
$password = md5($_POST[2]);
$_POST[2] = $password;
更新
如果您出于某种原因需要该循环,请在循环之前创建MD5。我将$y
的初始化更改为0,因为当$num_fields
设置为3时,它会使循环三次循环。
user([userid, username, password]);
$password = md5($_POST[2]);
$_POST[2] = $password;
$num_fields = 3;
for ($y = 0; $y < $num_fields; $y++) {
// Anything you wanted to loop
}
正如@nitrix所说,MD5不再保存了。但是,如果仅仅是用于学习如何创建登录或高安全性的项目,则可以。