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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    ох...
    php C:\ProgramData\ComposerSetup\bin\composer.phar require

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

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

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. Выкинуть на помойку бессмысленный код "функции класса bd" и написать заново
    public function query($sql, $params = []) {
        $stmt = $this->db->prepare($sql);
        $stmt->execute($params);
        return $stmt;
    }

    2. В конструкторе класса bd соединение PDO создавать правильно, чтобы база данных могла тебе сказать человеческим голосом, что не так в запросе
    3. осилить правильный синтаксис INSERT
    Ответ написан
  • Ошибка в коде или нет?

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

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

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

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

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

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Комментировать
  • Почему false срабатывает как true?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Строка false, разумеется приводится к true.
    В РНР будет ровно то же самое, условие if('false') выполнится.

    А чтобы false воспринималось как булево значение, а не как строка, надо либо сказать твоему яваскрипту, что он ждёт специальным образом кодированные данные, либо РНР - что он отправляет не HTML, а некий другой формат.

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

    В целом направление мысли верное - система воспринимает переданное значение как строку, а не как булево значение. Но на этом мысль и останавливается.
    Хотя при некотором усилии можно было бы продолжить и рассудить - что поскольку протокол НТТР чисто текстовый, то никакие булевы значения через него по умолчанию передать нельзя. А так же объекты, массивы, и прочие типы данных.
    И для того чтобы сделать это возможным, был придуман специальный формат кодирования. Который позволяет передавать данные различнызх типовв, и который автор, несомненно, уже применяет (вследствие чего, собственно, из булева значения и получается строка false).

    То есть единственным недостающим звеном в этой головоломке является контекст, в зависимости от которого яваскрипт будет воспринимать строку false либо как строку, либо как булево значение. То есть нужен способ РНР и яваскрипту договориться, в каком формате они обмениваются данными. Стандартным способом является НТТР заголовок Content-type. Который скажет браузеру, что данные не в дефолтом формате HTML, а в другом.

    Либо как вариант, можно прямо при вызове функции ajax явно задать, в каком формате придут данные. Если озаботиться изучением документации по этой функции.
    Ответ написан
    Комментировать
  • Как логировать ошибки php?

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

    Чтобы ошибки логировались, надо - сюрприз! - написать в настройках одну строчку

    log_errors=1

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

    И кстати
    } catch (\Exception $e) {
        save_error($e);
    } catch (\Throwable $th) {
        save_error($th);
    }
    - это отдельная бессмыслица.
    Throwable уже включает в себя Exception
    Ответ написан
    Комментировать
  • Как вывести данные с нескольких таблиц php В одном запросе?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    делаешь страницу, confirm.php
    на нее передаешь ид текста
    на ней выводишь форму, у которой в скрытом поле ид, и две кнопки, да и нет.
    дальше я надеюсь, разберёшься
    Ответ написан
    Комментировать
  • Как сохранить значение input после перенаправления на другую страницу $_POST?

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

    Иоэтому не нужно никаких максажей, обрабатывай всё на месте, без редиректов

    Через $_POST я даже не понимаю почему оно не сохраняется при переходе на другую страницу.

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    проверяй наличие в БД
    Ответ написан
    Комментировать
  • Хранение данных в бд в зашифрованном виде?

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

    А потом ты, может быть, и сам уже сообразишь, что нет - "как пароли" хранить данные пользователя в бд невозможно.
    Ответ написан
    Комментировать
  • Объявить свойство как объект - ошибка?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    То есть ты искренне считаешь, что если в каком-то месте кода напишешь
    $this->shop = new Shop;
    эта переменная сразу получит доступ ко всем объектам класса Shop, когда-либо созданным в коде?
    И твой пример можно упросить до такого

    class Person {
            public function __construct(){
                $this->name = '';
            }
     
            public function showname(){
                echo $this->name;
            }
    }
    $name = "Вася";
    $person = new Person;
    $person->showname();

    и потом удивляться, почему он ничего не выводит?
    Ответ написан
  • Где ошибка в коде при записи в переменную?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ошибка, как обычно, в ДНК. Шутка.

    Запомни на всю жизнь:
    JSON НИКОГДА, ни под каким видом не пишется руками
    Напечатай это большими буквами и повесь себе на монитор.

    Чтобы получить JSON, в РНР делаешь массив, который потом выводишь с помощью json_encode
    Ответ написан
    4 комментария