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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Перед тем как учить РНР, тебе нужно обязательно научиться пользоваться интернетом.
    Во времена твоих бабушки и дедушки интернета не было. И тогда да - единственным способом что-то узнать было только спросить у кого-нибудь.
    Но сейчас это уже не так.
    Есть интернет. И твой вопрос обязательно уже задавал кто-нибудь. Поэтому надо просто поискать.
    Пишешь в адресной строке своего браузера, проверить, что переменная является числом PHP
    и видишь примерно миллион ответов на свой вопрос
    Круто, правда?
    Ответ написан
    2 комментария
  • Как показать определенный текст с базы данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    отвечу на твой предыдущий вопрос, не пропадать же добру

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

    Попробуй свои силы на вордпрессе, там программирование не нужно.

    Научись устанавливать вордпресс на хостинге, минимально администрировать и менять темы.
    Потом найди человека - родственника или знакомого, который умеет, знает или делает что-то интересное, хобби там, или анекдоты хорошо рассказывает. И предложи ему сделать сайт. БЕСПЛАТНО.
    И вместе с ним делайте сайт.
    Так ты получишь минимальный опыт работы с вордпрессом и минимальное портфолио. С которым уже дальше сможешь предлагать свои услуги.
    Ответ написан
    2 комментария
  • Обязательно ли знать php, wordpress?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Всё надо учить. И ООП, и MVC, и фреймворки.
    А перед этим надо освоить чистый РНР. Плюс SQL, базы данных, программирование, протоколы, безопасность, устройство серверов
    От курсов толку не будет, надо купить нормальную книжку. И не одну.
    Ну и запастись терпением.
    Годика через два-три сможешь создать нормальный веб-сайт.

    функцию создать можно.
    Ответ написан
    1 комментарий
  • В каком этапе обучения нужно беспокоиться о безопасности?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Начинать беспокоиться о безопасности надо ДО начала обучения. То есть сильно раньше, чем когда уже "написал блог".
    Хотя бы базовые принципы надо применять с самого начала
    Для запросов в бд использовать подготовленные выражения.
    Для вывода информации в html использовать htmlspecialchars
    Если не дай бог читаются какие-то указанные пользователем файлы - то basename()
    При заливке файлов проверять расширение и переименовывать файл.
    При выполнении пользователем каких-то действий, проверять имеет ли он на это право.
    Во все формы добавлять сохранённый в сессии токен, чтобы их не могли подделать
    Ответ написан
    1 комментарий
  • Как выдавать пустую страницу в PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Логика конечно на грани фантастики.
    Кто видел вопросы на форуме по пэхапе, над анекдотами не смеётся.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Первый вариант, разумеется, вообще ни о чём.

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

    У нас здесь речь идет об алгоритме. То есть, о буртфорсе. Что такое брутфорс? Это тупо подстановка случайных сочетаний символов по очереди и проверка, не совпал ли хэш. Чем быстрее вычисляется хэш, тем быстрее раскалывается пароль.
    ПОЭТОМУ, ключевой характеристикой хэша для паролей является сложность его вычисления.
    Твой ша-пицот-двенадцать выплоненный стопицот раз - это для современной техники как воробей чихнул. А для будущей и подавно.
    Поэтому умные люди придумали алгоритмы которые во-первых вычисляют каждый хэш гораздо медленнее, а во вторых адаптируются под растующую скорость процессоров, и говорят тебе когда пора уже усложнять алгоритм. Именно этим и занимаются встроенные функции, и поэтому ты должен использовать именно их.
    Ответ написан
    Комментировать
  • Можно ли передать дескриптор CURL другому скрипту (процессу)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Викимедия придумала [HTTPS connection pooling](https://techblog.wikimedia.org/2020/10/26/impact-o...) что-то вроде persistent connections для курла
    Ответ написан
  • Как оптимизировать код, сделать профессиональнее?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как у тебя только в глазах не рябит от всех этих знаков препинания
    1. Не HTML писать внутри РНР, а наоборот - РНР внктри HTML.
    2. Использовать оператор сведения с null
    3. Экранировать вывод по умолчанию
    т.е
    <tr class="tableGrey">
        <td>Фактический адрес</td>
        <td colspan="4"><?= htmlspecialchars($callCompanyData['result']['UF_CRM_1587463057321']) ?? ' ') ?></td>
    </tr>

    3. Научиться пользоваться шаблонизатором Twig, т.е.
    <tr class="tableGrey">
        <td>Фактический адрес</td>
        <td colspan="4">{{ callCompanyData.result.UF_CRM_1587463057321 ?? ' ' }}</td>
    </tr>


    Чтобы записать этот вывод в переменную надо пользоваться функциями буферизации вывода
    Ответ написан
    6 комментариев
  • Как ускорить время SELECT MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Во-первых не позорься, убери тег big data. 11 лямов - это не бигдата, а кошкины слёзки.
    Во-вторых, надо учиться задавать вопросы.
    Не вопрос вида "доктор, у меня рука болит, как сделать чтобы не болела", а подробно излагать, что за поиск, что за запрос, что за данные, что за столбец, есть ли индекс, что показывает explain.

    В текущем же виде ответ только один - помазать зеленкой добавить индекс
    если индекс есть, и поиск идет по полному совпадению, то смотреть, влезает ли индекс в память
    Если поиск идет по частичному совпадению - то выносить его в отдельный сервис, sphinx/elastic
    Ответ написан
  • Почему SELECT возвращает только данные малых таблиц?

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

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

    (вообще вопрос какой-то шизофренический, я еле понял, что имеется в виду - то ли запрос к серверу, то ли скрипт на сервере. при чем здесь "ответ сервера?")

    Хотя нет, снова не понял. Если вопрос про существующую страницу сайта то тупо инклюд на пхп.
    вообще надо как-то боле детально объяснить, как устроен сайт и что за скрипт.
    возможно, тупо подойдет Яндекс Метрика
    Ответ написан
    4 комментария
  • Почему изменения в php.ini не меняет значение в phpinfo?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    потому что перезапускаешь ты веб-сервер а надо - РНР
    Ответ написан
    1 комментарий
  • Какие логины стоит сразу блочить при открытой регистрации?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если говорить о логинах, то
    Или логины в 2020 уже моветон?

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

    Но для начала надо научиться отличать логин от username/display name.
    Здесь, судя по всему, речь идет о втором.
    Обычно, в нормальных сервисах имена разрешаются любые, а административные аккаунты помечаются средствами интерфейса, а никак не именем.
    Ответ написан
  • Как сравнить дату в строке с timestamp?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    DateTime::createFromFormat()
    Ответ написан
    Комментировать
  • Как передать выбранные значения из select multiple в php массив/переменную?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А, ты тот самый страдалец с ДЛЕ.
    Интересно, что такого ужасного надо натворить в прошлой жизни чтобы карма тебя так возила об стол в этой
    Ответ написан
    Комментировать
  • Необходимо ли запускать Mysqli_free_result для UPDATE и INSERT запросов?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Любая ошибка синтаксиса, вызванная передаваемыми в запрос данными говорит о том, что запрос в принципе пишется неверно. А по-старинке, путем запихивания всех переменных прямо в строку запроса.

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

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

    $sql = "INSERT INTO t (text, author_id) VALUES(?,?)"; // заменим переменные на специальные маркеры
    $stmt = $mysqli->prepare($sql); // подготовим запрос к выполнению.
    $stmt->bind_param("ss", $text, $author); // привяжем к нему переменные
    $stmt->execute(); // и выполним его

    три простых шага, а код становится гораздо чище, безопаснее и короче.
    причем это в mysqli три, а в PDO вообще два:
    $sql = "INSERT INTO t (text, author_id) VALUES(?,?)"; // заменим переменные на специальные маркеры
    $stmt = $pdo->prepare($sql); // подготовим запрос к выполнению.
    $stmt->execute([$text, $author]); // сразу и привяжем и выполним
    Ответ написан
    1 комментарий
  • Как вставить переменные строкой в bind_param?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    массивом
    $sql->bind_param($char, ...[$adin, $dwa, $tree]);

    Хороший вопрос, который, к сожалению, редко задают
    Ответ написан
    Комментировать