За последние 24 часа нас посетили 21584 программиста и 1018 роботов. Сейчас ищут 712 программистов ...

Не работает проверка на одинаковые никнеймы

Тема в разделе "PHP и базы данных", создана пользователем RMSGAMES, 15 май 2017.

  1. RMSGAMES

    RMSGAMES Новичок

    С нами с:
    15 май 2017
    Сообщения:
    2
    Симпатии:
    1
    Всем привет, столкнулся с такой проблемой, что у меня при регистрации не срабатывает проверка на схожесть имен. Помогите найти ошибку.

    PHP:
    1. <?php
    2. include("bl_Common.php");
    3.     $link=dbConnect();
    4.     $name = safe($_POST['name']);
    5.     $password = safe($_POST['password']);
    6.     $kills = safe($_POST['kills']);
    7.     $deaths = safe($_POST['deaths']);
    8.     $score = safe($_POST['score']);
    9.     $hash = safe($_POST['hash']);
    10.  
    11.     $real_hash = md5($name . $password . $secretKey);
    12.     if($real_hash == $hash)
    13.     {
    14. $check = mysql_query("localhost * FROM MyGameDB WHERE `name`= '$name'");
    15.  
    16. $numrows = mysql_num_rows($check);
    17. if ($numrows == 0 )
    18. {
    19.     $password = md5($password);
    20.     $ins = mysql_query("INSERT INTO  `MyGameDB` (`name` ,  `password`  ) VALUES ('".mysql_real_escape_string($name)."' ,  '".mysql_real_escape_string($password)."') ");
    21.     if ($ins){
    22.        
    23.                 die ("Done");
    24.     }else{
    25.         die ("Error: " . mysql_error());
    26.         }
    27. }
    28. else
    29. {
    30.     die("A user with this name already exists,\n please choose another one!");
    31. }
    32.     }
    33.     mysql_close( $link);
    34. ?>
    Заранее спасибо)
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    может вместо localhost должно быть SELECT?
    --- Добавлено ---
    mysql_* уже удалили в PHP 7, лучше использовать mysqli_* или PDO.

    правильно делаешь, что экранируешь, но тут:
    почему не экранируешь $name?
     
    RMSGAMES нравится это.
  3. RMSGAMES

    RMSGAMES Новичок

    С нами с:
    15 май 2017
    Сообщения:
    2
    Симпатии:
    1
    Большое спасибо, помогла замена localhost на SELECT

    А я пробовал разные способы)
     
    denis01 нравится это.