登録画面を作っています。
データベースに同じemailがあったら登録させない処理を書きました。
countを使い、登録させていた時は1、されてない時は0で分岐するという感じです。
しかし、同じemailが登録されても0が出ます。
同じemailとpasswordが登録されていた場合にしか1が出ないのですが原因がよくわかりません。
教えていただけると助かります。
php
1//ログインIDの暗号化 2 $encrypt = openssl_encrypt($email,'aes-256-ecb',$password); 3//パスワードのハッシュ化 4 $hash = password_hash($password,PASSWORD_DEFAULT); 5 6 7//データベース接続 8 $conn = dbConnect(); 9 10 $sql = "SELECT COUNT(*) AS count FROM user_date WHERE email ='$encrypt'"; 11 $stmt = $pdo->query($sql); 12 $result = $stmt->fetchAll(PDO::FETCH_ASSOC); 13 foreach ($result as $row) { 14 $count = $row['count']; 15 } 16 $count = intval($count); 17 var_dump($count); 18 19 if($count === 0){ 20 $sql = "INSERT INTO user_date (name, password, email) VALUES (?, ?, ?)"; 21 $stmt = $pdo->prepare($sql); 22 $stmt->bindValue(1, $name, PDO::PARAM_STR); 23 $stmt->bindValue(2, $hash, PDO::PARAM_STR); 24 $stmt->bindValue(3, $encrypt, PDO::PARAM_STR); 25 $stmt->execute(); 26 $pdo = null; 27 echo "会員登録が完了しました。<br>"; 28 echo "<a href='login.html'>ログイン画面</a>"; 29 } 30 31 if($count === 1){ 32 echo "すでに登録済みです"; 33 echo "<a href='login.html'>ログイン画面</a>"; 34 } 35 $pdo = null;
回答4件
あなたの回答
tips
プレビュー