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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В данном конкретном случае
    $data = $stmt->fetchAll(PDO::FETCH_COLUMN);
    но на будущее попробуй понять, что такое вложенные массивы.
    в частности сравни вывод print_r двух массивов
    Ответ написан
    2 комментария
  • Как оптимально проверить строку на наличие эмодзи (PHP + MySQL)?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Учимся пользоваться интернетом
    Как сравнивать время PHP?
    Ответ написан
    Комментировать
  • А вы правда умеете программировать?

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

    Слово "алгоритм" ни в вопросе, ни в многочисленных ответах не встретилось ни разу.

    А я ещё думал, что это такой едкий сарказм, когда я сравниваю пехапешную массу с художниками. Поскольку они не программируют в классическом понимании этого слова - они рисуют, прилежно выводя по порядку заученные команды. Ну или собирают фигурки из лего. Посмотрел в видеокурсе на ютубе в каком порядке их выкладывать - и всё, "мам, я праграмист!"
    И единственный способ решения проблем с полученным "кодом" - это вывалить его на тостер целиком, сопроводив вечным вопросом "подскажите, в чем может быть проблема". Поскольку понятие отладки для художников - это примерно как микрофлора Венеры, существует где-то в параллелльной вселенной.

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

    Вообще, я тут подумал что разница между программистом и таким вот "рисовальщиком" (как мне правильно попеняли в комментах, я обижаю своим сравнением настоящих ухдожников) очень простая - рисовальщик боится не запомнить все функции, а программист пишет свою. Как только ты написал свою первую функцию, чтобы избежать рутинного повторения в стандартной операции - ты сделал первый шаг к тому, чтобы стать программистом. И опа - ты уже можешь забыть десяток стандартных функций, посольку у тебя уже только одна, которая выполняет работу тех десяти. собственно, работа программиста и стстоит, в каком-то смысле, в том, чтобы не использовать (и - соответственно - не запоминать) стандартные функции. У него есть библиотека своих функций
    Ответ написан
    5 комментариев
  • Двойные кавычки и конкатенцаия?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Читать надо было целиком
    Ответ написан
    Комментировать
  • General error: 1366 Incorrect string value: '\xF0\x9D\x95\x8A\xF0\x9D...'?

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

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

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

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Самый тупой вариант: в "самой последней версии mysql" query cache отключен по умолчанию. Но если речь о конкретном запросе с воспроизводимым результатом, то наверное дело не в этом.

    Поэтому надo задавать не вопрос "почему упала в два раза после переезда", а надо разбираться с конкретным запросом.
    Вообще, вопрос конечно из серии "Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит". Неужели так трудно задать конкретный вопрос?
    • создали два LXC контейнера... С какими характеристиками?
    • поставили последнюю версию MySQL... Какую?
    • на некоторых запросах... Каких?
    • меняли настройки базы... Какие?
    • перерыли рекомендации... Какие?


    Всё-таки, вера советского человека в волшебную палочку или там цветик-семицветик нестребима. Что ламер в соседнем вопросе, что владелец прошаренного сервера, могут осилить только один сакраментальный вопрос, "Подскажите, в чем может быть проблема?". С наивной верой в то что решение проблемы - это не сложный и многоступенчатый процесс, для которого нужно предоставить как можно больше информации, а где-то просто есть заветный гвоздик по которому надо просто ударить волшебным молоточком, и всё сразу заработает как надо.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ты не понимаешь одной очень простой вещи. Что база у тебя реляционная. Это всё.
    Как только поймёшь - сразу станет ясно, что в таблице пользователей поле id необходимо.

    В реляционной базе данных таблицы между собой связаны. И что ты будешь писать в связанную таблицу - е-мейл? Серьезно? А если пользователь поменяет его? Будешь по всем таблицам бегать и менять?

    У строки в бд, если она хранит какую-либо информацию, должен быть уникальный, неизменяемый, прикрепленный к ней навечно идентификатор.
    Чтобы независимо от изменения самих данных в строке, ее всегда можно было идентифицировать.
    Ответ написан
    2 комментария
  • Чем отличается функция от генератора?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Наверное, надо почитать про то, что такое генератор и для чего он нужен?
    А не просто посмотреть на код, который его использует?
    Ответ написан
  • SQL-инъекция. Могли бы подсказать, что можно сказать об этом?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Бояться надо не тех запросов, которые вернули 500, а тех, которые вернули 200.

    500 означает что атака не прошла.
    То что ты здесь видишь - это не инъекция, это попытки, проверка на инъекцию. Неудачные.
    Удачные ты здесь не увидишь.

    В принципе, то что код возвращает 500 - это тоже косяк. Это значит что код кривой и потенциально там может быть инъекция. Ну или не может - не видя кода сложно сказать.

    Двигаться в нправлении нанять специалиста
    Ответ написан
    Комментировать
  • Простой вариант обработать адрес после слеша PHP?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Обычно, так же как и всегда.

    К транзакциям твой вопрос не имеет отношения. А только к тому способу, которым ты выполняешь запросы.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как грамотно хранить такие данные и остаться масштабируемым?

    поля вида: user_id, par, value

    проверить, показывали ли юзеру что-то - 1 запрос
    пометить что показывали - 1 запрос
    Ответ написан
    1 комментарий
  • Как сделать вывод данных с текущего аккаунта через MySQL и PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Смотри внимательно.
    1. Надо стартовать сессию
    2. Надо правильно соединиться с БД
    3. Надо не хранить пароль в открытом виде
    4. Надо не пихать переменные прямо в запрос, а всегда передавать отдельно

    session_start();
    $login = $_POST['login'];
    $password = $_POST['password'];
    
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysql = new mysqli ('localhost','root','root','register-bg');
    $mysqli->set_charset($charset);
    
    $stmt = $mysql->prepare("SELECT * FROM `users` WHERE `login` = ?");
    $stmt->bind_param("s", $login);
    $stmt->execute();
    $result = $stmt->get_result();
    $user = $result->fetch_assoc();
    
    if($user && password_verify($password, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
    }


    про password_verify прочтешь самостоятельно

    потом на другой странице
    1. стартовать сессию
    2. получить из неё id
    3. по id получить из базы юзера

    session_start();
    
    include 'mysqli.php';
    
    $stmt = $mysql->prepare("SELECT * FROM `users` WHERE `id` = ?");
    $stmt->bind_param("s", $_SESSION['user_id']);
    $stmt->execute();
    $result = $stmt->get_result();
    $user = $result->fetch_assoc();
    
    echo $user['money'];


    чтобы не писать код соединения каждый раз, его надо вынести в отдельный файл и подключать инклюдом

    если будут вылезать ошибки, их надо гуглить
    Ответ написан
    9 комментариев
  • Как удалить дубликаты из массива?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    https://www.php.net/manual/ru/ref.array.php
    просматриваешь список, находишь нужную функцию
    Ответ написан
    Комментировать