1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Очередной ребус - помогите решить (passthru)

Тема в разделе 'PHP', создана пользователем wsok, 14 фев 2015.

  1. gouranga Эксперт Программист Пользователи Open Source Contributor White List

    Сообщения:
    67
    Лайки:
    142
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Netherlands Netherlands
    Именно, а php у него, держу пари, работает от какого-нибудь www-data. Проверить можно через конфиги apache или php-fpm, смотря как php настроен, либо через
    <?php echo passthru("id");
    От себя добавлю что все-таки не стоит давать права 777. Нужно понимать, что это будет адская дыра в безопасности.
    alexdnepro нравится это.
  2. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Я просто сталкивался с этой проблемой когда делал функцию получения списка кланов для ЛК на 1.3.6. И понял, что эта затея провальная, т.к. стоит запустить геймдб от рута (а это на рабочем сервере в 99,9% случаев будет делаться постоянно), как он тут же меняет все права и владельца файлов базы данных, делая их недоступными для запуска от веб юзера.
    gouranga нравится это.
  3. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    сервер тестовый локальный, потому ничего страшного нет в безопасности.


    [​IMG]

    и что из этого?
  4. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Из этого следует, что
    chown -R www-data /home/gamedbd
    вместо home - подставь свой путь, команду эту выполнять из консоли под рутом. Потом пробуй получить через веб скрипт нужные данные
  5. pdev 14:23 Команда форума Администратор Программист Open Source Contributor

    Сообщения:
    1.409
    Лайки:
    1.407
    Пол:
    Мужской
    Репутация:
    7
    Команда:
    Indy
    Страна:
    Turkey Turkey
    держу пари, что если что-то у тебя не выйдет на боевом, ты тупо установишь права 777 :D
  6. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    помогло )
    ну на боевом 777 даю только тем файлам или папкам, который точно требуют этих прав.
  7. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Если честно, подобные права нужны единицам файлов на игровом сервере (и то в большинстве случаев можно обойтись сменой владельца).
  8. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    ок, кстати не в курсе, пакет factionname кроме айди клана и его названия, что то ещё хранит в себе? Например айди мастера? А то параллельно рассматриваю возможность получения пакетом списка кланов, но к сожалению factioninfo, если ты читал ту тему требует распаривать ещё и вектор (вложенные массивы). Потому и подумал насчет factionname, удалось декодировать только айди клана и его имя, но там ещё вроде 4 байта, хз что они означают, но в айди мастеров кланов они не декодируются...
    --- добавлено: 16 фев 2015 в 09:36 ---
    Код:
                    $strlarge = unpack( "H", substr( $buf, 2, 1 ) );
                if(substr($strlarge[1], 0, 1) == "8")
                {
                    $start = 13;
                }
                else
                {
                    $start = 12;
                }
    
                    $clancount = unpack( "c", substr( $buf, $start, 2 ) );
                $start = $start+2;
                            for($c=0; $i<$clancount[1]; $i++)
                {
    
                    $namelarge = unpack( "c*", substr( $buf, $start, 1 ) );
                    $start = $start+1;
      
                    $clanname = iconv( "UTF-16", "UTF-8", substr( $buf, $start, $namelarge[1] ) );
                    $start = $start+$namelarge[1];
                  
                    $clan2 = unpack( "C*", substr( $buf, $start, 4 ) );
                    $start = $start+4;
                  
                    $clan_id = unpack( "C*", substr( $buf, $start, 2 ) );
                    $start = $start+2;
                  
      
                  
                  
                $clan_list .="<font color='red'>{$clanname} ID: $clan_id[1] | $clan2[1] | </font><hr>";
                      
                }
    Последнее редактирование модератором: 24 фев 2015
  9. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Насчет factionname не изучал, я использую таблицу factioninfo, там все что надо есть.
  10. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    В общем я понял, что метод passthru и подобные мягко говоря плохой способ получения информации из бд, время от времени эта функция отказывается работать. Потому мне все же придется учится работать с хекс данными в пакетах... чем и занимаюсь уже )
    --- добавлено: 16 фев 2015 в 19:36 ---
    ну как раз её и разбираю, так понимаю там два участка с вектором? Только не пойму, зачем мастер в цикле вектора если он и так один?
    Последнее редактирование модератором: 24 фев 2015
  11. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    не понял суть вопроса
  12. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    ну мастер клана ведь один? Но в структуре пакета я вижу, что мастер клана указан как бы в массиве, будто их может быть более одного... Ну и вообще, в пакете этом ведь два массива, я не ошибаюсь? на мастеров и мемберов?
  13. Joslian AngeliCore Программист Пользователи Open Source Contributor

    Сообщения:
    1.051
    Лайки:
    537
    Пол:
    Мужской
    Репутация:
    2
    Мастер один
  14. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Ранее уже писали структуру
    Код:
    type = struct GMember  {
        unsigned int rid;
        char role;
    }
    
    type = struct GFactionInfo  {
        unsigned int fid;
        Octets name;
        char level;
        GMember master;
        GetFactionDetail::GMemberVector member;
        Octets announce;
        Octets sysinfo;
    }
    Octets тоже по сути массив, из байт или символов.
  15. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    да я понял, просто вирав приводил пример структуры:
    Код:
        'fid'=>'int',
            'name'=>'string',
            'level'=>'byte',
            'master'=>[
                'roleid'=>'int',
                'role'=>'byte'
            ],
            'member'=>[
                'roleid'=>'int',
                'role'=>'byte'
            ],
            'announce'=>'string',
            'sysinfo'=>'octets'
    и там просто мастер и мембер указаны будто как векторы оба.
    --- добавлено: 16 фев 2015 в 21:34 ---
    вот и пытался понять, где собака порылась )
    --- добавлено: 16 фев 2015 в 21:36 ---
    спс, а то уже хотел пытаться его в векторе декодировать ))
    Последнее редактирование модератором: 24 фев 2015
  16. vieraw Пользователи

    Сообщения:
    54
    Лайки:
    27
    Репутация:
    0
    И где я писал про то, что master vector?
  17. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    ну я и не говорю, что ты говорил о векторе, просто я сам воспринял тот порядок, как они там указаны, что вектор. Теперь понимаю, что только список мемберов идет как цикл, мастер всегда один.
  18. mobile Old school Пользователи

    Сообщения:
    45
    Лайки:
    5
    Репутация:
    0
    Дельнее совет только в отдельном контейнере поднимать свежую копию gamedbd, а после записи в sql - удалять. Могу скинуть блок на TC, если CI уместно конечно.
  19. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    А ещё лучше конвертить базу в BDB (она в WBD в пв хранится) и спокойно читать её. :p
  20. mobile Old school Пользователи

    Сообщения:
    45
    Лайки:
    5
    Репутация:
    0
    Очень хорошая идея. готовые решения уже есть?
Черновик сохранён Черновик удалён
Similar Threads
  1. Constor
    Ответов:
    3
    Просмотров:
    1.121
  2. GreyDev
    Ответов:
    5
    Просмотров:
    1.815
  3. НеВаЖнО
    Ответов:
    1
    Просмотров:
    1.458
  4. НеВаЖнО
    Ответов:
    10
    Просмотров:
    3.323
  5. Raydman
    Ответов:
    2
    Просмотров:
    1.336
Загрузка...

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