私は自分の音楽サイトのコードを作成しています。これは登録フェーズの一部です。私は、既存の電子メールアドレスが見つかった場合にデータベースをチェックして、 "電子メール("電子メールアドレス ")はすでに存在しますが、見つからなければ、データベースに情報を挿入します。発見されたHTMLフォームから送信したものと同様の対処が、見つからメールがない場合、システムはその後に停止し、何もしません。誰かが私が間違っていたところ、私が把握助けることができます。データの冗長性を避ける
if ($_POST['submit2']){
$fname = $_POST['Fname'];
$sname = $_POST['Sname'];
$email = $_POST['Emailaddress'];
$pass = $_POST['newpassword'];
$sql= "select * from cust_information where email = '$email';";
$results = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$row = mysqli_fetch_array($results) or die(mysqli_error($conn));
if (count($row) < 0)
{
$sql2 = "insert into cust_information (firstName, lastName, email, password) values(`$fname`, `$sname`, `$email`, `$pass`)";
$results2 = mysqli_query($conn, $sql) or die(mysqli_error($conn));
if (!$results2){
echo "successfully uploaded cust";
}
}else{
echo "email <strong>".$row["email"]. " </strong> already Exist";
}
}
このコードはSQLインジェクションに広く開いていますが、バグを修正するには ''$ fname''引用符を使用してください。文字列ではなくテーブルとフィールド名を引用するために引用符が使われます。 – xander
@Banelegumata 'count'が0より小さい整数を返すかどうかチェックしています。これは不可能で、内部のコードは決して実行されません。 – Daedalus
does not work ...フィールドはdbに追加されません。この問題を整理するとすぐに、SQLインジェクションに苦労します。 –