2017-08-19 14 views
-1

登録システムの完了中にエラーが発生しました。データベース接続が正常に動作しています。登録PHPコードエラー

登録PHPコード:

require 'db.php'; 

$message = ''; 

if(!empty($_POST['full_name']) && !empty($_POST['email']) && !empty($_POST['username']) && !empty($_POST['password']) && !empty($_POST['confirm_password'])): 

    // Enter the new user in the database 
    $sql = "INSERT INTO users (full_name, email, username, password) VALUES (:email, :password)"; 
    $stmt = $con->prepare($sql); 

    $stmt->bindParam(':email', $_POST['full_name']); 
    $stmt->bindParam(':email', $_POST['email']); 
    $stmt->bindParam(':email', $_POST['username']); 
    $stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_BCRYPT)); 

if($stmt->execute()): 
header('Location: index.php'); 
    $message = 'Successfully created new user'; 
else: 
    $message = 'Sorry there must have been an issue creating your account'; 
endif; 

endif; 
+1

今後、デバッグに役立つエラーメッセージを投稿に追加してください。 – Script47

答えて

2
あなたがクエリに含まれていない値にパラメータを結合している

変化に

$sql = "INSERT INTO users (full_name, email, username, password) VALUES (:email, :password)"; 

$sql = "INSERT INTO users (full_name, email, username, password) VALUES (:full_name, :email, :username, :password)"; 

と変化に

$stmt->bindParam(':email', $_POST['full_name']); 
$stmt->bindParam(':email', $_POST['email']); 
$stmt->bindParam(':email', $_POST['username']); 
$stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_BCRYPT)); 

$stmt->bindParam(':full_name', $_POST['full_name']); 
$stmt->bindParam(':email', $_POST['email']); 
$stmt->bindParam(':username', $_POST['username']); 
$stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_BCRYPT)); 

は今、あなたが実際にクエリに正しい値を渡しています。次の

をメモ:

  • あなたはユーザー入力をサニタイズ/検証していることを確認します。
  • exitheaderを使用して、エラーを防ぐようにしてください。
  • $messageの値を設定していますが、出力していません。