无法将反馈插入数据库

时间:2014-11-17 14:56:20

标签: php database insert

我在婴儿步骤中编写了以下代码,彻底解决了这些问题,直到它完成了。最后一步是检查用户名/电子邮件是否存在,如果为true,则将所有内容插入数据库。如果在[5]之前没有错误,我得到了发送电子邮件的代码,但除了发送电子邮件之外我无法测试任何内容。表单完成并发送后,页面将在标题后清除,不会进入下一页。

我尽可能彻底地查看了代码,提取了多个源代码并使用php验证工具检查了一般语法。我没有任何出现的东西。

连接:

$con = mysqli_connect('$db_host', '$db_user', '$db_pass', '$db_name');

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

体:

if (isset($_POST['process'])) {

$birthday = $_POST['year'].$dash.$_POST['month'].$dash.$_POST['day'];
$user_name = htmlspecialchars($_POST['user']);
$email = htmlspecialchars($_POST['email']);
$pass = htmlspecialchars($_POST['pass']);
$confirm = htmlspecialchars($_POST['confirm']);

if ($_POST['user'] == '') {
    $errors[1] = 'Please enter your username.';
    } else if (!preg_match('/^[a-zA-Z0-9]{4,25}$/', $_POST['user'])) {
        $errors[1] = 'Usernames must contain 4 to 25 alphanumeric characters.';
    } else {
        $errors[1] = '';
    }
if ($_POST['email'] == '') {
    $errors[2] = 'Please enter your email.';
    } else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $errors[2] = 'Email must be valid.';
    } else {
        $errors[2] = '';
    }
if ($_POST['pass'] == '') {
    $errors[3] = 'Please enter your password.';
    } else if (!preg_match('$\S*(?=\S{6,})\S*$', $_POST['pass'])) {
        $errors[3] = 'Passwords must be at least six characters long.';
    } else {
        $errors[3] = '';
    }
if ($_POST['confirm'] == '') {
    $errors[4] = 'Please confirm your password.';
    } else if ($_POST['confirm'] != $_POST['pass']) {
        $errors[4] = 'Passwords do not match.';
    } else {
        $errors[4] = '';
        $hash = password_hash ('$pass', PASSWORD_DEFAULT);
    }

if (time() < strtotime('+13 years', strtotime($birthday))) {
    $errors[5] = 'You are not at least thirteen years old.';
    } else {
        $errors[5] = '';
    }

$to = $email;
$subject = 'Rabbit Showing and Breeding Association Registration Confirmation';
$header = 'From: RSBA Registration <registration@rsba.net>';
$message = 'Hello ' . $user_name . '!

You are receiving this email because you recently registered at Rabbit Showing and Breeding Association at http://rsba.net

Your confirmation code is: ' . $confirm_code . '

Please copy and paste the code into the account confirmation page or follow the following link to get started:
http://rsba.net/registration/confirmation.php?confirm_code=' . $confirm_code . '

Please disregard this email if you did not sign up for RSBA.

Thank-you,
Rabbit Showing and Breeding Association

This is an automated message. Do not reply.';

if ($errors[1] == '' && $errors[2] == '' && $errors[3] == '' && $errors[4] == '' && $errors[5] == '') {
    $sentmail = mail($to,$subject,$message,$header);
    }

if($sentmail){
    include_once "../connect_info.php";

    $result = mysqli_query($con,"SELECT * FROM users WHERE user_name = '" . $user_name . "'");
    $row = mysqli_fetch_array($result);
    if ($row['user_name']) {
        $errors[6] = 'This username already exists.';
        }

    $result = mysqli_query($con,"SELECT * FROM users WHERE email = '" . $email . "'");
    $row = mysqli_fetch_array($result);
    if ($row['email']) {
        $errors[7] = 'A user is already registered with this email.';
        }

    if ($errors[6] == '' && $errors[7] == '') {
        $result = "INSERT INTO users (user_name, email, hash, birthday, confirm_code, access_level)
        VALUES ('$user_name', '$email', '$hash', '$birthday', '$confirm_code', '0')";
        if (mysqli_query($con, $result)) {
            header('Location:sent');
            } else {
        $error[8] = '<span class="error">You cannot be registered.</span>';
            }
        }
    }

mysqli_close($con);

}

0 个答案:

没有答案