データベースに登録されているusernameは登録されないようにしたい。
発生している問題
エラーは出ないんですが、すでに登録されているusernameまでも登録されてしまいます;
登録されているusernameとpasswordを2つ両方入力したら、ちゃんと最初のif文が処理されます。
それ以外はすべて登録されてしまいます、、、
### 該当のソースコード <?php session_start(); if(empty($_POST["username"]) || empty($_POST["password"])) { header("Location: signin.php?err=2"); exit(); } //重複チェック require_once("dbconnect.php"); //データベース内のusernameを取得 $sql = "SELECT * FROM users WHERE username=:username AND password=:password"; $stmt = $pdo->prepare($sql); $stmt->bindValue(":username", $_POST["username"], PDO::PARAM_STR); $stmt->bindValue(":password", $_POST["password"], PDO::PARAM_STR); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); //DB内に登録されているusernameと重複していない場合は、登録する if(empty($row['username'])) { $sql = "INSERT INTO users(username, password) VALUES(:username, :password)"; $stmt = $pdo->prepare($sql); $stmt->bindValue(":username", $_POST["username"], PDO::PARAM_STR); $stmt->bindValue(":password", $_POST["password"], PDO::PARAM_STR); $stmt->execute(); header("Location: done.php"); } else { header("Location: insert.php"); exit(); } ?> ```ここに言語名を入力 php
試したこと
isset関数やcount関数を使ってみましたが、php勉強中の初心者なのであまりよくわからなくて、困っています。
よろしくおねがいします!
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/06 21:07