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

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

    Элементарный var_dump($content) мог бы вам помочь, но почему-то вы его не сделали.
    Ответ написан
  • Как настроить роутинг на сервере Apache?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    mod_rewrite + .htaccess
    Ответ написан
  • Почему не создаёт файл при ajax отправки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) done(function() будет выполняться при любом исходе, если сервер вернул код 200. Так что это не говорит о том что на пхп все прошло нормально, только о том что скрипт отработал.

    2)
    $imageFullName = '/newsprev/' . hash('crc32',time()) . '.' . $imageFormat;
    У вас что, прям в корне линуксовой системы есть папка /newsprev? Рили?

    3) Логи смотрите, там вы скорее всего найдете варнинг что папки в которую вы пытаетесь записать нету.

    4) form_data.append('file', file_data);
    ...
    $image = $_FILES['image'];
    Вы бы определились...
    Ответ написан
    Комментировать
  • Почему не работает проверка на пустоту?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Научитесь использовать var_dump, прям вот "в любой непонятной ситуации - делай вардамп".

    2) использовать синтаксис if(): ... endif - моветон, он кроме того что избыточен, еще и не все иде его нормально воспринимают, и визуализация нарушается. Короче, совет дня - не используйте. А у вас он еще и не закрывается.

    3) что вам дает открытие / закрытие тегов в каждой строке? Или это чисто эстетическое наслаждение - смотреть на кровоточащие глаза коллег, читающих ваш код?

    4) if ($value9['cnt'] == "") это не проверка на пустоту, хотя в большинстве случаев оно будет работать, но это однозначно говнокод, который будет сыпать в лог варнинги, для таких проверок есть empty();

    5) if ($data['name'] == $value9['name']) не будет работать, если $value9['name'] пустой, соответственно ВЕСЬ код внутри этой проверки работать не будет.
    Ответ написан
  • Почему плохо писать код в шаблонах?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    formData.append('avatar',...
    ...
    $file_to_upload = $_FILES['croppedImage']...
    Ответ написан
    1 комментарий
  • Как убрать повторяющие теги strong на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как брать только первую цифру ID категории?

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

    Как вариант решения конкретно этой задачи - можно так:

    foreach ($posts as $post) {
        $postsCat[trim(explode(',', $post['category'])[0])][] = $post['alt_name'];
    }
    unset($posts);
    Ответ написан
    Комментировать
  • Не отображается изображения сгенерированный DOMPDF?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Включите вывод ошибок и варнингов, будет хоть понятно что происходит
    2) Выведите var_dump($qr_image);, вполне возможно что там нифига нет.
    3) Вообще достаточно проверить есть ли файл который вы берете - file_exists($path_to_file);
    Ответ написан
  • Как загрузить файл и записать его имя в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) $id видимо определен выше вызова функции, но как уже вам указали - область видимости внутри функции - локальная, все что не определено внутри тела функции для нее не существует, исключение - глобальные переменные.
    2) Научитесь пользоваться дебаггером, например xdebug, или хотя бы используйте var_dump().
    3) sql запросы СНАЧАЛА формируете в виде строки, затем передаете в вызов, тогда можно будет их вывести и посмотреть что с ними не так, подозреваю что в варианте который вы "поправили" проблема в отсутствии поля user_id которое скорее всего обязательное. Можно проверить напрямую введя этот запрос в консоль мускуля или через phpmyadmin.
    4) Код кошмарный, во-первых зачем-то засунут в функцию, хотя этот код вряд ли будет использоваться дважды, во-вторых функция использует внутри себя глобальные переменные, что плохо. Почитайте про чистые функции. Про метод "проверки" переменных вообще нет слов, сплошь междометия...
    Ответ написан
  • Стоит ли хранить зашифрованные данные пользователя в Local/Session Storage на клиенте?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ахренеть, то есть если я, допустим, пользователя понизил в правах, то по вашей логике я должен лично к нему домой причапать и почистить куки/сторэйдж. Это гениальное решение, решающее несуществующую проблему! Браво!
    Ответ написан
    9 комментариев
  • Как сделать, чтобы число уменьшалось каждый день?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    JS: если не закрывать браузер в течении всего этого времени - достаточно по setInterval() декркментировать значение каждые 24 часа ( 24*60*60 секунд). Если браузер закрывается - соответственно хранить время начала отсчета в куках или локалстораже, и от него уже отнимать количество дней / секунд прошедших от старта.

    PHP: В принципе все то же самое, только хранение стартовой даты будет в базе, или другом серверсайд хранилище.
    Ответ написан
    Комментировать
  • Как скачать картинку, которая хранится в blob?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . $fileData[0]['file_name']); 
    header('Content-Transfer-Encoding: binary');
    Ответ написан
    1 комментарий
  • Как загрузить файл и данные на сервер через AJAX?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) $data = $_POST; - тупая трата памяти.
    2)
    header('Content-Type: application/json; charset=utf-8');
    Вы еще ничего не сделали, и уже выводите заголовки. Зачем?
    3) if ($data) { если дата что? Всегда давайте осмысленные кодовые описания, например !empty()
    4) Проверяете переменные $_POST, но $_FILES не проверяете? Нааайс... Как то уже определитесь...
    5) Вишенка на торте - в инпутах имена nameInput и newsText, однако на сервере мы упорно ищем поля name и email (????).
    Ответ написан
    Комментировать
  • Как отправить файл из формы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как исправить ошибку: Too many connections в MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Нет смысла руками рвать соединение, при завершении скрипта коннект закроется автоматически. В вашем же случае весьма вероятна ситуация что коннект порвали зря и скрипт еще не отработал до конца.
    2) Онлайн порядка 500-1000 чел.Для запаса я бы поднял количество соединений до 1/4 онлайна. Зависит конечно от специфики сайта, но иногда их реально не хватает если сервер с активным взаимодействием с бэкендом.
    3) Для драйвера бд пишется враппер, не по тому что это модно или прям необходимо для работы, а как раз на такие случаи, в логику врапера пишется опциональное логирование запросов и сразу видно "кто где срал", сколько реально запросов бегает и что вообще происходит. Тогда можно что-то решать на уровне много/мало и куда что крутить. В частности, может оказаться что коннект происходит чаще чем вы думаете и вовсе не там где задумывалось...
    Ответ написан
  • Библиотека для генерации PDF на PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    headless chrome, правда требует установки на хостинг собственно хрома, зато пдф генерирует - просто супер.
    Ответ написан
    3 комментария
  • Как получить значение input, если value пустой?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Варианты:
    1) Короткие теги
    2) Файл имеет расширение не php
    Ответ написан
  • Как можно форму обратной связи отправить в html документе?

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

    Ну и так, по мелочам:
    - mail() не гарантирует отправку емэйла, только передает сообщение локальному smtp серверу, что будет дальше с сообщением абсолютно неизвестно. Для отправки почты есть более надежные скрипты, например phpMailer, нормально обрабатывающие все ошибки и способные работать с внешними smtp.
    - зачем админскую почту получать из формы - загадка, просто пропишите ее в скрипте как переменную или константу, светить ее всем подряд совершенно не обязательно
    -
    $method = $_SERVER['REQUEST_METHOD']; ... if ( $method === 'POST' ) {...
    зачем это переопределение из пустого в порожнее? Просто трата памяти.
    - else if ( $method === 'GET' ) {... тоже не сильно понятно зачем. Если не пост, то мало вероятно что метод будет delete или update, совершенно ненужная проверка, тем более что отправлять крупный массив данных методом гет (например из поля комментария) - плохая идея. Кроме того, если я просто открыл страничку - это тоже метод гет, но ваших переменных там не будет, просто в лог посыпятся варнинги об отсутствии переменных.
    - Код проверки переменных - отдельная грустная песня. Кроме того что есть filter_input, сама идея проверять переменные в цикле хреновая. Их у вас 4 штуки, все с разными требованиями, как по типам, так и по свойствам. Каждую надо проверить. Код станет длиннее, но гораздо более безопасным и читабельным.
    - <img src="img/aaa.png"... пути к ресурсам обычно пишутся от корня сайта, для того чтобы ресурсы не зависели от пути где лежит сам скрипт (<img src="/img/aaa.png"...).

    Самое главное вы так и не написали - что не работает то?
    Ответ написан
    Комментировать