返回mysqli_result,给出注册页面的布尔错误

时间:2017-01-17 17:37:46

标签: php html

我不知道为什么我的代码会出现以下错误,如果有人能向我解释,我将不胜感激。

管理以减少除此之外的所有错误,我认为代码无法检查电子邮件是否已注册但不确定原因。

if (empty($_POST['email']))
{$errors[] = 'Please enter your email.';}
else
{$e = mysqli_real_escape_string($dbc,
                            trim($_POST['email']));}

if (empty($errors))
{
    $q = "SELECT user_id FROM users WHERE email='$e'";
    $r = mysqli_query ($dbc,$q);
    if (mysqli_num_rows($r) != 0)
    {$errors[] = 'Email address already registered.
                            <a href="login.php">Login</a>';}
  

警告:mysqli_num_rows()期望参数1为mysqli_result,   在第59行的C:\ Abyss Web Server \ htdocs \ register1.php中给出的布尔值

<!DOCTYPE HTML>
    <html lang="en">
    <head><meta charset="UTF-8">
    <title>Surf Shop Registration</title>
    </head>
    <body>

    <?php

    $page_title = 'Register';
    include ('includes/header.html');

    # conditional test to only execute contained statements if form has been submitted.
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {

    # statements to be inserted here.

    # open database connection and initialise array for error messages.
    require ('../surfshop_db.php');
    $errors = array();

    # stores error msg if firstname field remains empty, or store value in a variable.
    if (empty($_POST['first_name']))
    {$errors[] = 'Please enter your first name.';}
    else
    {$fn = mysqli_real_escape_string($dbc,
                                trim($_POST['first_name']));}

    # stores error msg if lastname field remains empty, or store value in a variable.
    if (empty($_POST['last_name']))
    {$errors[] = 'Please enter your last name.';}
    else
    {$ln = mysqli_real_escape_string($dbc,
                                trim($_POST['last_name']));}

    #   stores error msg if email field remains empty, or store value in a variable.
    if (empty($_POST['email']))
    {$errors[] = 'Please enter your email.';}
    else
    {$e = mysqli_real_escape_string($dbc,
                                trim($_POST['email']));}

    #   stores password as a variable if both password fields match, or store an error msg if not matching or first field is empty.
    if (!empty($_POST['pass1']))
    {
        if ($_POST['pass1'] != $_POST['pass2'])
        {$errors[] = 'Passwords do not match.';}
        else
        {$p = mysqli_real_escape_string($dbc,
                                trim($_POST['pass1']));}
    }
    else {$errors[] = 'Please enter your password.';}

    #   stores error msg if email already exists in database.
    if (empty($errors))
    {
        $q = "SELECT user_id FROM users WHERE email='$e'";
        $r = mysqli_query ($dbc,$q);
        if (mysqli_num_rows($r) != 0)
        {$errors[] = 'Email address already registered.
                                <a href="login.php">Login</a>';}
    }

    #   stores user data in database and displays a confirmation message when registration is successful, closes the database connection and includes a page footer as well as exit the script.
    if (empty($errors))
    {
        $q = "INSERT INTO users
            (first_name, last_name, email, password, reg_date)
            VALUES ('$fn', '$ln', '$e', SHA1('$p'), NOW())";
        $r = mysqli_query ($dbc,$q);

        if ($r)
        {
            echo '<h1>Registered!</h1>
                <p>You are now registered.</p>
                <p><a href="login1.php">Login</a></p>';
        }

        mysqli_close($dbc);
        include ('includes/footer.html');
        exit();
    }

    #   displays all stored error msg when registration fails and closes database connection.
    else
    {
        echo '<h1>Error!</h1>
        <p id="err_msg">The following error(s) occurred:<br>';
        foreach ($errors as $msg)
        {
            echo " -$msg<br>";
        }
        echo 'Please try again.</p>';
        mysqli_close($dbc);
    }

    }
    ?>

    <!--Sticky HTML form-->
    <h1>Register</h1>
    <form action="register1.php" method="POST">
    <p>
    First Name: <input type="text" name="first_name"
    value="<?php if (isset($_POST['first_name']))
        echo $_POST['first_name'];?>">
    Last Name: <input type="text" name="last_name"
    value="<?php if (isset($_POST['last_name']))
        echo $_POST['last_name'];?>">
    </p><p>
    Email Address: <input type="text" name="email"
    value="<?php if (isset($_POST['email']))
        echo $_POST['email'];?>">
    </p><p>
    Password: <input type="password" name="pass1"
    value="<?php if (isset($_POST['pass1']))
        echo $_POST['pass1'];?>">
    Confirm Password: <input type="password" name="pass2"
    value="<?php if (isset($_POST['pass2']))
        echo $_POST['pass2'];?>">
    </p><p>
    <input type="submit" value="Register"> </p>
    </form>

    <?php include ('includes/footer.html');?>

    </body>
    </html>

0 个答案:

没有答案