1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.4.7 Сравнение текста из запроса с текстом из поля информации

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем Beloff, 28.11.2015.

Загрузка
  1. Beloff

    Beloff Пользователь

    Регистрация:
    22.11.15
    Сообщения:
    10
    Симпатии:
    0
    Версия XF:
    1.4.3
    Форум использую для игрового сервера. Написал авторизацию, всё ок. Понадобилась авторизация ещё и по HWID в лаунчере. Сначала вписывал просто через phpmyadmin в таблице xf_users и своём столбце. Т.е. с форумом по сути hwid не связан. Сейчас же хочу привязать его к форуму. Чтобы юзер видел свой да и изменять через админку удобнее. Решил попробовать через кастомное поле (не плагин, а те, что уже вшиты в xenforo 1.4.7). Но теперь скрипт всегда говорит, что hwid неверный. Увидел, что field_id использует varbinary(25) да и сама информация в поле не в varchar. В итоге ошибок никаких не даёт, но всегда говорит, что hwid неправильный. Запрос идёт вида
    auth.php?username=login&password=pass&hwid=a98a67b84b6d1c6fd1576545acc2402b
    Вот часть кода:
    PHP:
            $sql "SELECT * FROM xf_user WHERE username='$username'";
                
    $query mysql_query($sql);
                if(!
    $query) {
                    exit(
    'Fail');
                }
                
    $member mysql_fetch_assoc($query);
                
    $id $member['user_id'];
            
    $Checkhwid mysql_query("SELECT * FROM xf_user_field_value WHERE user_id= '".$id."' AND field_id = '68776964' AND field_value = '".$hwid."'");
            if(
    mysql_num_rows($Checkhwid) > 0)
            {
                
    $Checkban mysql_query("SELECT * FROM xf_user WHERE username='$username' AND is_banned = '0'");
                if(
    mysql_num_rows($Checkban) != 0)
                {
                    echo 
    $hwid;
                }
                else
                {
                    echo 
    'ban';
                }
            }
            else
            {
                echo (
    'wrong_hwid' mysql_error());
            }
        }
    Само поле так и называется - hwid. Вместо цифер пробовал писать и его, всёравно говорит, что неверный hwid. Спасайте :D
     

Поделиться этой страницей