2016-04-24 13 views
-2

ユーザー名が既に登録されているかどうかを確認するコードに問題があります。私はここでさまざまなソリューションを調べるために検索を行い、コードの一部を実装しましたが、まだ動作させるようには見えません。私は同じユーザー名を複数回登録しようとしましたが、ユーザー名が既に使用されていることを知らせることなく登録することができます。私はphpとmysqlを初めて使ったので、これが解決しやすいと謝ります。PHPユーザーが既に登録されているか確認してください

私は複数のソリューションを試しましたが、どれも私にとってはうまくいかないようです。これは私のコードの私の最近の反復です。

<?php 
session_start(); 

if (isset($_POST['submit'])) { 

    $dbCon = mysqli_connect("localhost", "root", "badassrichv", "FootballDB"); 

    if (mysqli_connect_errno()) { 
    echo "Failed to connect: " . mysqli_connect_error(); 
    } 

    $username = strip_tags($_POST['name']); 
    $password = strip_tags($_POST['password']); 
    $email = strip_tags($_POST['email']); 

$checkName = 'SELECT * FROM user WHERE username = "$username"'; 
$run = mysqli_query($dbCon, $checkName); 
$data = mysqli_fetch_array($run, MYSQLI_NUM); 

if ($data[0] > 0) { 
    echo "<script>alert('Name already registered. Input a different name')</script>"; 
    exit(); 

} else { 

$sql = "INSERT INTO user (username, password, email) VALUES ('$username', '$password', '$email')"; 

} 

....More code 
+0

をキャプチャするようにしてください。あなたはただの騒乱を求めているだけです。 Googleのmysqliパラメータ。次に、dbから戻ってくるデータを調べるためにこれを試してください: 'echo '

'.print_r($data, true).'
';' – larsAnders

答えて

0

if (mysqli_num_rows($run) > 0) {if ($data[0] > 0) {を交換してください。

これを実行した後に、$data = mysqli_fetch_array($run, MYSQLI_NUM);行も取り除くことができます。

0

は、クエリに直接POSTデータを入れてはいけません、データベース内のユーザー名の列に一意のキーを入れて、まず重複したエントリのエラーコード

関連する問題