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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Какой-то странный вопрос. "новая php страница" заведомо означает перезагрузку.
    То есть либо новая страница не РНР, либо у автора, скорее всего, какая-то другая кривизна и ему нужно совсем другое решение.
    Ответ написан
    Комментировать
  • SQL выводим количество одинаковых значений?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    select login, count(*) cnt from таблица group by login having cnt > 1 order by cnt desc
    Ответ написан
    Комментировать
  • Как составить SQL запрос?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В общем, не надо мудрить, все должно быть в одной таблице.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Очередная жертва видеокурсов.

    Всем задающим вопрос про тухлую фасоль надо насильно отключать Ютуб, давать книгу Котерова, и не включать пока не прочитают.

    Потому что это садизм - показывать несчастным детям два приема использования устаревшей в прошлом веке библиотеки и говорить что они освоили программирование и дальше могут сами
    Ответ написан
    Комментировать
  • Почему rand() может выдавать очень близкие значения?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Потому что случайные.
    Кому-то здесь надо уяснить для себя смысл этого слова. И явно не одному автору.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как-то неказисто, но ничего кроме strrev в голову вечером не приходит
    strrev(chunk_split(strrev(11223344556677), 4, ' '));
    Ответ написан
    3 комментария
  • Что лучше при сохранении массива в ячейке БД - json_encode/decode или serialize/unserialize?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    РАЗУМЕЕТСЯ, ни то ни другое

    Хранить надо в отельной таблице, с колонками ид сущности, картинка.
    Ответ написан
  • Какой оптимальный размер учебного проекта на файлах?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Имеет.
    Для учебного колупания в песочнице все имеет смысл, все оптимально и ничего не критично.
    Ответ написан
    Комментировать
  • Регистрация пользователя как сделать лучше (правильно)?

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

    По поводу капчи.
    На сайт надо ставить только то, что нужно.
    Тебе сейчас капча не нужна? Вот и не ставь.
    Ответ написан
    8 комментариев
  • Почему данные в малой таблице читается медленнее, чем в большой?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1) Почему данные в малой таблице читается медленнее, чем в большой?
    2) Скорость чтения бд в маленькой таблице. Она гораздо выше скорости работы с большой

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я так и не понял вопроса.
    Если верить тем формулировкам, которые осилил родить автор - "в бд ничего не меняется." и "строки не создаются" - то проблема совсем другая и поля автоинкремент тут не при чем. Но ответ принят. Получается проблема была в том что автор был не в состоянии посмотреть что у него лежит в БД?
    Ответ написан
    2 комментария
  • Как убрать запятую после элемента в цикле?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Красиво не получится.
    Я бы делал не запятыми, а какими-нибудь тегами и использовал CSS.
    Но если упираться в лоб то
    <?php 
    $terms = get_field('genre');
    $count = count($terms);
    ?>
    <?php foreach( $terms as $i => $term ): ?>
        <a href="<?= get_term_link( $term ); ?>">
            <?= $term->name ?><php if($count-1 > $i): ?>,<?php endif ?>
        </a>
    <?php endforeach; ?>
    Ответ написан
  • Как запретить использование стандартных функций php?

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

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

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

    например так https://symfonycasts.com/screencast/symfony2-ep2/a... или так
    https://stackoverflow.com/questions/9550079/how-to... ну и далее по ссылкам.
    Ответ написан
  • Можно ли доверять этой функции для определения IP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Даже не заходя в вопрос сразу можно догадаться, что будет внутри.

    Разумеется, речь о ходячем анекдоте, эталоне карго культ кода, тайной функции определения "настоящего" IP адреса "за прокси", которую похапешники воображающие себя кулхацкерами десятилетиями переписывают друг у друга.

    Функции, которая берет IP адрес... из НТТР заголовков. Из запроса. То есть, чтобы подделать айпи, не нужно даже прокси - достаточно добавить к НТТР запросу заголовок CLIENT_IP с рандомным айпишником.
    Гениальное решение для защиты.

    По пороблемам, озвченным в теле вопроса.
    Расслабься.
    Судя по уровню владения вопросом и уровню приближения проблемы к реальной жизни, все равно у тебя из этой борьбы с ветряными мельницами выйдет только хуже.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    О господи, опять этот вопрос.

    Запрос никак не защищать.
    Если пользователь может видеть запись 666, то пусть смотрит что хочет.
    Если пользователь не имеет права видеть запись 666, то получив любой запрос проверять его на наличие прав. А изменение запроса оставить в покое. Клиент по определению может отправить любой.

    К CSRF это абсолютно безобидное ковыряние в хтмлочке никакого отношения не имеет.
    Ответ написан
    Комментировать
  • Как лучше хранить контент в БД: HTML vs MarkDown?

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

    Однозначно MarkDown.

    Хтмл - это ужас, который надо валидировать, перевалидировать, форматировать и переформатировать на каждый чих. Править можно только в редакторе. Поменять один тег на другой головная боль на много часов.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    какая-то каша. при чем тут json?

    чтобы в общем случае запустить похапе файл, надо спереди написать вызов интерпретатора пхп, т.е.
    php bin/brain-games
    Чтобы файл запускался сам по себе, нужны права на исполнение (а не права суперпользователя), т.е. сначала
    chmod +x bin/brain-games
    а потом уже можно будет писать bin/brain-games для запуска
    Ответ написан
    2 комментария
  • Сделать карьеру на PHP: Symphony vs Zend?

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

    Изучать какой-либо современный фреймворк ради *карьеры* - несусветная глупость. 5 лет назад ларавеля не было, а симфони и зенд были в таком виде, что мы бы сейчас обплевались. При том что различия между современными версиями довольно минимальны.

    Это, я не знаю, как спросить "хочу быть столяром, какую отвёртку мне изучать, крестовую или шлицевую?".

    Изучать, ради карьеры, надо столярное ремесло целиком. В данном случае - программирование. Принципы, на которых устроены фреймворки. Одного этого хватит на те же лет 5. Зато потом не будет проблемы адаптироваться к неизбежным изменениям.

    А если считать пределом мечтаний клепание говносайтов на некоем идеальном фреймворке на все времена, то может так случиться, что через 5 лет к условным "ларавельщикам" будут относиться так же, как сейчас к вордпрессникам.

    И кстати для изучения принципов симфони подходит лучше

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

    Да, и самое главное я тоже забыл сказать. Коллега xfg в самую точку написал в комментарии:

    Фреймоворк - это на самом деле тонюсенькая прослойка над приложением. Это, по сути, система подай-принеси, принять запрос с фронта и отправить ответ. А что именно будет в ответе - решает не фреймворк, он здесь уже не при делах.

    Очень на эту тему прочищают мозги доклады и видео Дмитрия Елисеева. У него на сайте как раз появился доклад с PHP Russia 2019, который я горячо рекомендую.

    На ту же тему был и доклад Томаша Вотрубы, кстати. Что фреймворки, по сути, можно менять как перчатки, при желании. И у него есть даже инструмент для этого. Но в данном случае речь не об инструменте а о том, что фреймворк- далеко не главная часть приложения, и упираться в изучение фреймворков это все равно что в изучение отверток.
    Ответ написан
    4 комментария
  • Как вставить php код в json?

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

    $json ='{"source":{"api":""}}';
    $array = json_decode($json, true);
    $array['source']['api'] = env('api')."@statistics";
    $json =  json_encode($array);
    Ответ написан