Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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-无法正确传递表单值_Php_Html_Mysql - Fatal编程技术网

PHP-无法正确传递表单值

PHP-无法正确传递表单值,php,html,mysql,Php,Html,Mysql,首先,我为混乱的代码道歉 我是PHP新手,我在看视频,练习更新密码和确认。我能够通过电子邮件验证(空),但一旦我试图提交密码和新密码,它不断显示我没有填写密码和新密码 有人能帮我检查一下代码吗?多谢各位 <?php if($_SERVER['REQUEST_METHOD'] == 'POST') { include ('connection.php'); $errors = array(); if (empty($_POST['email'])) {

首先,我为混乱的代码道歉

我是PHP新手,我在看视频,练习更新密码和确认。我能够通过电子邮件验证(空),但一旦我试图提交密码和新密码,它不断显示我没有填写密码和新密码

有人能帮我检查一下代码吗?多谢各位

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    include ('connection.php');
    $errors = array();
    if (empty($_POST['email']))
    {
        $errors[] = 'Require your email! ';
    }
    else
    {
        $e = mysqli_real_escape_string($dbc, trim($_POST['email']));
    }
    if (empty($_POST['password']))
    {
        $errors[] = 'Require your password!';
    }
    else
    {
        $p = mysqli_real_escape_string($dbc, trim($_POST['password']));
    }
    if (!empty($_POST['newpass']))
    {
        if ($_POST['newpass'] != $_POST['conpass'])
        {
            $errors[] = "Your new password does not match the confirmed password!"; 
        }
        else
        {
            $np = mysqli_real_escape_string($dbc, trim($_POST['newpass']));
        }
    }
    else
    {
            $errors[] = 'You forgot to enter your new password!';
    }
    if(empty($errors))
    {
        $q = "SELECT id FROM users WHERE (email='$e' AND password='$p')";
        $r = mysqli_query($dbc, $q);
        $num = mysqli_num_rows($r);
        if($num == 1)
        {
            $row = mysqli_fetch_array($r, MYSQLI_NUM);
            $q = "UPDATE users SET password='$np' WHERE id = '$row[0]'";
            $r = mysqli_query($dbc, $q);
            if (mysqli_affected_rows($dbc) == 1 )
            {
                echo "You have succesfully update your password.";
            }
            else
            {
                echo "Your password could not be changed due to a system error, please try again.";
            }
            mysqli_close($dbc);
        }
        else
        {
                echo "The Email and the password were in correct.";
        }
    }
    else
    {
        echo "Error! The following error(s) occured: <br />";
        foreach($errors as $msg)
        {
            echo $msg."<br />";
        }
    }
}
?>
<h1>Change Password</h1>
<form action="update.php" method="post">
    <p>Email: <input type="text" name="email" size="20" maxlenght="30" value="<?php if(isset($_POST['email'])){echo $_POST['email'];} ?>" /></p>
    <p>Current Password: <input type="password" name"password" size="20" maxlength="30" value="<?php if(isset($_POST['password'])){echo $_POST['password'];} ?>" /></p>
    <p>New Password: <input type="password" name"newpass" size="20" maxlength="30" value="<?php if(isset($_POST['newpass'])){echo $_POST['newpass'];} ?>" /></p>
    <p>Confirm Password: <input type="password" name"conpass" size="20" maxlength="30" value="<?php if(isset($_POST['conpass'])){echo $_POST['conpass'];} ?>" /></p>
    <p><input type="submit" name="submit" value="Change Password" /></p>
</form>

您的HTML代码中有语法错误

您在这些行中缺少了
=
符号:

<input type="password" name"password" ...

好的,下面是代码的更新版本:

<?php 

if($_SERVER['REQUEST_METHOD'] == 'POST'){

    include ('connection.php');

    $errors = array();

    $email=trim($_POST['email']);
    $password=trim($_POST['password']);
    $newpass=trim($_POST['newpass']);
    $conpass=trim($_POST['conpass']);

    if (empty($email)) {
        $errors[] = 'Require your email! ';
    } else {
        $e = mysqli_real_escape_string($dbc, $email);
    }

    if (empty($password)) {
        $errors[] = 'Require your password!';
    } else {
        $p = mysqli_real_escape_string($dbc, $password);
    }

    if (!empty($newpass)) {
        if ($newpass != $conpass){
            $errors[] = "Your new password does not match the confirmed password!"; 
        } else {
            $np = mysqli_real_escape_string($dbc, $newpass));
        }
    } else {

            $errors[] = 'You forgot to enter your new password!';
    }


    if(empty($errors)){
        $q = "SELECT `id` FROM `users` WHERE (`email` LIKE '$e' AND `password` LIKE '$p') LIMIT 0, 1";
        $r = mysqli_query($dbc, $q);
        $num = mysqli_num_rows($r);

        if($num == 1){
            $row = mysqli_fetch_array($r, MYSQLI_NUM);

            $q = "UPDATE `users` SET `password` LIKE '$np' WHERE `id = '$row[0]'";
            $r = mysqli_query($dbc, $q);

            if (mysqli_affected_rows($dbc) == 1 ){

                echo "You have succesfully update your password.";

            } else {

                echo "Your password could not be changed due to a system error, please try again.";
            }

            mysqli_close($dbc);

        }  else {

                echo "The Email and the password were in correct.";
        }

    } else {
        echo "Error! The following error(s) occured: <br />";
        foreach($errors as $msg){
            echo $msg."<br />";
        }
    }

}

你忘了在属性之后加上
=

我确定有语法错误,但我能说什么呢。。你有更好的眼睛:)谢谢你的帮助!
<input type="password" name"conpass" ...
<?php 

if($_SERVER['REQUEST_METHOD'] == 'POST'){

    include ('connection.php');

    $errors = array();

    $email=trim($_POST['email']);
    $password=trim($_POST['password']);
    $newpass=trim($_POST['newpass']);
    $conpass=trim($_POST['conpass']);

    if (empty($email)) {
        $errors[] = 'Require your email! ';
    } else {
        $e = mysqli_real_escape_string($dbc, $email);
    }

    if (empty($password)) {
        $errors[] = 'Require your password!';
    } else {
        $p = mysqli_real_escape_string($dbc, $password);
    }

    if (!empty($newpass)) {
        if ($newpass != $conpass){
            $errors[] = "Your new password does not match the confirmed password!"; 
        } else {
            $np = mysqli_real_escape_string($dbc, $newpass));
        }
    } else {

            $errors[] = 'You forgot to enter your new password!';
    }


    if(empty($errors)){
        $q = "SELECT `id` FROM `users` WHERE (`email` LIKE '$e' AND `password` LIKE '$p') LIMIT 0, 1";
        $r = mysqli_query($dbc, $q);
        $num = mysqli_num_rows($r);

        if($num == 1){
            $row = mysqli_fetch_array($r, MYSQLI_NUM);

            $q = "UPDATE `users` SET `password` LIKE '$np' WHERE `id = '$row[0]'";
            $r = mysqli_query($dbc, $q);

            if (mysqli_affected_rows($dbc) == 1 ){

                echo "You have succesfully update your password.";

            } else {

                echo "Your password could not be changed due to a system error, please try again.";
            }

            mysqli_close($dbc);

        }  else {

                echo "The Email and the password were in correct.";
        }

    } else {
        echo "Error! The following error(s) occured: <br />";
        foreach($errors as $msg){
            echo $msg."<br />";
        }
    }

}
<p>Email: <input type="text" name="email" size="20" maxlenght="30" value="<?php if(isset($_POST['email'])){echo $_POST['email'];} ?>" /></p>
<p>Current Password: <input type="password" name="password" size="20" maxlength="30" value="<?php if(isset($_POST['password'])){echo $_POST['password'];} ?>" /></p>
<p>New Password: <input type="password" name="newpass" size="20" maxlength="30" value="<?php if(isset($_POST['newpass'])){echo $_POST['newpass'];} ?>" /></p>
<p>Confirm Password: <input type="password" name="conpass" size="20" maxlength="30" value="<?php if(isset($_POST['conpass'])){echo $_POST['conpass'];} ?>" /></p>
<p><input type="submit" name="submit" value="Change Password" /></p>