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

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

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

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

    Для корректного решения придется немного потрудиться.
    Установить https://symfony.com/doc/current/components/express...
    и научиться с ним работать
    Ответ написан
    2 комментария
  • Почему первый цикл влияет на второй?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Циклы в РНР никак не связаны. Как и в любом другом языке.
    И второй всегда начинается без свякой связи с первым.
    Если же речь идет о переменных, которые участвуют в цикле, то программист должен позаботиться САМ, о том чтобы перед началом любого цикла они имели нужные значения.
    Ответ написан
    Комментировать
  • Можно ли подменить IP посетителю сайта?

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Либо перестаньте мучать Ларавель и пишите по-старинке $result = mysql_query("SELECT * FROM comments where name='$name'"); либо учитесь уже пользоваться инструментом не как обезьяна микроскопом.
    Eloquent - это ORM. Object-Relational Mapper. Транслятор из РСУБД в объекты.
    $comment и должен быть объектом, и нет ни одной причины превращать его "полностью в массив"
    Ответ написан
    4 комментария
  • Насколько безопасна реализация запоминания пользователя?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Требуемый параметр называется "криптографической стойкостью".
    Большая часть самопальных решений "из букв и цифр" такой стойкостью не обладает.
    Как не обладает ей и uuid v4.

    На данный момент рекомендуемым решением является использование функции random_bytes()
    $token = bin2hex(random_bytes(24));
    Далее токен пишется в БД и в куки пользователю.
    Ответ написан
    Комментировать
  • Как обработать ошибку mysql подключения в PHP 8.1?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ни в коем случае не надо совершать ни одно из телодвижений, предложенных Rsa97
    Режим выброса исключений специально сделан, чтобы не писали этот говнокод из прошлого века.
    Если в коде написано if($mysqli->connect_errno) {, это означает что никакой нормальной обработки ошибок там всё равно не было. И надо просто убрать этот бесполезный мусор. Поскольку вариант с исключением в сто раз информативнее и удобнее для обработки.
    И у запросов тоже, кстати, надо поубирать всю тупизну с if($mysqli->error) или, того хуже, or die()

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

    Тот редкий случай, когда действительно требуется именно обработка ошибки соединения, а не "die('что-то пошло не так')" мы здесь не рассматриваем, поскольку к моменту, когда программисту такое может понадобиться, он уже владеет базовыми приемами программирования и вполне разберётся сам.
    Ответ написан
    Комментировать
  • Могу ли я заниматься коммерческой разработкой (backend с php) на Windows 10?

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

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

    Что - уже все основы выучил? Теперь на перепутье стоишь, уже идти устраиваться или линукс мучать? Какой там линукс? Базовые операторы, основы БД, отладку, обработку ошибок, разделение кода и представления, основы НТТР, основы безопасности уже выучил? Нет? Ну так надо садиться и учить то что и на винде прекрасно учится. И задавать вопросы если что-то непонятно. Для этого тостер придуман.
    А не ковырять в носу мечтательно, "все у нас хорошо, только линукса не хватает!".

    Надо меньше мечтать и больше работать. И задавать вопросы по ходу дела. Тогда станешь программистом.
    А с таким подходом дальше дивана не продвинешься.
    Ответ написан
    11 комментариев
  • Как сравнить текущую дату в sql запросе?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    t.close_date >= curdate()
    Ответ написан
    Комментировать
  • Как в php вытащаить в переменную из input значение?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Идём в первый класс, садимся за парту: Где работает РНР?
    после этого садимся учить javascript и ajax
    Ответ написан
    Комментировать
  • Как можно через htaccess указать id с другими страницами?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    На этом сайте не меньше ста ответов на этот вопрос.
    Надо немного потрудиться, и постараться найти хоть один
    Ответ написан
    2 комментария
  • Не передается GET параметр с настройками htaccess?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Традиционный вопрос, что я, сцк, делаю не так?
    Почему мне гуголь выдает 100500 ответов по заголовку вопроса, а товарищу generate показывает жирную дулю во всё лицо?
    Ответ написан
  • Почему не сохраняет username в базу данных mysql?

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

    В целом, читаем здесь В чем ошибка моего кода и здесь Почему не получается записать в базу данных?

    Причем пример кода взять из второго ответа, и писать код для работы с БД нормально, без всего этого маразма "иф стмт мюскюли препаре, иф стмт сюскюли екзекюте, самсинг вент вронг!"
    Ответ написан
    Комментировать
  • Какая cms лучше всего подойдет для создание более 100 000тыс. страниц?

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Самое время познакомиться с темной стороной программирования.
    Начинающие вайтишники искренне думают, что программист - это типа такой художник. Берет мольберт, поллитру, кисти и начинает ВАЯТЬ. Потом отходит на шаг, любуется делом рук своих, и снова. Ваять. А потом сразу заказчику, за большие деньги.

    Так вот, в реальности это всё не так.
    Большую часть времени программист не пишет код.
    А пытается разобраться, почему он не работает.

    Так что мы будем сейчас учиться это делать.
    Тем более, что это в принципе несложно.
    Главное не думать, что чем-то поможет сидеть и тупить в свой кодик. И приглашать других людей потупить в него тоже бессмысленно. Потому что причина может быть совсем не в нем. но даже если проблема и в коде, то искать её всё равно надо по-другому.
    В код не надо тупить. Его надо ЗАПУСКАТЬ.
    И выводить промежуточные результаты. Проверять его работу.
    Заранее выяснить, какие должны быть значения у переменных, и проверять их на каждом этапе.
    Где не совпадут - там и проблема.
    В идеале IDE сама покажет содержание всех переменных при трассировке, но если пишешь код в блокнотике, то даже тупо писать var_dump($bar1,$var2,$var3...); и смотреть что там лежит.
    Условия проверять еще проще, тупо echo 'зашли в условие if (!empty($user))';
    И если лежит не то, или эхо не выводится - вот тогда уже смотреть в код и думать, почему так получилось.

    В частности, при авторизации надо проверить две вещи:
    1. Находится ли юзер по логину
    2. если находится, то проверить корректность хэша. Для этого при регистрации надо вывести полученный через password_hash пароль и записать на бумажке
    потом запросить сохраненный из БД и сравнить

    Кроме того
    Разумеется, отладка невозможна без сообщений об ошибках.
    В половине случаев РНР человеческим голосом сообщает в чем проблема.
    Поэтому всегда, в любом окружении должно стоять error_reporting(E_ALL);
    плюс на домашнем компике полезно прописать ini_set('display_errors', 1); чтобы сразу видеть ошибки на экране.
    На боевом сервере разумеется поставить 0 вместо 1, и добавить ini_set('log_errors', 1);

    У меня только один вопрос.
    Какой смысл вообще делать парольную защиту, если любой придурок сможет спокойно авторизоваться через SQL инъекцию?
    Ответ написан
    9 комментариев