Задать вопрос
Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
  • Можно ли формировать 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 комментариев
  • Наилучший метод для изучения английского?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Продолжать читать.
    Больше ничего не нужно.

    Английская грамотность начитывается точно так же как русская.
    Вы пишете грамотно не потому что в школе учили "жи-ши пиши через букву "и", а потому что читали книжки и грамматика отложилась, точно так же как общеупотребительные выражения и словосочетания.
    Тот же принцип работает с любым языком.

    Даже если многое понимается из контекста. На самом деле в детстве мы тоже многого не понимаем, когда читаем книжку, но - "пофиг - пляшем" - читаем дальше, понимание со временем приходит само.

    Да, это займет больше времени, чем месяц. Но выучить язык за месяц задача в любом случае утопическая.

    5000 слов - это глупость. Язык учат не словами. Каждое слово, особенно в английском, имеет до десятка значений. А с предлогами-суффиками - до сотни. Школьное край - это не плакать, а кричать (благодаря игрушке это теперь все знают), у слова ass - два значения (с предлогами - далее везде), sound - четыре. Выучив по одному значению 5000 слов будешь спотыкаться на каждом втором.

    Английский - это устойчивые словосочетания плюс немного замороченный синтакс. Из книжки это впитывается нативно, причем часто ты "чувствуешь" смысл слова, и это ощущение гораздо полнее чем любое объяснение из словаря.

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

    Чтение - это ак раз способ с погружением, а вся зубрежка - это эффективность 19 века, когда она была изобретена.
    Ответ написан
    3 комментария
  • Регистрация и авторизация 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 комментариев
  • Какая концепция работы админки сайта на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В принятом ответе зачем-то две таблицы, что не имеет вообще никакого смысла.

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

    Ну то есть абсолютно ничего нового или сложного.
    Ответ написан
    5 комментариев
  • Поиск по началу слова sql и php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если "дохнет" значит "работает медленно", то поставить индекс.
    Если дохнет значит перестает работать но ошибок не выдает - надо включить вывод ошибок, прочесть и исправить.
    Ответ написан
  • Как исправить ошибку PHP PDO?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ну если "в переводя" и так понятно, то какой смысл еще и на тостер идти?
    Ответ написан
    9 комментариев
  • Правильно ли делать такую структуру проекта?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нет, неправильно.

    - get_functions.php ужасное название, винегрет внутри. все эти функции разложить по своим модулям.
    - inc/main_tpl.php подключается слишком рано. сначала надо закончить работу с данными, а только потом начинать вывод. Это азбука.
    - 'modules/' . $_GET['section'] . '/index.php' инклюдится слишком поздно. модуль надо инклюдить ДО начала вывода. При этом основной шаблон должен вызываться не в индексе, а в модуле. модуль решает, бует ли он что-то выводить, если да - то присваивает переменной имя своего шаблона и вызывает основной шаблон, который в себе инклюдит шаблон модуля. Подробнее: phpfaq.ru/tech/tpl
    - в include 'modules/' . $_GET['section'] . '/index.php' тебе напихают такого, что на ежика станешь похож. имя модуля надо обязательно валидировать. в идеале по белому списку.

    В остальном нормально, только обычно все кроме индекса кладут выше корня.
    Ответ написан
    9 комментариев
  • Я разучился понимать работу кода?

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

    А теперь внимание - правильный ответ
    urlencode() - самая удобная отладчная функция. Читаемые символыв она оставит как есть, а непечатные - закодирует в удобный формат.
    Ответ написан
  • Можно ли заполнить форму на сайте при помощи ЯП?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Следующий вопрос автора: как обойти капчу.

    Из-за таких вот заполнятелей сейчас уже практически нереально пользоваться гуглом или яндексом в режиме инкогнито - задалбывает капчей, причем такой, которую хрен прочтешь.
    Ответ написан
    2 комментария
  • Phpmailer или сторонний сервис по отправке email?

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

    Хотя, конечно, вопрос и сам по себе дурацкий.
    Phpmailer - это не почтовый сервер. Это всего лишь mail()-переросток. Доставкой писем не знаимается. И "поставить через композер" проблему доставки писем не решит - все равно нужен будет сервер.
    То есть выбор не между "phpmaier" vs transactional email service, а "мой аккаунт на гмейле" vs mailgun.

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

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

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

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

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

    Я так понимаю, о технических комментариях АКА phpdoc (о которых говорит тов. куратор) речь сейчас не идет. Если идет, то автор приглашается объяснить, чем они его не устраивают.

    Если же автор говорит о пояснениях к коду, то позиция совершенно правильная, такой подход называется самодокументируемый код, впервые упомянутый великим Фредериком Бруксом еще в 60-х годах прошлого века.
    Ответ написан
    2 комментария