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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Классы могут выглядеть как угодно.
    К синтакису вызова "структура объектов" (на самом деле классов) не имеет никакого отношения.

    В РНР используется унифицированный синтаксис. К результату любого выражения в РНР можно обратиться так же как к переменной.
    Если выражение возвращает массив, то можно приписать скобочки и обратиться к элементу возвращаемого массива
    echo function()[1];
    Если выражение возвращает объект, то можно приписать стрелочку обратиться к методу или свойству
    echo function()[1]->hello;

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

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

    Я уж не знаю, какой клоун подсказал тебе делать shell_exec(‘sed -n 2p ./icemeta.txt’); (что само по себе уже дичь, независимо от решаемой задачи), но XML надо читать нормально, а не вырезать из него строчки через спину автогеном.

    Вообще запомни простое правило - для каждого специального формата в РНР есть специальные средства работы с ним. И надо всегда использовать только их. Иначе твои "ненужные симолы" покажутся безобидным баловством на фоне других проблем.

    В данном случае вместо всего этого винегрета надо использовать simplexml_load_file(), и дальше рабтать с полученным объектом.
    Ответ написан
    1 комментарий
  • Как заполнить ключ массива значениями другого массива php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ты сам определись сначала, тебе объединить, или заменить.
    Если объединить, то пустая запись и должна остаться.
    если тебе тупо тупо положить в data['blog_cat_id'] то что лежит в $allSpecCat, то надо просто тупо положить в data['blog_cat_id'] то что лежит в $allSpecCat
    Ответ написан
  • Как передавать соединение с БД (PDO) в php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    При создании объекта через конструктор.

    Статьями тут не обойдёшься, надо садиться за учебники и начинать потихоньку осваивать ООП.
    Банда четырех, Дядюшка Боб Мартин тебе в помощь
    Ответ написан
    Комментировать
  • Как выводить ответ API в таблице каждую секунду?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Первым делом выкинуть отовсюду вот эту строчку
    <meta http-equiv="Content-Type"content="text/html;charset=utf-8"/>

    которая вообще ни на что не влияет, но но все её пишут потому что в интернете полно обезьян

    Потом вместо "всяких SET NAMES кодировка". один раз правильно задать правильную кодировку.

    Судя по тексту вопроса, ничего сложнее mysqli ты не освоил.
    значит после mysqli_connect() yнадо написать
    mysqli_set_charset($conn,'utf8mb4');
    не забыв вместо $conn написать имя переменной с объектом mysqli.
    Ответ написан
    1 комментарий
  • Rtrim не работает php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
  • Как можно вывести 5 имен через запятую?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В цикле.
    Все повторяющиеся операции делаются в цикле.

    Сделать цикл на 5 итераций, внтури вызывать свою функцию
    и проверять итерацию, если пятая - поставить точку, иначе - запятая
    Ответ написан
  • Как поместить php внутри echo?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Выкинуть РНР совсем

    <?php
    $cnt = $counts[$arProps[3]['VALUE']] - 1;
    if($cnt >= 1){
    echo "
        <div class='calendar__day-more--wrap'>
          <a class='calendar__day-more' href='{$arProps[3]['VALUE']}'>
            Еще $cnt
          </a>
        </div>
    ";
    }
    ?>
    Ответ написан
    Комментировать
  • Как сохранить данные с переносами строк если они имеются?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Использовать nl2br не при записи в базу
    Ответ написан
  • Как сделать быстрый поиск строки по подстроке в большом файле на PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    То что ComodoHacker написал.

    Ну или
    shell_exec("grep ". escapeshellarg($podstroka)." ". $filename);
    - самый оптимальный вариант (после базы данных)

    Если же будешь костылить сам, то имей в виду, fgetcsv примерно в 40 раз медленнее тупого exolode (дада, я сама офигела!). и если у тебя нет сложных данных (кавычек, переносов строк), то стоит подумать о замене.

    Только ради бога, сделай лицо попроще. Ты УЖЕ читаешь построчно. Нет НИ МАЛЕЙШЕЙ причины отдвать результат "чанками" и дальше возиться совсеми slice values. Выкини всю эту красоту, и сделай обычный цикл с while
    Ответ написан
    Комментировать
  • Как лучше хранить спец цены если их 1000 для каждого клиента?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ну конкретно этот кривоват, и не реализует все возможности PDO.
    Навскидку:
    - exit('Error connecting to database: ' . $e->getMessage()); - это позор
    - self::$sth - бессмыслица
    - function getAll - делает обрезание оригинальному методу ПДО, который умеет возвращать данные в десятках различных форматов
    - function getValue - стыд, автор не знает что в ПДО есть готовая функция для этого.

    Если говорить о таких вот одностраничниках, то я бы рекомендовал попытаться напистаь своё.
    Но судя по всему, это для тебя задача неподъемная.
    В таком случае, на твоем месте я сначала поучился работать с ванильным PDO. Это реально важно. Это надо обязательно сделать перед тем как начинать использовать всякие обертки. чтобы понимать хотя бы примерно что они там внутри себя делают. А после этого все-таки писал бы свой класс.

    В крайнем случае, ограничился бы функцией-хелпером:

    function pdo($pdo, $sql, $args = NULL)
    {
        $stmt = $pdo->prepare($sql);
        $stmt->execute($args);
        return $stmt;
    }


    Ключевое слово здесь - return $stmt;. Оно позволяет работать с результатом запроса.

    // узнать количество строк
    $count = pdo($pdo, "SELECT count(*) FROM users WHERE role=?",[$role])->fetchColumn();
    
    // получить юзера по адресу
    $user = pdo($pdo, "SELECT * FROM users WHERE email=?", [$email])->fetch();
    
    // тупо запросить массив строк
    $data = pdo($pdo, "SELECT * FROM users WHERE salary > ?", [$salary])->fetchAll();
    
    // получить количество удаленных строк 
    $deleted = pdo($pdo, "DELETE FROM users WHERE id=?", [$id])->rowCount();
    
    // вставка
    pdo($pdo, "INSERT INTO users VALUES (null, ?,?,?)", [$name, $email, $password]);
    
    // получить массив строк в виде ключ-значение
    $indexed = pdo($pdo, "SELECT id, name FROM users")->fetchAll(PDO::FETCH_KEY_PAIR);


    Если же хочется чтобы прям как у больших пацанов, но не такое зубодробительно сложное, то https://github.com/auraphp/Aura.Sql
    Ответ написан
    Комментировать
  • Как спарсить из файла конкретную строку?

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

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

    И дальше уже всё просто: тупо пишешь свои переменные в строку
    $rez = 'Название';
    $year = '2007';
    $title = "$rez ($year)";
    Ответ написан
    Комментировать
  • Как убрать ошибки на РHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    $lang = $params['lang'] ?? $this->lang_id();
    Ответ написан
  • Можно-ли улучшить этот код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. выкинуть все локейшены с ошибками. это дикость, ни один нормальный сайт так не делает. ошибки надо показывать либо сразу, либо через сессию. локейшены с ошибками встречаются только у дебилов, которые делают видео на ютубе для других дебилов. не надо так палиться сразу.
    2. выкинуть домен из ссылок. ты серьёзно собираешься переписывать все ссылки, когда у тебя сайт с временного домена переедет на постоянный? а потом обратно - когда надо будет потестить локально? header('Location: /AUTH-2/Sign_In/'); достаточно для единственного локейшена, который нужен в этом коде
    3. убрать всю эту лестницу иф-ов, делать все проверки на одном уровне. ошибки собирать в массив. перед вставкой в БД проверить массив на пустоту.
    4. if ($row->Email != $email) - масло масляное. ты УЖЕ проверил емейл в базе, зачем еще раз проверять?
    5. else if($row->Email == $email) { - это уже какой-то совсем адок. Ты УЖЕ проверил, что емейл не совпадает. причем два раза. В else мы попадём, если емейлы совпдают. Ещё раз проверять не надо. Два алкоголика садятся на трамвай, один спрашивает водителя - я этом номере до вокзала доеду? Водитель - нет. Второй алкаш - а я?
    6. внизу у тебя ссылка на password_verify, но хэшируешь ты все равно кривым алгоритмом. Не осилил?
    7. все эти куличики в песочнице с $client_Code $server_Code - это какой-то адок с точки зрения безопасности. Любой школьник, который не тупее дауна, поломает все твои "сессии" за 5 минут.
    8. setcookie("PHPSESSID", $_COOKIE['PHPSESSID'], 0, '/', '.tsecret.net'); - опять совершенно бессмысленная строчка. К чему она? Зачем? Что ты хотел тут сказать? И кому?
    9. Разбей это простыню хотя бы на функции. Никакой солид у тебя конечно не получится, как и у Георгий Котов который сам не понимает что это значит. Но хотя бы разделить проверки, запись в бд, и отправку емейла можно.

    В целом - из плюсов только нормальная работа с БД, в остальном на троечку, и местами - кол (за дыры в безопасности и отсутствие логики)
    Ответ написан
    5 комментариев
  • .htaccess как отредактировать код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Господи, никогда ничего не надо передавать из .htaccess.

    Всё есть в РНР.
    Можешь объяснить, зачем ты хочешь передавать в РНР то, что в нём уже есть?
    Ответ написан