Задать вопрос
Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
Ответы пользователя по тегу PHP
  • Что лучше при сохранении массива в ячейке БД - json_encode/decode или serialize/unserialize?

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

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

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

    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 комментарий
  • Можно ли доверять этой функции для определения IP?

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

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

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

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

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

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

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

    К CSRF это абсолютно безобидное ковыряние в хтмлочке никакого отношения не имеет.
    Ответ написан
    Комментировать
  • Проблема с запуском 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);
    Ответ написан
  • Можно ли формировать sql запрос таким образом?

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    $row = $conn->query("SELECT group_concat(age), sum(age) FROM table")->fetch_row();
    echo $row[0];
    echo "<br>";
    echo $row[1];
    Ответ написан
    2 комментария
  • Как динамически менять название переменной в php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Динамическим в переменной должно быть содержание, а не имя
    Ответ написан
    Комментировать
  • Что нужно для создания электронного дневник на php+mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Js на начальном этапе не нужен, музчина из соседнего ответа не в теме.
    Ну точнее он живёт видимо в прошлом веке и подключен к интернету через модем по телефонной линии. Учителя же подключены по 4g, и "ждать" перезагрузки будут миллисекунд 50.

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

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

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Учусь рисовать. Интересует, какие краски использовать. Не хочу углубляться в сюжет, просто интересует какие краски нужны.

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

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

    $arr = array('Apple', 'Grape', 'Lemon');
    foreach($arr as $znatchenie) {
        echo "$znatchenie<br>";
    }
    echo 'Массив кончился.<br>';


    Если пытаться понять бессмысленный код приведенный в вопросе, то наверное так
    for ($i = 0; $i < 10; $i++) {
        foreach($arr as $znatchenie) {
            echo "$znatchenie<br>";
        }
        echo 'Массив кончился. Продолжаем внешний цикл <br>';
    }

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

    Апдейт.
    Благодаря BoShurik, который выпытал из автора, что ему нужно,

    for ($i = 0; $i < 10; $i++) {
        echo $arr[$i] ?? 'Массив кончился. Продолжаем внешний цикл';
        echo "<br>";
    }

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