file_put_contents没有放我想要的

时间:2018-01-20 11:43:36

标签: php


我搜索了几个小时,为什么我的代码不起作用,实际上它确实创建了一个文件,但它没有填充它应该是什么。

所以这是一个例子:

  • 用户输入网站的新密码,我们将hugo作为密码。
  • php哈希,然后显示它以进行调试:hugo变为f0a3e0cbd8776ace8d3069ce2942e9f1
  • 然后它执行file_put_contents将散列字符串放在.txt文件中。但是,当我通过FTP打开此文件时,其中包含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实际上包含了预期的内容

0 个答案:

没有答案