Сбой выполнения оператора с php и mysql - PullRequest
0 голосов
/ 19 октября 2011

Я вставляю вывод пользователя следующим образом:

  $userName= SanitizeString($userName);
  $pass= SanitizeString($pass);
  $email= SanitizeString($email);

  $userName=mysql_real_escape_string($userName);
  $pass=mysql_real_escape_string($pass);
  $email=mysql_real_escape_string($email);

  $salt = 'SHIFLETT';
  $password_hash = md5($salt . md5($pass.$salt));

 mysql_query("INSERT INTO users (user_name,pass,email,reputation,role,ban,date) VALUES ('$userName', '$password_hash', '$email', '$reputation',   '$role','false','$date')" ) or exit(mysql_error());

Это функция SanitizeString ($ var):

   function SanitizeString($var)
   {
       $var=stripslashes($var);
       $var=htmlentities($var, ENT_QUOTES, 'UTF-8');
       $var=strip_tags($var);
       return $var;
   }

Но когда я пытаюсь найти пароль и имя пользователяс этим запросом.Сбой:

       $user_name=SanitizeString($user_name);
   $pass=SanitizeString($pass);


  $user_name=mysql_real_escape_string($user_name);
  $pass=mysql_real_escape_string($pass);


   $salt = 'SHIFLETT';
   $password_hash = md5($salt . md5($pass.$salt));

   $result=mysql_query("SELECT COUNT(*) AS Result FROM users WHERE user_name='$user_name' AND pass='$password_hash' LIMIT 1") or die(mysql_error());

, если число больше 0, чем это означает, что он нашел один результат, и пользователь должен войти в систему. Но этого не происходит .. Почему?

ОБНОВИТЬ большеэто:

   if(mysql_num_rows($result)>0)
       {
           echo "Login successful".mysql_num_rows($result);
           return $dataArray=TRUE;
       }
       else
       {
           echo "Login unsuccessful:".mysql_num_rows($result);
       }

1 Ответ

0 голосов
/ 19 октября 2011

Вы должны использовать GROUP BY, если хотите использовать COUNT(*), но вы можете получить количество строк с помощью mysql_num_rows(), как это.

$result=mysql_query("SELECT * AS Result FROM users WHERE user_name='$user_name' AND pass='$password_hash' LIMIT 1") or die(mysql_error());
$num_rows = mysql_num_rows($result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...