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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) не лучший вариант, но просто реализовать - http авторизация.
    2) Вариант более верный - напрямую к папкам доступ не давать( в идеале папки вообще должны быть выше документ рут), по запросу документа через роутер/контроллер определять имеет ли пользователь права на чтение и тогда уже отдавать его средствами пхп через echo + file_get_content().
    Ответ написан
    Комментировать
  • Как правильно соединять данные Классов?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    3 таблицы объединяются через join по соответствующим ключам, полученный набор уже распихать по объектам. Иначе получится слишком большой объем выборки и непонятный ордер, все же бд для этого больше подходит чем сортировка на пхп.
    Ответ написан
    5 комментариев
  • Php ajax запрос?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    curl()
    file_get_contents()
    Ответ написан
  • Как правильно организовать ajax запросы в MVC архитектуре?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Логичнее вынести все в ajaxController() и работать в нем только с запросами аякса, это в частности позволяет в конструкторе контроллера не вызывать кучу специфических для данного раздела методов, а так же сразу определить для вью соответствующий лэйаут, однако это как раз не всегда удобно. По этому у меня есть аякс контроллер, в который я отсылаю только аякс запросы общего назначения, не привязанные к какому то конкретному разделу(в конструкторе сразу можно обработать тип и сделать ексит если не аякс), а запросы с более четким типом, например работа с пользователем, идет в свой контроллер, и уже в экшене проверяется тип запроса и производятся нужные действия. Это немного более накладно по ресурсам(из за конструктора с доп. функционалом), но более удобно в плане "все подобное в одном месте".
    На уровне роутера имхо никаких обработок быть не должно, его задача отдать роут, а контроллер уже создает логику ответа.
    Ответ написан
    Комментировать
  • Что из себя представляет, и как правильно выводить слой представления в MVC?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Пока что я вижу такой вариант: в контроллере получаю данные модели, создаю объект класса View(там же в методе контроллера) и с его помощью подключаю необходимый шаблон

    Обычно так и делают, вью определяют в конструкторе как свойство контроллера, отовсюду изнутри контроллера соответственно он виден как $this->view; Шаблон обычно в виде прописан по умолчанию(что бы не дергать каждый раз набор из шапки, футера, слайдера етц), а вот контент в него "рендерится", и обычно берется из папки вьюшек с тем же именем что и контроллер+экшн. это сильно упрощает подключение вьюх, достаточно вызвать метод $this->view->renderView(); и в шаблон по умолчанию в определенном месте рендерится вьюха из нужной папки с нужным именем(например /engine/view/index/index.tpl для индекс контроллера + индекс экшна). Это как вариант.
    Ответ написан
    2 комментария
  • Минификация php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    @me охреневает в полный рост от крутизны ТС О.о

    Прям все заоптимизировано, запросы(на минуточку, самая прожорливая часть кода, около 80% времени в большинстве проектов) выполняются мгновенно, файлы открываются на раз, внешние сервисы вообще не требуют задержек по времени на отклик, проблема вот только в чтении пхп скриптов с винта...

    Даа, нам простым смертным только мечтать...

    Но для тех кто не ищет легких путей некоторые лохи написали тут статейку...
    Ответ написан
  • Как синхронизировать Canvas HTML5 и ImageMagick?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Мм, гадаю на код по фотографии...
    Ответ написан
  • Как уничтожить сессию?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Из мануала:
    session_destroy() уничтожает все данные, связанные с текущей сессией. Данная функция не удаляет какие-либо глобальные переменные, связанные с сессией и не удаляет сессионные cookie. Чтобы вновь использовать переменные сессии, следует вызвать session_start().

    Замечание: Нет необходимости вызывать session_destroy() в обычном коде. Очищайте массив $_SESSION вместо удаления данных сессии.
    Чтобы полностью удалить сессию, также необходимо удалить и её идентификатор. Если для передачи идентификатора сессии используются cookie (поведение по умолчанию), то сессионные cookie также должны быть удалены. Для этого можно использовать setcookie().

    При включённой опции session.use_strict_mode, вам не нужно удалять устаревшие cookie идентификатора сессии. В этом нет необходимости, потому что модуль сессии не примет cookie идентификатора сессии, если с этим идентификатором сессии нет связанных данных, и модуль сессии установит новый cookie идентификатора сессии. Рекомендуется включать опцию session.use_strict_mode для всех сайтов.
    Ответ написан
    Комментировать
  • Не выводится php-код ниже цикла while, в чем проблема?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Классека....
    При отладке приложений вывод ошибок и варнингов должен быть включен, уровень ошибок - E_ALL
    в принципе достаточно добавить в начале скриптов:
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);

    после этого будет видно что конкретно у вас в коде упало с фатал ерором.
    Ответ написан
  • Сколько замедляет ооп работа программы php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Начиная с емнип 5.6 работа с объектной моделью данных не уступает в скорости процедурному коду, а в потреблении памяти сильно выигрывает, за счет создания только тех объектов, которые необходимы в данный момент в коде, а не тянутся все 100500 функций из процедурной лапши.
    Ответ написан
    Комментировать
  • Как реализовать динамическое обновление данных в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Так а вопрос то в чем?
    1)Не хватает ресурсов - покупаем мощности сервера,
    2) не хватает данных - запрашиваем чаще,
    3) опять не хватает мощности - см. п. 1.

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    OODB Store requires a bean, got: array' in /home2/neobitin/public_html/libs/rb.php:9102
    смотрите почему у вас туда попадает массив а не бин
    Ответ написан
    2 комментария
  • Как спарсить значение, используя php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    preg_match()
    и регулярка типа @\".*_followed_by\":\s+{\s+\".*":\s([\d]{4})\s+}@
    https://regex101.com/r/8yw0hp/2
    Ответ написан
  • Как убрать ошибку с пустым письмом при отправке с Php mailer?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    скорее всего у вас отключен вывод ошибок уровня нотис, и сертификат не проходит проверку или что-то такое, при отладке приложения это плохая практика, как вариант - читайте лог ошибок.
    Ответ написан
    4 комментария
  • Как сделать кнопку отправки вложения?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    кроме того что код - редкая смесь г-на и палок, так еще и понимания что и как работает у вас нет.
    Я все же поясню вам что происходит, а вы поправьте пробелы в своих знаниях основ клиент-сервернонго взаимодействия.

    у вас 2 формы, первая содержит поля, которые нужны для выполнения некоторых операций на сервере.
    Вторая пустая и ничего не делает от слова вообще.
    при заходе на страничку у вас вываливается куча варнингов, которые вы не видите, т.к. показ ошибок и варнингов у вас выключен.
    далее, по заполнению и субмиту первой формы вы отправляете какие-то данные, и они даже скорее всего что-то делают, и формируют файл marks.txt(не факт).
    Далее у вас стоит форма 2, абсолютно пустая и не нужная, так как скрипт не останавливается после ее вывода, а сразу пытается отправить данные по почте. Там тоже наверняка все не работает как надо, но мы опять же ничего не видим из за выключенного вывода ошибок. Далее, как истинный испытатель, вы нажимаете вторую кнопку, которая скорее всего нормально работает и отсылает пустую форму, ну и скрипт снова видит запрос без данных, снова выдает кучу варнингов и благополучно просто вывыодит ту же страничку еще раз.

    УЧИТЕ АЗЫ!!!!!
    Ответ написан
  • Почему не отправляется письмо?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    я прошу прощения за странный вопрос, но... PHPMailer почему не подошел? Готовый проверенный класс...
    Ответ написан
  • Как обработать фатальную ошибку в php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    есть весьма извратный способ через register_shutdown_function( "fatal_handler" ); в котором вызывал бы код начиная с последней итерации, которую хранить тогда в глобалах где-то надо. И так оно там рекурсивно пусть трахается до потери пульса...
    Хотя я бы не стал с ним заморачиваться, а посылал бы каждый запрос через cli в отдельном потоке и пусть там себе падает сколько хочет.
    Ответ написан
    Комментировать
  • Почему так медленно сохраняются данные в CSV?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    function put_ten() {
      global $link;
      $query = "SELECT `item`.`id`, `item`.`name`, `item`.`cat1`, 
                    `item`.`cat2`, `item`.`cat3`, `item`.`cat4`, 
                    `item`.`price`, `img`.`source`, `param`.`name` pname, `param`.`value` pvalue
              FROM `item` 
              JOIN `img` 
              ON `item`.`id` = `img`.`item_id` 
              JOIN `param` 
              ON `item`.`id` = `param`.`item_id` 
              WHERE `item`.`inserted` = 0 
              LIMIT 1000";
    // дальше 1 циклом нормально пройтись
    }


    UPD: Без индексов было... БЕЗ ИНДЕКСОВ, КАРЛ!!! Как так то?
    Ответ написан
    1 комментарий
  • Каким образом сгенерировать html страницу и отдать клиенту только фрагмент страницы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    чет не совсем понятно, что там с роутами и вью, в нормальной системе просто делается кусок хтмл как нужно, и в контроллере логика выбирает что рендерить - шаблон целиком или только кусок из нужного файла, и вью уже рендерит что надо - всю страницу с хедером футерам и проч, или чисто файлик. Так как не вижу как у вас все это работает - описал общий принцип.
    Ответ написан
    Комментировать