Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:addUser()缺少参数3,_Php_Warnings - Fatal编程技术网

Php 警告:addUser()缺少参数3,

Php 警告:addUser()缺少参数3,,php,warnings,Php,Warnings,警告:addUser()缺少参数3,在第61行的C:\xampp\htdocs\mijnhp\Testomgeving\register.php中调用,在第133行的C:\xampp\htdocs\mijnhp\Testomgeving\php\functions.php中定义 下面是my functions.php中包含并在register.php中使用的代码 function addUser($username, $password, $email) { global

警告:addUser()缺少参数3,在第61行的C:\xampp\htdocs\mijnhp\Testomgeving\register.php中调用,在第133行的C:\xampp\htdocs\mijnhp\Testomgeving\php\functions.php中定义

下面是my functions.php中包含并在register.php中使用的代码

        function addUser($username, $password, $email) {
    global $connection;
        $passwordmd5 = md5($password);
        $generatedCode = generateCode();
        $email = $_POST['email'];
        $to = "test@lol123.com";
        $subject = "Email confirmation code";
        $msg = $generatedCode;
        $headers = "From: test123@hotmail.com";
    //mail($to, $subject, $msg, $headers);
    mysqli_query($connection, "INSERT INTO users VALUES('null', '$username', '$passwordmd5', '$email', '0', '0')");
} 
这是我的register.php文件

    if(isset($_POST['login_submit'])) {
    addUser($_POST['username'], md5($_POST['password'], ($_POST['email'])));
}

因此,现在我想知道如何删除该警告,因为代码可以工作,它将其放入我的数据库中,但它一直给我该警告。有人可以帮助我吗?

问题在于
md5
函数调用(括号未正确关闭)。你应该这样做:

addUser($_POST['username'], md5($_POST['password']), $_POST['email']);

注意:请阅读更多有关为什么要传递两个参数而不是3个参数的信息

改变

addUser($_POST['username'], md5($_POST['password'], ($_POST['email'])));


除了其他答案之外,如果要抑制警告,请在index.php文件中添加以下代码:

error_reporting(E_ERROR | E_PARSE);
您好,您在调用
addUser
的行中缺少
。因此,您的第二个变量变为
md5($\u POST['password']),($\u POST['email'])
这被视为一个单元,第三个参数变为空白 像这样换行

 addUser($_POST['username'], md5($_POST['password']),$_POST['email']);

我不知道为什么你要将你的psswrd设置两次为什么你在
addUser
中使用括号作为
$\u POST['email']
,请考虑一种安全的密码哈希算法,如bcrypt()。谢谢你的使用检查。我知道我不应该使用md5,但对于测试站点来说这只是暂时的。谢谢你的帮助!不要无缘无故地抑制警告。在这种情况下,警告是识别代码中您确实关心的一个非常真实的问题。
 addUser($_POST['username'], md5($_POST['password']),$_POST['email']);