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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Стереть скрипт браузерной игры и больше не делать таких глупостей
    Ответ написан
    4 комментария
  • Аномалии curl и file_get, цифра ноль это 4 символа?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Первые 3 байта - это BOM
    Ответ написан
    1 комментарий
  • Как проверить получаемые данные через POST?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    > Чем Вы обычно пользуетесь для тестового приема и анализа POST данных ?

    Я обычно использую РНР
    Ответ написан
  • Как вывести полученные данные с разными 'id' в одинаковые формы?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если я правильно понял смысл поля stars_id, то выкинуть COUNT и собрать результат в массив:
    $result = "SELECT stars_id, round(AVG(val),1) as average FROM stars GROUP BY stars_id"; 
    $data = mysqli_query($connectBD, $result);
    while ($row = mysql_fetch_assoc($data)) {
        $stars[$row['stars_id']] = $row['average'];
    }

    и дальше можно выводить рейтинг по id, echo $stars[$id];

    Но вообще по-хорошему надо получать рейтинг сразу с товарами, одним запросом

    select g.*, round(AVG(val),1) as stars FROM goods g, stars s WHERE stars_id=g.id GROUP BY g.id
    Ответ написан
    Комментировать
  • Абсолютные пути сайта в realpath?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В огороде бузина, а в киеве дядька.
    Подключаем конфиг в файле, который не найден.

    404 означает что адрес не найден. Если веб-сервер не нашел РНР файл, этот файл и не выполнился. Если РНР файл не запустился, то до "подобной конструкции" дело вообще не дошло.
    Чтобы не было 404, надо указывать правильный путь к файлу, безо всяких realpath, конфигов и прочего.

    realpath к 404 вообще никакого отношения не имеет. Читать до просветления: phpfaq.ru/newbie/paths
    Ответ написан
  • Как игнорировать вывод функции PHP?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Надо к файлу подключать не БД, а HTML.

    У тебя у самого судороги не начинаются, когда ты смотришь вот на это
    <div class=\"col-md-4 col-sm-6 my-3 my-md-0\">
      <form action=\"index.php\" method=\"post\">
        <div class=\"card shadow\">
          <a href='./index.php?product=$productid'>

    ?
    А писать все эти палочки и кавычечки не задолбался?

    А теперь подмай, зачем тебе база данных в HTML?

    Не проще выполнить свой запрос в основном файле, там же, где делаются остальные запросы, а в этом, во-первых, писать HTML как есть,

    <div class="col-md-4 col-sm-6 my-3 my-md-0">
      <form action="index.php" method="post">
        <div class="card shadow">
          <a href="./index.php?product=<?=$productid?>">
          <div id="card-top">


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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Проще всего перевернуть порядок в пхп
    Ответ написан
  • Почему я не получаю JSON-ответ в конфиг, когда посылаю GET-запрос с помощью PHP?

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

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

    Направлять надо на ОДНУ страницу.
    страница должна быть не html, а РНР
    На странице получать информацию по id юзера.
    id юзера брать из сессии.
    Ответ написан
  • Как найти статью на хабре про то, что новости крадут наше время?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Понимаю что оффтопик, но не удержусь, и разовью мысль, высказанную в комментарии
    Время крадут статьи про то, что новости крадут наше время.
    Время крадут вопросы про то, как найти статью на Хабре про то, что новости крадут наше время (причём, как у спрашивающего крадут, так и у отвечающих).

    Поэтому потрачу немного своего времени, пофилософствовав на тему

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

    То же самое и со временем - если это не новости то игрушки, сидение на тостере, сериалы, инста челленджи, ютубочка, влогеры, инфлюэнсеры - несть им числа, выбирай на вкус.

    То есть тут новости - это скорее не причина, а следствие. Если натура цельная, есть характер и талант - то человек и не будет разбрасываться на ерунду. И почитать новости в обед ему ни капли не повредит. А если человек сам по себе шаляй-валяй, ни к чему толком душа не лежит, то неча на новости пенять - найти способ убийства времени в наше время не проблема.

    Вот какую вещь я действительно считаю реальным пожирателем времени - это всплывающие нотификации. Я бы за это ввел уголовную ответственность. Даже если ты в кои-то веки собрался заняться полезным делом, то эта зараза всё равно не даст сосредоточиться. Каждый сайт, каждое приложение, каждая мелкая недопрограмма в телефоне норовит подергать тебя за штаны - ой смотри друган погыгыкал в фасебучеке. Ой, новое видео на ютубочке! Ой, в твиттере кто-то чирикнул. Ой, очередная конспирология в телеграмчике. Мемасики посмотреть, посты покомментировать, комменты подискутировать - все орут, дергают за штаны, давай уделяй нам внимание, сливай свое время в унитаз! Так что как первый шаг к экономии времени я рекомендую отрубить все нотификации в телефоне кроме мессенджеров, и на всех каналах в телеге.

    Да, и по поводу поиска. В первую очередь надо ограничивать поиск сайтом, добавив в строку поиска site:habr.com. Плюс можно через меню ограничить поиск по времени. Ну и играться с плюсиками, добавляя обязательные в выдаче слова, чтобы вырваться из "темы", в которую гуголь запихивает поисковый запрос, и отказывается выдавать результаты из любой другой области.
    Ответ написан
    2 комментария
  • Как правильно пересобрать массив?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Лучше сразу получать в нужном виде
    https://phpdelusions.net/pdo/fetch_modes#FETCH_GROUP
    Ответ написан
    Комментировать
  • Как получить данне из БД и вставить их в PHP код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А что - три отдельных поля в таблице base_post нельзя было сделать? Обязательно было в одно пихать?
    Ответ написан
  • Не работает pdo php?

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

    ERRMODE должно быть PDO::ERRMODE_EXCEPTION
    в DSN не надо писать отсебятину. что такое $dbname?!
    try catch надо выкинуть
    var_dump($sth) вернёт не то что ты думаешь
    надо добавить charset, чтобы потом снова не бегать с вопросами "ой у миня кракозябры"

    <?php
    $host = 'localhost';
    $user = 'root';
    $password = 'root';
    $db_name = 'db_des';
    $charset = 'utf8mb4';
    $options = [
      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
      PDO::ATTR_EMULATE_PREPARES => true,
      PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ];
    $pdo = new PDO("mysql:host=$host;dbname=$db_name;charset=$charset", $user, $password, $options);
    
    $sth = $pdo->query('SELECT * FROM `pages`');
    var_dump($sth->fetchAll());
    Ответ написан
  • Насколько хорош w3schools.com для старта в изучении php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Гайд по РНР w3shools считается позором РНР сообщества. Его называют не иначе как w3fools.

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

    Надо взять нормальну книгу, выше уже рекомендовавшуюся Котерова и Симдянова.

    Хочу сразу предостеречь от видеокурсов на ютубе. Снимают их люди, не сильно ушедшие от вас в плане опыта, привлечённые обманчивой простотой языка РНР. Всех их роднит одно свойство - они отлично рассказывают что делать, когда всё работает. Но ни один не объясняет, что делать, когда ничего не работает и как сделать, чтобы всегда работало. У всех авторов с ютубочки (как и с w3fools) кругозор с гулькин нос. Они поголовно не понимают, что нацарапанный ими код работает только в тепличных условиях, но тут же ломается в реальном окружении, ведет к ошибкам и уязвимостям.

    про geeekbrains ничего не могу сказать, а htmlacademy.ru пока не стоит своих денег.
    Хотя их подход достаточно интересный - учться с наставником, но учебник очень неровный - местами ничего, а местами написан левой пяткой, компиляция из тех же w3fools и устаревших учебников.

    После освоения теории надо переходить к практике. Написать что-то своё. Гостевую книгу, маленькую соцсеть. сервис-файлохранилище, страничку игрового клана.

    Поле этого надо правдамии неправдами искать работу джуна в офисе. Любая учёба которая подразумевает варку в собственном соку приводит к деградации.

    Собствено говоря, в реальности существует два языка РНР - нормальный современный язык программирования и РНР говнокодеров с w3shools. Последний очень живуч, благодаря миллионам сайтов и видео, которые продвигают его. И нормальному РНР практически нерально научиться где-то кроме нормального офиса.
    Ответ написан
    Комментировать
  • Как запретить запись экрана?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак.
    Ответ написан
    Комментировать
  • Как защитить сайт от взлома по GET запросу?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак не защищать.
    Никаких "взломов" по "GET запросу" в природе не существует.
    Ответ написан
    3 комментария
  • Не устанавливается подключение к Базе Данных php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А теперь правильный ответ.
    Как минимум надо писать вот так:
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli('localhost','root','','test');
    $mysqli->set_charset('utf8mb4');

    А лучше полностью так как описано по ссылке выше.
    Ответ написан
    Комментировать
  • Как подключиться к MySQL через Powershell 2.0?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    mysql -h database_hostname -u user_name -puser_password database_name
    Ответ написан
    Комментировать