2013-09-30 3 views
0

Я проверил этот код снова и снова вручную и с помощью проверок кода, но не вижу моей ошибки. Я создаю страницу регистрации, которая должна давать ошибки, если какое-либо из полей осталось пустым или пароли не совпадают. Форма выглядит просто отлично, но когда я пытаюсь зарегистрироваться, я получаю сообщение об ошибке «Произошли следующие ошибки: введите пароль». Повторите попытку ». Это происходит независимо от того, что я вводил в качестве пароля.Страница регистрации не регистрируется

Кроме того, в форме должны быть указаны данные, которые были введены при выдаче сообщения об ошибке, но по какой-то причине он заполняет фамилию и поля электронной почты, но не имя. Опять же, глядя на сценарий, я не понимаю, почему это так.

Я изучаю основную книгу - PHP & MySQL в простых шагах, которые могут быть не самыми лучшими, но я хочу закончить его, прежде чем переходить на что-то другое.

<!DOCTYPE HTML> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Providing a register page</title> 
</head> 
<body> 
<?php 
$page_title = 'Register' ; 
include ('includes/header.html'); 

if ($_SERVER[ 'REQUEST_METHOD' ] == 'POST') { 
    require ('../connect_db.php'); 
    $errors = array() ; 

    if (empty($_POST[ 'first_name' ])) { 
     $errors[] = 'Enter your first name.'; 
    } else { 
     $fn = mysqli_real_escape_string($dbc, trim($_POST[ 'first_name' ])); 
    } 

    if (empty($_POST[ 'last_name' ])) { 
     $errors[] = 'Enter your last name.'; 
    } else { 
     $ln = mysqli_real_escape_string($dbc, trim($_POST[ 'last_name' ])); 
    } 

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

    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[] = 'Enter your password.'; 
    } 
    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>'; 
      } 
    } 

    if (empty($errors)) { 
     $q = "INSERT INTO users (first_name, last_name, email, pass, 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="login.php">Login</a></p>'; 
     } 
    mysqli_close($dbc) ; 
    include ('includes/footer.html'); 
    exit(); 
} 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); 
} 
?> 

<h1>Register</h1> 
<form action="register.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' ] ; ?>"> 
    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

Пожалуйста, используйте ''

ответ

2

Вы забыли скобку ")"

$q = "INSERT INTO users 
(first_name, last_name, email, pass, reg_date) 
VALUES ('$fn', '$ln', '$e', SHA1('$p'), NOW()) " ; 
              ^^ Here 
+0

Скобка! = Кронштейн –

+0

@RUJordan .. Спасибо :) – aldanux

+0

Gotchu brah! ;) –

Смежные вопросы