Ответы пользователя по тегу PHP
  • Как настроить "бесконечные" поддомены?

    valerium
    @valerium
    Изобретая велосипед
    Используйте
    ServerAlias *.siteX.ru
    в разделе VirtualHost каждого домена.
    Ответ написан
  • Как выдрать этот код?

    valerium
    @valerium
    Изобретая велосипед
    Договориться с автором сайта и уважать чужой труд?
    Ответ написан
    Комментировать
  • Сайт в сайте без iframe?

    valerium
    @valerium
    Изобретая велосипед
    echo file_get_contents('http://www.ya.ru');
    Ответ написан
    Комментировать
  • Как сохранить JSON строку в файл?

    valerium
    @valerium
    Изобретая велосипед
    Оформите, пожалуйста, свой код по-человечески. Там только объявление двух функций и ни одного их вызова. Но вообще примерно такая строка Вам поможет.
    file_put_contents('/path/to/my.json', json_encode($data));
    Ответ написан
    Комментировать
  • Если человек сидит через прокси на сайте, то что будет показано в $_SERVER['REMOTE_PORT'] порт браузера пользователя или порт прокси сервера?

    valerium
    @valerium
    Изобретая велосипед
    Порт, который прокси сервер открыл для исходящего соединения, произвольное число. Причём это не тот порт, на который подключился клиент.
    Ответ написан
    2 комментария
  • Как зайти в почту гмайл от сервера?

    valerium
    @valerium
    Изобретая велосипед
    Вообще, логично было бы использовать Gmail API. У них даже готовый код для PHP есть.
    Ответ написан
  • На каком примере объяснить цикл do-while для студентов на php?

    valerium
    @valerium
    Изобретая велосипед
    Не уверен, что подходит для новичков, но как вариант — получение данных, которые могут быть разбиты на несколько страниц. Например, API Яндекс.Расписаний отдаёт не более 100 элементов за раз. На случай, если элементов больше, есть специальная секция pagination и там булевое поле has_next. То есть код должен выглядеть как-то так.
    $page = 1;
    do {
        $data = jsondecode(file_get_contents("https://api.rasp.yandex.net/...&page=$page"));
        // bla-bla-bla
        $page++;
    } while ($data['pagination']['has_next'])


    То есть, do while нужен там, где не обойтись одним действием для проверки условия.
    Ответ написан
    Комментировать
  • Почему у нуба возникает ошибка «Call to a member function fetch_array() on a non-object» в MySQL?

    valerium
    @valerium
    Изобретая велосипед
    Вы пытаетесь вызвать метод у сущности, которая не является объектом.

    Если коротко, то в строке с ошибкой нужно $mysql-> заменить на $result-> и убрать $result из скобок.

    Если подробнее, то строка
    $result = $mysqli->query("SELECT id FROM users WHERE login='$login'");

    в переменной $result создала объект результирующего набора. У этого объекта есть метод fetch_array(), который при каждом вызове возвращает одну строку из набора. Вы же попытались вызвать этот метод у переменной, которая не объявляется в приведённом участке кода, но явно содержит что-то, не являющееся результирующим набором.
    Ответ написан
  • Как подключить socket_create()?

    valerium
    @valerium
    Изобретая велосипед
    При подключении расширений PHP в Windows нужно внимательно смотреть на то, с каким ключами и каким компилятором был собран сам PHP. Для этого в своём phpinfo() внимательно смотрите в строку Configure Command и выбирайте одну из версий здесь.
    Ответ написан
    1 комментарий
  • Как с помощью PHP отправлять http запросы?

    valerium
    @valerium
    Изобретая велосипед
    Боюсь, с помощью средств PHP, доступных через web-интерфейсы (mod_php, [fast-]cgi) этого сделать нельзя, и, откровенно говоря, слава Богу!

    Вообще же slow HTTP POST несложно организовать, открыв ручками сокет. А вот рекурсивно запрашивать себя не получится никак, потому что HTTP-сервер прибьёт процесс PHP сразу же после обрыва соединения, и правильно сделает. Для этих целей существует CLI-интерфейс. Тут на Ваш вкус можно писать демона, либо запускать из планировщика.

    P.S. Пакости пакостить — трижды фу.
    Ответ написан
  • Можно ли изменять в файле CSV конкретную строку?

    valerium
    @valerium
    Изобретая велосипед
    А что мешает поступить как белый человек, то есть распарсить CSV, пройтись по нему циклом и исправить нужные значения, а потом записать эти данные обратно в файл?

    В конце концов, если файл огромен (сотни мегабайт), можно его построчно читать, править и записывать. Хотя для оптимизации работы с диском лучше не по одной строке, а по десятку (смотря, какой длины строки).

    Да, на огромном файле скрипт работать будет долго, может, даже несколько минут. Но файлы — они такие. Нужна скорость — берите базу данных.

    Исправить только одно значение теоретически можно, но геморроя не оберётесь. Например, представьте ситуацию, когда нужно не просто изменить пару байт, а добавить их в середину файла.
    Ответ написан
  • Известны php session, что можно выташить ещё с сайта? и как себя обезопасить?

    valerium
    @valerium
    Изобретая велосипед
    Если подменить сессию, то можно получить доступ ко всему, что пользователь может сделать и увидеть, залогинившись.

    Обезопаситься можно несколькими способами, в зависимости от того, насколько критичную инфу может получить злоумышленник и насколько опасные действия он может совершить.

    • Сессию можно привязать к IP и браузеру, это защитит от подбора чужого ID.
    • Идентификатор сессии должен быть одноразовым и обновляться при каждом обращении к серверу.
    • У идентификатора должен быть разумный срок годности (несколько часов или суток, в зависимости от уровня паранойи).
    • Куки нужно передавать только через HTTPS, это до некоторой степени исключит перехват ID сессии человеком-в-середине.
    • Подтверждение критичных действий по другому каналу (почта, SMS, Telegram и т. п.).


    И да, что за файл Вы такой нашли-то? Это, случаем, не тот самый, в который PHP, собственно, и пишет свои сессии? Если нет, то такой файл не нужен. Если да, то в порядке паранойи можно ограничить доступ к нему на уровне файловой системы, но вообще достаточно, чтобы не было доступа из web-а.
    Ответ написан
    Комментировать
  • Как получать котировки с биржи?

    valerium
    @valerium
    Изобретая велосипед
    Подавляющее большинство бирж отдают котировки по протоколу FIX, однако, как тут уже отмечали, реальновременные котировки стоят немалых денег. Кроме того, бирж много, и договариваться со всеми и разбираться с особенностями реализации протокола каждой биржей - то ещё геморроище.

    Однако для анализа Вам вполне может хватить котировок из вторых или третьих рук. Для этого можно договориться за уже гораздо более умеренную плату с каким-нибудь посредником. Например, довольно хорош Thomson Reuters, хотя о расценках вообще ничего не знаю. Можно так же найти какого-нибудь брокера, который даст вам доступ к своим серверам через FIX. Однако учтите, что Вам нужен полноценный брокер, который имеет выход на биржу и непосредственное исполнение, а не "кухня".
    Ответ написан
    Комментировать
  • В каком редакторе написана Joomla?

    valerium
    @valerium
    Изобретая велосипед
    Определить по коду, что кодер использовал автоподстановку? Да Вы хиромант, батенька! :-)

    Joomla написана сообществом, у неё сотни авторов. И у каждого свой любимы редактор. Если правда интересно, попробуйте опросить хотя бы ключевых разработчиков.
    Ответ написан
  • Как убрать лень начинающему программисту?

    valerium
    @valerium
    Изобретая велосипед
    Во-первых, откажитесь от видео-уроков и возьмитесь за учебники. Ни один видео-урок не даст столько знаний и навыков, как хорошая книга. Одно дело - растянутое на полтора часа объяснение того, как написать элементарный "Hello, world!", а другое - хороший учебник, где каждое предложение содержит крупицу новой информации. Плюс видео делает Вас пассивным наблюдателем, а книгу в любой момент можно отложить и попробовать описанное на практике. Плюс, её можно читать на диване ;-) Но это так, к слову.

    Если лень учить, значит, не хватает мотивации. Тут два варианта.

    Первый уже предлагали здесь: найти интересную задачу и изучать технологии под неё. Например, я хочу написать скрипт, который составит список всех возможных шахматных партий хотя бы на 23 хода, изучаю для этого возможности SQL вообще и PostgreSQL в частности, далее в очереди MongoDB. Хотя мне проще, мне в принципе интересно читать тематические учебники.

    Второй вариант - забить. Если вопрос не интересен и к нему не лежит душа, зачем мучить себя? Себя-то ладно, а представьте, сколько мучений испытают те, кто вынужден будет читать Ваш код, написанный без любви?
    Ответ написан
    Комментировать
  • Отображение переменной в одном файле, но отключение в другом?

    valerium
    @valerium
    Изобретая велосипед
    Объявите в первом файле переменную или константу. Из второго файла проверьте, объявлена ли эта переменная или константа. В зависимости от этого, выводите или не выводите текст. Можно ничего специально не объявлять, а проверить существование функции/переменной/константы, гарантированно имеющейся в первом файле.

    Примерно так модули движков убеждаются, что они именно включены движком, а не запущены как отдельный скрипт.
    Ответ написан
  • Знаете ли Вы PHP скрипт для записи идей?

    valerium
    @valerium
    Изобретая велосипед
    Я для этих целей использую DokuWiki, размещённый на домашнем сервере. Очень простой синтаксис (причём, удобный для русского языка), минимум требований, шустрая работа. Есть множество вариантов авторизации. Правда, нет встроенного механизма для расстановки приоритетов и статусов, но это при желании можно сымитировать.

    Кроме того, не использует БД (только файлы), то есть бэкап делается элементарно.
    Ответ написан
    1 комментарий
  • Как убрать вывод фатальной ошибки в php?

    valerium
    @valerium
    Изобретая велосипед
    Ряд ошибок невозможно отловить изнутри скрипта, например, E_PARSE (ошибка парсинга) и E_ERROR (ошибка времени исполнения), плюс ошибки самого PHP.

    Однако их и не надо ловить внутри скрипта, для них существуют модульные и интеграционные тесты, а так же стабильные сборки PHP.
    Ответ написан
  • Как правильно сформировать дату при рассылке email?

    valerium
    @valerium
    Изобретая велосипед
    Можно сделать небольшой финт ушами и посылать в тексте письма не точное время, а «N минут назад», и в заголовке передавать дату и время отправки с часовым поясом сервера.

    Почтовый клиент получателя, используя данные локальной оси, правильно покажет получателю время отправки, а дальше он уже сам в уме сообразит, в котором часу в действительности произошло событие.
    Ответ написан
    Комментировать
  • Как настроить количество файлов, которые можно загрузить через input multiple за раз?

    valerium
    @valerium
    Изобретая велосипед
    Все директивы PHP, которые касаются загрузки файлов, описаны здесь. Если увеличение ни одной из них не помогло, значит, проблема не в PHP.

    Какие ошибки возникают в процессе загрузки?
    Ответ написан
    Комментировать