Соответствующие строки в PhP / MySQL

0

Имя пользователя var $необходимо проверить на соответствие. Как я могу это сделать?

Прогресс:

if (isset($_GET["username"]) && !empty($_GET["username"])) 
{
    $username = $_GET['username'];

    $usercheck = mysql_query("SELECT * FROM wp_users WHERE user_login=".$username."",$con);
    closeCursor($usercheck);
Теги:

3 ответа

2
Лучший ответ

Сделайте это так:

1) Выйдите из переменной, чтобы предотвратить SQL-инъекцию, используя mysql_real_escape_string.
2) Используйте кавычки вокруг переменной в предложении where, потому что это строка.
3) Проверьте, было ли возвращено более 0 строк или не используется mysql_num_rows.

 $username = mysql_real_escape_string($_GET['username']);
 $usercheck = mysql_query("SELECT * FROM wp_users WHERE user_login='".$username."'",$con);

 if(mysql_num_rows($usercheck)>0)
      echo 'USER FOUND';
 else
      echo 'NOT FOUND';
  • 0
    Дополнительные очки для ясности, я ценю решение.
1

Привет, я рекомендую использовать sprintf по соображениям безопасности.

$query = sprintf("SELECT * FROM friends WHERE user='%s' AND password='%s'",
    mysql_real_escape_string($_GET['username']),
    mysql_real_escape_string($_GET['password']);

// Perform Query
$result = mysql_query($query);

// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}
0

mysql_num_rows() сообщит вам, соответствуют ли какие-либо пользователи предоставленному имени пользователя. Вы также должны использовать mysql_real_escape_string, чтобы гарантировать, что ваше имя пользователя безопасно экранировано для использования в запросе. Также - убедитесь, что ваши строки - это кавычки (с использованием одиночных кавычек) внутри запроса mysql.

Что-то вроде этого должно заставить вас указывать в правильном направлении:

$username = mysql_real_escape_string($_GET['username'], $con);

$usercheck = mysql_query("SELECT * FROM wp_users WHERE user_login='".$username."'",$con);
if( mysql_num_rows($usercheck) <= 0 ) {
   // error: no such user was found
} else {
   // found one or more matching users
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню