2015-04-30 13 views
1

Я пробовал разные вещи с помощью своего кода, чтобы проверить его на наличие существующего имени пользователя, но я не могу его достичь. Он не вставляет базу данных, если альфа-код неверен. Я пробовал писать, но это не сработает!Проверка наличия имени пользователя

<?php 
if (isset($_POST['submit'])) { 
    if (!empty($_POST['user']) && !empty($_POST['pass']) && !empty($_POST['alphakey'])) { 
     //mysql_real_escape_string() escapes special characters in a string for use in an SQL statement 
     $user  = mysql_real_escape_string($_POST['user']); 
     $pass  = mysql_real_escape_string($_POST['pass']); 
     $alphakey = mysql_real_escape_string($_POST['alphakey']); 

     $con = mysql_connect('localhost', '<UserName>', '<Password') or die(mysql_error()); 
     mysql_select_db('user') or die("cannot select DB"); 

     $query = mysql_query("SELECT * FROM login WHERE user='" . $user . "'"); 

     $numrows = mysql_num_rows($query); 

     // if user doesn't exist... 
     if ($numrows == 0) { 
      $encrypt_password = md5($_POST["pass"]); 
      $query_key = mysql_query("SELECT * FROM regkey WHERE alphakey='" . $_POST["alphakey"] . "'") or die(mysql_error()); 
      $check_key = mysql_num_rows($query_key); 


      if ($check_key > 0) { 
       $sql = mysql_query("INSERT INTO login (user,pass) 
        VALUES ('" . $_POST["user"] . "','$encrypt_password')") or die(mysql_error()); 
      } 
     } // brace for if($numrows==0) 

     if ($sql) { 
      echo "<center>Success, You're now registered</center><br/>"; 
     } else { 
      echo "<center>Invalid Alpha Key, Please try again!</center><br/>"; 
     } 
    } 
} 
?> 
+0

попробовать этот '$ запрос = mysql_query ("SELECT * FROM входа WHERE User = '$ пользователя'");' –

+1

лучше использовать подготовленные заявления и [ PDO] (http://php.net/manual/en/book.pdo.php) – Horen

+0

какой у вас ** вопрос ** ?? whats ** ошибка ** ?? –

ответ

1

Вы должны проверить это,

$check_key = mysql_num_rows($query_key); 


if($check_key < 1){ 

    $sql = mysql_query("INSERT INTO login (user,pass) 
       VALUES ('".$_POST["user"]."','$encrypt_password')") 

     or die(mysql_error()); 
    } 
} // brace for if($numrows==0) 
+0

Будет ли это отвечать на мой вопрос? – user3765978

+0

Я пробовал это, и он ничего не делает, все, что он делает, просто дает мне ошибку «Invalid Alpha Key». – user3765978

+0

Почему вы используете sizeof в своем коде ??? – Saty

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