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

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

    Автор уже сам понял, что, разумеется, дело не в условном операторе (и не может быть). Но все равно упорно стучит по столу, и проверяет что угодно, но не возврат конкретной функции
    Ответ написан
    1 комментарий
  • Как пользоваться stdout?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Пользоваться php://stdout в подавляющем большинстве случаев абсолютно бессмысленно - куда проще тупо написать echo

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

    Логи искать там, где вы их положили. За редким исключением, имя лог файла надо указывать явно. Если это консольный скрипт, то использовать эхо, а вывод перенаправлять в файл PHP test.php > log.txt
    Это будет перенаправление стдаута в файл.

    Если скрипт вызывается по НТТР то никакого стдаута, пишем в обычный файл как обычно
    Ответ написан
    Комментировать
  • Почему этот код так странно себя ведет?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Идеальный пример опыта "у таракана уши в ногах".

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

    Перепиши свой опыт БЕЗ условия,
    function test(){
        yield 1;
    }
    echo test();

    И подумай, причем здесь вообще if.
    Ответ написан
    Комментировать
  • Как лучше хранить изображений? Одна папка или много?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    С разделителями в бд вообще никогда ничего хранить не надо.
    Если информация о файлах в БД не нужна, то не хранить её там вообще.
    Делать отдельные папки будет вполне достаточно.
    Ответ написан
    5 комментариев
  • Как решить правильно простенькую задачку по php?

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

    Это очень забавный вопрос :)
    хотя, как вы видите,его у меня в строке $str нет.

    Как мы видим, его у тебя там есть :)
    Ответ написан
    2 комментария
  • Запись переменных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    > проблема в функции, если пишу ее в while получаю ошибку Cannot redeclare priceUsd()

    выносить из цикла надо только объявление функции.
    А вызов функции, разумеется, надо оставить внутри цикла.

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

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    НИКАК не измерять
    Все функции РНР работают одинаково быстро.
    Заниматься подобными измерениями на пустом месте - очень тяжелое заболевание.
    Просто забудьте про подобные измерения и займитесь чем-нибудь полезным.
    Ответ написан
    2 комментария
  • Как вывести данные SQL в переменную?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Сначала надо соединиться с базой данных

    Дальше все зависит от того, откуда берется 123.
    Если 123 так всегда и написано в вопросе (что вряд ли), то так.
    $query ="SELECT money FROM bot WHERE id_vk = 123";
    $money = $pdo->query($query)->fetchColumn();

    А если 123 сама лежит в переменной, то так
    $query ="SELECT money FROM bot WHERE id_vk = ?";
    $stmt = $pdo->prepare($query);
    $stmt->execute([$id_vk]);
    $money = $stmt->fetchColumn();
    Ответ написан
    1 комментарий
  • Как создать индивидуальный профиль, чтобы перейдя по ссылке на него можно было зайти?

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

    Любую.
    Создание страницы, которая отображает информацию из БД по запросу - это самая базовая операция, которая только есть в веб-программировании, и она рассматривается в любой литературе.

    Передать значение в адресной строке - добавить к ней строку вида ?peremennaya=znachenie
    Получить значение из адресной строки - массив $_GET
    Получить данные из БД - запросить их с помощью PDO

    Делаешь ссылку вида http://moi.sait/profile.php?id=идентификатор пользователя и в файле profile.php пишешь простой код для получения данных из БД
    Ответ написан
    4 комментария
  • Как запретить пользователю обращаться к серверным PHP скриптам по url?

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

    Остальные можно поместить в папку выше корня веб-сервера. Но вообще это бессмысленная затея, ,так что расслабься и займись лучше чем-нибудь полезным.
    Ответ написан
    Комментировать
  • Не могу понять ошибку php Couldn't fetch mysqli_result?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Такое сообщение об ошибке появляется, если результат уже закрыт, а ты пытаешься из него получить данные. Это значит что ты где-то в коде вызываешь free_result перед fetch

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Причина в настройках сервера. На 3v4l сервер настроен правильно, а дома через какой-нибудь убогий вамп или опенсервер включен output buffering чтобы нубы не так сильно рыдали, написав свобю первую кривую программу.
    Ответ написан
    2 комментария
  • Какое время запроса к Базе Данных можно считать приемлемым?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Какое время запроса к Базе Данных можно считать приемлемым?

    0.2 для сложного запроса это много, но терпимо
    Получается, если на сайте 5 человек одновременно сделают такой запрос, то последний получит ответ через 1 секунду? Или они будут обработаны параллельно.

    Они будут обработаны параллельно.
    А если на странице будет 1000 человек,

    "на странице 1000 человек" и "1000 человек сделают запрос одновременно" - это ОЧЕНЬ разные цифры. На два порядка. Пользователь "на странице" не делает запрос каждую секунду. Обычно он еще читает и как-то работает с полученной информацией. Плюс свои влажные эротические мечты следует контролировать. У тебя есть сейчас 1000 одновременных пользователей? я думаю, что и двух нету. Вот и не надо забивать себе голову.
    Как понять какое время запроса к БД будет адекватным?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для этого служит метод PDOStatement::fetchColumn

    $name = $pdo->query("SELECT name FROM user WHERE id = 2")->fetchColumn();
    Ответ написан
    Комментировать
  • Если уже залили шелл и хотят слить мой скрипт?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Какой-то странный вопрос, больше похожий на паранойю.

    постоянно пытаются ломать судя по логам - попытки sql инъекции где только можно, в любой инпут

    Это не показатель популярности ресурса у хакеров, а рутина. Тупые дети со всего мира запускают веерное сканирование, этого добра полно в логах любого сайта.

    хочет слить проект в паблик

    Это самая странная часть. Шел уже залит, и хакер сидит и ждёт пока ты задашь вопрос на тостере?
    Ответ написан
    4 комментария
  • Как сформировать внешний URL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Подскажите, пожалуйста, как же правильно отформатировать адрес сайта из формы обратной связи и сформировать ссылку?
    $url = substr($url, 0, 4) == 'http' ? $url : "http://$url";
    if (!filter_var($url, FILTER_VALIDATE_URL)) {
         $errors['url'] = "введен некорректный адрес сайта";
    }
    Ответ написан
  • Как правильно составить условие IF?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Написано же черным по белому, обращаетесь к $response['error'] как к массиву, а там строка.

    Сначала var_dump($response), а потом уже условия писать.
    Ответ написан
    Комментировать
  • Импорт из CSV в MySQL, как решить проблему с кириллицей?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Учим азы житейской логики.

    Чтобы заявлять что "Конвертирование Unix "времеми" в понятную дату не работает", нельзя конвертировать "то что приходит из базы". Потому что ты не знаешь, что приходит из базы.

    Чтобы делать такие заявления, надо брать метку времени юникс, и конвертироввть именно её.

    А если конвертирование не работает при получении данных из базы, то взять полученные данные двумя пальчиками и внимательно посмотреть на свет: а что ж у тебя такое диковинное лежит в базе данных под видом метки времени Юникс. оператор var_dump() тебе знаком?

    В общем, главное правило программиста - не только совершить какое-то действие, но и проверить, что на вход были поданы корректные данные, а на выходе лежит то что ожидалось.
    Ответ написан
    2 комментария