我搜索了几个小时,为什么我的代码不起作用,实际上它确实创建了一个文件,但它没有填充它应该是什么。
所以这是一个例子:
hugo
作为密码。hugo
变为f0a3e0cbd8776ace8d3069ce2942e9f1
。3293ac630c13f0245f92bbb1766e1616
!即使我删除了文件,无论用户输入是什么,这个代码总是写在文件中,这个散列字符串意味着null(当我散列空输入时,我有相同的散列代码)。
如果我在没有哈希函数的情况下运行相同的代码,它会创建一个空文件。
if ($action == "ch_mdp") {
no_check_timer();
if (htmlspecialchars($_POST["mdp"]) == htmlspecialchars($_POST["mdp2"])) {
$crypt = hash($algo, htmlspecialchars($_POST["mdp"]));
echo $_POST["mdp"]." | ".$_POST["mdp2"]." | ".$crypt." | ./bdd/".$_SESSION["login"]."/mdp.txt";//DEBUG
file_put_contents("./bdd/".$_SESSION["login"]."/mdp.txt", $crypt);
echo "<p>Password changed.</p>";
footer(true);
} else {
echo $_POST["mdp"]." | ".$_POST["mdp2"]." | ".$crypt." | ./bdd/".$_SESSION["login"]."/mdp.txt";
echo "<p/><span class='erreur'>ERROR : password & pass confirmation do not match.</span><br/>";
footer(true);
}
}
$_SESSION
和$_POST
实际上包含了预期的内容