2017-10-05 13 views
0

私のデータベースにユーザー名または電子メールアドレスがすでに存在するかどうかを確認しようとしています。私は現在自分のデータベースに接続し、登録フォームからデータを取得できます。しかし、私のSQLステートメントは、自分のデータベースが存在するかどうかをチェックすることができません。どんな助けでも感謝しています。ユーザーアカウントと電子メールアドレスが重複していないか確認してください

<?php 

require 'database.php'; 
$conn = Connect(); 

if ($conn == true){ 
    echo "Successfully connected to database. <br><br>";} 

    $username  = $_POST['screenname']; 
    $password  = $_POST['password']; 
    $email   = $_POST['email']; 

    echo "$username<br>"; //just checkin if it can grab data 
    echo "$password<br>"; 
    echo "$email<br>"; 


    $sql=mysql_query("SELECT * FROM users WHERE screenname = '$username'"); 

    if(mysql_num_rows($sql)>=1) 
    { 
     echo "Username already exists"; 
    } 
    else 
    { 
     //insert query goes here 
    } 


    $sql2=mysql_query("SELECT * FROM users WHERE email = '$email'"); 

    if(mysql_num_rows($sql2)>=1) 
    { 
     echo "Email already exists"; 
    } 
     else 
    { 
      //insert query 
    } 


    ?> 
+0

が動作していないものを一部、正常に見えますか? – LordNeo

+0

thats私はあまりにも思ったことは、私は登録のための同じユーザー名を入力したときにその文をヒットしないと、ユーザー名が存在する場合はエコー..それは何もしません。 – Gillky

+0

もしあなたが最初に 'mysql_num_rows'の結果をエコーし​​て本当に何を期待しているのかを確認することができます – Swellar

答えて

0

ロジック、プログラミングおよびセキュリティ(SQLインジェクション攻撃)修正されたバグ:

<?php 

require 'database.php'; 
$conn = Connect(); 

if ($conn == true){ 
    echo "Successfully connected to database. <br><br>"; 
} 

$username  = $_POST['screenname']; 
$password  = $_POST['password']; 
$email   = $_POST['email']; 

echo "$username<br>"; //just checkin if it can grab data 
echo "$password<br>"; 
echo "$email<br>"; 


$sql= sprintf("SELECT * FROM users WHERE screenname='%s' OR email='%s'", 
     mysql_real_escape_string($username), 
     mysql_real_escape_string($email) 
    ); 

if(mysql_num_rows($sql)>=1) 
{ 
    echo "Username or e-mail already exists"; 
} 
else 
{ 
    //insert query goes here 
} 
+0

また、Object Programmingを学ぶべきです、それは2017年です! PHPオブジェクトを使用したMySQL接続:PDO! https://www.w3schools.com/PhP/php_mysql_connect.asp – JerzySBG

関連する問題