2016-04-24 3 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

Во-первых, вы никогда не должны помещать данные POST непосредственно в запросе. Вы просто просите о хаосе. Параметры mysqli Google. Во-вторых, попробуйте это, чтобы проверить данные, которые вы возвращаете из db: 'echo '

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

ответ

0

Заменить if ($data[0] > 0) { на if (mysqli_num_rows($run) > 0) {.

После этого вы также можете избавиться от линии $data = mysqli_fetch_array($run, MYSQLI_NUM);.

0

Попробуйте поставить уникальный ключ на поле пользователя в базе данных, и захватить повторяющегося кода запись об ошибке

 Смежные вопросы

  • Нет связанных вопросов^_^