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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если речь идет о метке времени Юникс, то задача сводится к двум арифметическим действиям.
    Ответ написан
    Комментировать
  • Правильно ли так обращаться к методу класса (PHP)?

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

    Вопрос заключается в том, можно ли писать в РНР строки без кавычек.
    Ответ: нельзя.

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

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

    Другое дело, что ошибка выглядит странно. Такое ощущение, что она вообще не от этого сайта.

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

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

    Параграфы взаимоисключающие здесь вижу я.
    В первом ты даешь ссылку на файл WSDL, а во втором спрашиваешь, где его взять.

    Правильно ли все указал оператор, или нужно что-то еще настроить с его стороны?

    С его стороны надо указать полный путь к твоему WSDL.

    Это в случае, если тебе действительно надо поднимать сервер, в чем я не уверен.
    Ответ написан
    Комментировать
  • Как распарсить mysql_fetch_array когда используется in ?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    echo json_encode($mysqli->query($query)->fetch_all(MYSQLI_ASSOC));
    Ответ написан
    Комментировать
  • Обзор PHP производительности "из коробки". Нужен ли обзор?

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

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

    При том что если, скажем, заклинание "SET NAMES utf8" окажется полезным в подавляющем большинстве случаев (независимо от того, понимает ли произносящий его смысл, или нет), то предлагаемая бессмысленная игра в бирюльки с оптимизашками не имеет вообще никакого смысла, и будет только засорять головы несчастным обезьянкам.

    Вместо набора бессмысленных рецептов программист должен понимать ПРИНЦИП: в 99,999% случаев такую ерунду оптимизировать не нужно. В том случае, когда это действительно понадобится, сначала делается профайлинг, чтобы определить то место, которое реально требует оптимизации, и только потом можно начинать суетиться с оптимизацией в единицы процентов участков кода, которые занимают 0,0001% от общего времени выполнения скрипта.

    Первый пример, кстати, не имеет ничего общего с производительностью. Это исключительно здравый смысл и вопрос, понимает ли программист, что он делает. Для подавляющего большинства пользователей похапе ответ на этот вопрос - отрицательный. В силу чего такие "трюки" являются заведомо бессмысленными.

    Если программист понимает, что для цикла в 20К итераций не нужно делать 100К - хорошо. Если не понимает - тогда у него куча других проблем, НА ПОРЯДКИ более критичных, чем копошение в песочнице с оптимизацией бессмысленных участков кода.
    Ответ написан
  • MySQLi или PDO что использовать когда запросов не много?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как всегда - идиотский вопрос, в котором КЛЮЧЕВАЯ функциональность обеих библиотек обозвана "не такой критичной", два идиотских ответа и два лайка от автора.

    КТО ВСЕ ЭТИ ЛЮДИ?!

    Ответ для тех, кто попадет сюда из гугла - PDO.
    Ответ написан
  • Почему теряется байт utf8 кодировки в php-fpm?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    F12 - Network - F5 - первая строчка - Headers - ищем заголовок Content-Type и удивляемся тому что там написано.
    Ответ написан
  • Как вам такой code-style в PHP?

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

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

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

    Но нет. Один герой все бубнит про "это исходит от Вашей задачи" (при том что задача описана!) и дальше пишет бессмысленный код. Второй, по своей стародавней привычке, просто с умным видом пишет бессмыслицу. С третьего взятки гладки - типичное похапешное создание, пишет код не приходя в сознание.

    И при этом никто (включая автора) почему-то не догадался тупо перечислить условия задачи:
    !($var || $var === 0 || $var === 0.0 ||$var === '0')) ...

    Не говоря уже о том, что подумав, можно сообразить, что автора интересует длина строки. И написать код, который корректно, но не столь императивно следует всем условиям задачи:
    function is_empty(&$var)
    {
        return !($var || (is_scalar($var) && strlen($var)));
    }

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

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

    Пять лет, говоришь, разработкой сайтов занимаешься? Ну-ну.
    Ответ написан
  • Как сделать проверку на успешность записи?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Трудное детство, деревянные игрушки, прибитые к подоконнику...
    Ответ написан
  • Где ошибка в синтаксисе?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В коде.

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    SELECT *, to_days(curdate()) - to_days(date_add) as diff
    FROM track_tabl WHERE id_user=?
    Ответ написан
    Комментировать
  • Для чего нужно использовать парметр PDO::PARAM_INT в функции bindParam() ?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для начала ответим на вопрос буквально:

    конечно же, в настройках соединения прописано
    PDO::ATTR_EMULATE_PREPARES => false
    В этом случае - вообще незачем.
    Если эмуляция отключена, то можно вообще никогда не указывать тип.

    Правда, насчет "конечно" ты поторопился. Ничего "конечного" в отключении эмуляции нет - оба варианта одинаково безопасные.

    И вот если эмуляцию включить, то как раз и возникнет единственный случай, когда придется биндить с указанием типа: если у тебя в запросе передаются параметры в LIMIT. Если в запросе есть оператор LIMIT и в него передаются параметры, то их надо обязательно биндить через PDO::PARAM_INT - иначе запрос выдаст ошибку.
    Мало того - передаваемые данные надо самостоятельно привести к типу int - PDO это за тебя делать не будет!

    Теперь ответим в общем, объясняя твои многочисленные заблуждения:

    1. Как тебе уже объяснили выше, инъекция - это не про сохранение в базе. Это именно про выполнение запроса. Так что тип поля в БД не имеет значения.
    2. Инъекцию через PDO провести нельзя только если на 100% соблюдается условие "любые данные попадают в запрос только через плейсхолдеры" - просто самим фактом своего присутствия PDO ничего ни от кого не защищает. Кстати, соблюдение этого правила не так просто, как кажется. Решение для большинства нетривиальных случаев можно посмотреть здесь: phpfaq.ru/pdo
    3. Самое важное: если мы используем плейсхолдеры, то все остальное уже неважно. Указывай какой хочешь тип, или не указывай вовсе - инъекции не будет. То есть, к безопасности твой вопрос про указание типа отношения не имеет.
    4. Если ты не указал тип, то по умолчанию берется PDO::PARAM_STR. Это очень удобно, поскольку БД (по крайней мере - mysql) всегда корректно обработает любые данные, если они переданы, как строки

    Так что, я думаю, что ты теперь и сам можешь ответить на вопрос, "зачем указывать тип".
    И будешь писать просто
    $sth = $dbh->prepare('SELECT * FROM fruit WHERE calories < ? AND colour = ?');
    $sth->execute([$_POST['calories'],$_POST['colour']]);
    Ответ написан
    1 комментарий
  • Печать картинок из папки на сервере js/php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Сначала надо подключить принтер...
    Ответ написан
    Комментировать
  • Как рассчитать разницу между датами PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    SELECT to_days(curdate()) - to_days(date_add) as diff FROM track_tabl WHERE id_user=?
    Ответ написан
    Комментировать
  • Как реализовать замену параметров в строке php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    https://www.google.ru/search?q=php+замена+подстроки

    Поверь, это совсем несложно
    Ответ написан
    Комментировать