Задать вопрос
Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
  • Какой использовать Admin Bundle для Symphony 4?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Соната сильно заморочена и сильно устарела. А Изя пилится конкретно под четверку. Так что выбор очевиден
    Ответ написан
    Комментировать
  • PHP Почему не равны две строки?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вместо var_dump используй в таких случаях urlencode. Все сразу станет видно. И Бом, и русские буквы в утф и невидимые символы.

    И не придется тыкать пальцем в небо, как это обычно принято у похапешников на тостере
    Ответ написан
    Комментировать
  • Как с помощью сессий можно проверить - заполняет форму человек или скрипт?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если говорить про процитированный абзац, то имеется в виду, что в сессию нельзя писать количество неудачных попыток входа, например. То есть, использовать как постоянное хранилище.

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

    Как правильно написали - частично спасает только капча
    Ответ написан
    Комментировать
  • Можно ли указать два типа для аргумента?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Проблема в том, что вы не понимаете данную функциональность и пытаетесь использовать ее механически, просто "шоб було".

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В цикле.

    Все операции с массивами производятся в цикле.

    Простейший вариант - проходить в цикле по массиву и делать запрос в базу по ид.
    Добавлять в новый массив элемент содержащий ид, имя и количество
    Ответ написан
  • Для чего объявлять (создавать) имена полей в начале класса если они же по сути объявляются (создаются) в конструкторе?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Зачем мыть руки перед едой, ведь и из грязных ложка не выпадет?

    Пхп - язык с плохой наследственностью. И эта "возможность" - один из рудиментов оставшихся с тех времён, когда язык писался в памперсы.

    Но на самом деле все переменные надо объявлять перед использованием
    Ответ написан
    3 комментария
  • Как вывести данные из базы в формате JSON (с помощью php)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ответ на вопрос Как вывести:

    echo json_encode($result->fetch_all(MYSQLI_ASSOC));


    Но проблема в том, что у тебя нет еще никаких данных, ты запрос ещё не составил.

    Чтобы узнать, как написать запрос, который вернёт нужные данные, задай отдельный вопрос.
    Ответ написан
    Комментировать
  • Что почитать о продвинутой разработке web приложений?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    что мне кажется далеко не самым оптимальным вариантом

    Это очень странная фантазия
    Фейсбук работает по такому принципу
    Википедия работает по такому принципу
    Порнхаб работает по такому принципу
    Их всех такой вариант устраивает, а что у тебя за такое особенное приложение, которому этот вариант не подойдёт?
    Ответ написан
  • Запретить кеширование переменной?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    как я понимаю сервер для более быстрой работы кеширует PHP переменные

    Неправильно понимаешь.
    РНР вообще ничего не кэширует

    Кэширует браузер и веб сервер
    Ответ написан
  • Как сгруппировать запрос к MYSQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Фразы в одной таблице, логи просмотров в другой.
    Два запроса, один к фразам, второй к логам с дистинкт
    Ответ написан
  • Как избежать параллельных запросов MySql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    По-моему, это не вопрос, а очередная влажная фантазия.
    Один и тот же юзер не в состоянии создавать "параллельные запросы".
    Тут скорее логика хромает. Зачем-то сделано удаление записи, дальше идёт какое-то анонимное голосование(?!). почему-то можно ставить плюсы несколько раз.

    Удалите этот вопрос и вместо этого спросите, как сделать голосование нормально. В общем случае все делается 1 запросом.
    Ответ написан
    5 комментариев
  • Нужно ли защищать обработчик формы (PHP файл) от прямого доступа?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не бывает никакого "непрямого" доступа к обработчикам форм. Доступ всегда прямой.
    Не бывает никаких отдельных специальных обработчиков форм. Твой обработчик - это обычный пхп скрипт, такой же как все остальные. И защищать его надо не больше и не меньше, чем остальные скрипты.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Есть скрипт, который данный объект принимает.
    в отличии от обычный формы ajax не редиректит на php-скрипт.

    Логика такая логика.

    Инструменты разработчика, вкладка Сеть, жамкаем на свой запрос к - сюрприз! - пхп скрипту. Смотрим вывод
    Ответ написан
    3 комментария
  • Как правильно обрабатывать ошибки в PHP PDO?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Стоило на неделю лечь в больницу, как изо всех щелей поналезли гамадрилы

    Первый, традиционно для тостера, рекомендует читать про то, в чем сам не смыслит ни бельмеса.

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

    Третий тупо кидает ссылку на свое пахучее спагетти, в котором цинично измывается над механизмом исключений.

    Как правильно и красиво написать запрос к MySql, чтобы пользователь увидел что с MySql что то не так, типа такого: Ой, MySql не отвечает


    Никак.

    К MySQL, PDO и запросам это не имеет никакого отношения.
    Если у тебя файла не хватает или диск переполнился, или деление на ноль - сценарий будет тот же самый. То есть делать отдельную обработку ошибок для бд и как-то особенно по-хитрому писать запросы не имеет смысла

    Обработку ошибок надо делать унифицированно и осуществлять в одном месте. А не размазывать, как манную кашу по тарелке, по всему коду.

    Берём функцию, set_exception_handler(), и пишем в нее один раз все что хотим сказать юзеру в случае ошибки. Любой ошибки, а не только соединения с базой данных.

    Примечание: юзеру глубоко фиолетово, MySQL не отвечает, или космическая станция на Марсе. Он, скорее всего, даже такого слова не знает. И грузить его подробностями не нужно.
    Ответ написан
    2 комментария
  • PHP как сложить 2 переменные?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Пишешь 4 условия.
    Если оператор плюс, то возвращаешь результат сложения
    Если оператор минус, то вычитания
    И так далее
    Ответ написан
    Комментировать
  • Когда стоит писать модули а когда контроллеры?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    При такой постановке вопроса - всегда модуль.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос: если в папку, где идёт работа с файлами одного пользователя, залить файлы другого пользователя, то они смешаются.
    Ответ: не валить файлы разных пользователей в одну и ту же папку.

    При этом скрипту обработчику необходимо передавать адрес рабочей папки.
    После обработки рабочая папка удаляется
    Ответ написан
    Комментировать
  • Не работает return в конструкции if?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Идеальный пример реализации анекдота у таракана уши в ногах в реальной жизни.

    Автор уже сам понял, что, разумеется, дело не в условном операторе (и не может быть). Но все равно упорно стучит по столу, и проверяет что угодно, но не возврат конкретной функции
    Ответ написан
    1 комментарий
  • Как пользоваться stdout?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Пользоваться php://stdout в подавляющем большинстве случаев абсолютно бессмысленно - куда проще тупо написать echo

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

    Логи искать там, где вы их положили. За редким исключением, имя лог файла надо указывать явно. Если это консольный скрипт, то использовать эхо, а вывод перенаправлять в файл PHP test.php > log.txt
    Это будет перенаправление стдаута в файл.

    Если скрипт вызывается по НТТР то никакого стдаута, пишем в обычный файл как обычно
    Ответ написан
    Комментировать
  • Почему этот код так странно себя ведет?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Идеальный пример опыта "у таракана уши в ногах".

    РНР выдает тебе ошибку, потому что ты неправильно используешь генератор. О чем тебе чистым английским языком и сообщает. А условия тут не при чем.

    Перепиши свой опыт БЕЗ условия,
    function test(){
        yield 1;
    }
    echo test();

    И подумай, причем здесь вообще if.
    Ответ написан
    Комментировать