Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Помогите с php

  • Автор темы Автор темы wenstony
  • Дата начала Дата начала
ウェンストニー
Участник
Участник
Статус
Оффлайн
Регистрация
6 Дек 2017
Сообщения
936
Реакции
199
Ошибка
[B]Warning[/B]: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in [B]reset.php[/B] on line [B]48[/B]

Сам скрипт
$sql = mysql_fetch_assoc(mysql_query("UPDATE `xf_user` SET `hwid` = 'reset-hwid' WHERE `Username` = '$user'"));
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Лс
 
Ошибка
[B]Warning[/B]: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in [B]reset.php[/B] on line [B]48[/B]

Сам скрипт
$sql = mysql_fetch_assoc(mysql_query("UPDATE `xf_user` SET `hwid` = 'reset-hwid' WHERE `Username` = '$user'"));

PHP:
Expand Collapse Copy
$query = mysql_query("UPDATE `xf_users` SET `hwid`='new_hwid' WHERE `username`='{$username}'");
if (!$query)
    throw new Exception(mysql_error(), mysql_errno());

var_dump($query);//bool|int
А вообще, в коде есть инъекция и XSS, поэтому советую забыть про древний mysql_* и юзать PDO + prepared statement + фильтровать запросы, ну и юзать user_id вместо юзернеймов
Простой пример:
PHP:
Expand Collapse Copy
use PDO, PDOException;

$request  = $_POST;
$username = htmlspecialchars(trim($request['username']));

try
{
    $pdo = new PDO($conn, $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = sprintf("UPDATE %s SET %s = ? WHERE %s = ?;", // т. к. в запрос входит всего лишь 1 параметр - достаточно обработаь только "username"
           $this->quoteIdent('xf_users'), $this->quoteIdent('hwid'),
           $this->quoteIdent('username')); // $pdo->quote($value)

    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute([$newHwid, $username]);

    var_dump($result);
}
catch (\Exception | \PDOException $err)
{
    return $err->getMessage() . PHP_EOL;
}

public function quoteIdent($string): string
{
    return "`".str_replace("`", "``", $string)."`";
}
 
Назад
Сверху Снизу