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

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

    Сложно. Невозможно. Сложно. Не стоит.

    Делай на вордпрессе.
    Вордпресс предназначен для людей, которые вообще в программировании не понимают, так что справишься.

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

    Если хочешь заниматься чисто фронтом, то про "сделать сайт" просто забудь, кроме статических сайтов-визиток.
    Если хочешь клепать говносайты для невзыскательных клиентов - учи вродпресс.
    Если хочешь делать нормальные сайты с фронтом на реакте - то кроме фронта учи пхп, mysql и ларавель. Но про "сделать сайт" придется на годик забыть
    Ответ написан
  • PHP скрипт палит базу при неверном подключении?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А теперь правильный ответ.

    PDO - не единственная библиотека в составе РНР. И не она одна выдает ошибки.
    Поэтому искать решение, специфическое для PDO просто глупо. Ошибка при отправке емейла откроет данные для соединения с почтовым сервером - и т.д.

    Отключать показ ошибок надо для всего РНР целиком.

    И делается это очень просто. Добавляешь всего одну строчку в начало файла:

    ini_set('display_errors', 0);

    и всё - ни одна ошибка не появляется на экране! Причем это будут любые ошибки, а не одна конкретная.

    Но тебе всё равно нужно знать, в чем проблема. Чтобы её исправить. Поэтому сам текст ошибки надо писать в лог на сервере. Это тоже делается одной командой:

    ini_set('log_errors', 1);

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос, конечно, дураций, и автор сам не понимает чего хочет, но если отвечать буквально, то чтобы " передать дальше именно в таком виде" ему нужна

    json_encode()

    ну и не добавлять строки вместо чисел, но это уже вопрос не к добавлению, а к исходным данным, а про это вопроса не было
    Ответ написан
  • Безопасность при использовании сессии?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ответы все конечно ад кромешный.

    если создать куки для этого то можно поменять скажем id и оказаться на чужом аккаунте так вот есть ли что-то подобное с сессиями

    нет

    насколько безопасна моя сессия

    вполне безопасна. для этого сессии и придуманы
    Ответ написан
  • Получить данные из цикла вида строки?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    прямо в запросе написать select group_concat(id) и сразу получить свою строку.
    Ответ написан
    Комментировать
  • Почему mysql возвращает пустую строку?

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

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В общем случае -
    mysqldump -р host -u user -ppassword --add-drop-table db_name table_name | mysql -h host1 -u user1 -ppass1


    Если прямого доступа дб на втором хосте нет, то тут могут быть варианты.
    Ответ написан
    Комментировать
  • Подключение css в MVC системе на PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Используйте нормальный шаблонизатор, Twig.

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

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

    Я понимаю что без примера сложно.
    Вот простейший пример того, о чем я писал выше:

    main.twig.html
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
    {% block stylesheets %}
        <link href="/css/main.css" rel="stylesheet">
    {% endblock %}
            <title>{% block title %}Twig Example{% endblock %}</title>
        </head>
        <body>
            {% block content %}{% endblock %}
        </body>
    </html>

    index.twig.html
    {% extends "main.twig.html" %}
    
    {% block content %}
    <h1> index page </h1>
    <li><a href=/page1.php>Page 1</a>
    <li><a href=/page2.php>Page 2</a>
    {% endblock %}

    page1.twig.html
    {% extends "main.twig.html" %}
    
    {% block stylesheets %}
        {{ parent() }}
        <link href="/css/page1.css" rel="stylesheet">
    {% endblock %}
    
    {% block title %}Page 1{% endblock %}
    
    {% block content %}
    <h1> page 1</h1>
    <li><a href=index.php>index</a>
    {% endblock %}
    Ответ написан
    Комментировать
  • Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Подскажите, пожалуйста, в чём проблема?

    В ДНК. Шутка.

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

    Сначала делаем отдельный файл mysqli.php и пишем в него код соединения. И это не одна строчка.
    Код берем отсюда, подставляем свои значения.

    if (isset($_POST['search'])) {
        require 'mysqli.php';
        $stmt= $mysqli->prepare("SELECT * FROM `persons` WHERE firstname=?");
        $stmt->bind_param("s", $_POST['fname']);
        $stmt->execute();
        $result = $stmt->get_result();
        while($r = mysqli_fetch_assoc($result)){ ?>
                        <tr>
                              <td><?= $r['id']; ?></td>
                              <td><?= $r['firstname']; ?></td>
                              <td><?= $r['lastname']; ?></td>
                              <td><?= $r['age']; ?></td>
                              <td><?= $r['gender']; ?></td>
                              <td><?= $r['city']; ?></td>
                          </tr>
                	<?php
       		}
           	} ?>
    Ответ написан
    Комментировать
  • Как изменить данные из формы и вернуть их снова в массив?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    НЕ ХОТЕЛОСЬ БЫ.
    Все эти идиотские "жернова" выкинуть на помойку.

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

    function addTask($db, $name, $task){
        $sql = "INSERT INTO tasks (name, task) VALUES (?,?)";
        $statement = $db->prepare($sql);
        $statement->execute([$name, $task]);
      }
    Ответ написан
    8 комментариев
  • Где найти простой скрипт авторизации PHP7+MySQL+SESSION+COOKIES?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Простой скрипт авторизации MySQL+SESSION на 7 ничем не отличается от 5.6
    Со времен 5.6 в этой области вообще ничего не изменилось.

    Так что если скрипт действительно на 5.6 то можно смело брать и пользоваться.
    Другое дело, что в онлайн туториалах обычно суют код от РНР 4, как например в видео из ответа ниже.
    Надо мне конечно самому заняться, но когда еще руки доайдут

    Если говорить про совсемпростейший вариант, и нарисовать хтмл форму ты можешь самостоятельно, то вот так
    <?php
    if (empty($_POST['email']) || empty($_POST['pass'])) {
        die ("Enter credentials");
    }
    require 'pdo.php';
    $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
    $stmt->execute([$_POST['email']]);
    $user = $stmt->fetch();
    
    if ($user && password_verify($_POST['pass'], $user['pass']))
    {
        session_start();
        $_SESSION['user'] = $user;
        header("Location: /dashboard.php");
        exit;
    } else {
        die ("Wrong credentials");
    }
    Ответ написан
    Комментировать
  • Как добавить сразу несколько файлов (jpeg, png) на сервер?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Открою тебе тайну.
    В твоем компьютере живет волшебный джинн.
    Ты только должен сказать ему свое желание, и бац - он тут же даст миллион ответов.
    Желание надо писать в адресной строке своего браузера.
    Ответ написан
    Комментировать
  • Разная длина strlen на разных машинах?

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

    Учись верить фактам, а не своим фантазиям. Очень важное качество для программиста.

    И заодно учись скромности. Если тебе мерещится, что в твоих проблемах виновата страшная бага в пхп, то присмотрись повнимательнее. Увидишь дурацкую опечатку в своем коде.
    Ответ написан
    9 комментариев
  • Как разобрать массив?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ты же только что этот же вопрос задавал
    Ответ написан
  • Как в шаблон вставить php-файл?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не использовать простой шаблонизатор по типу.
    Использовать либо нормальный шаблон затор например Твиг, либо шаблон на чистом пхп
    Ответ написан
    1 комментарий
  • Как убрать ошибку Uncaught Error: Call to a member function fetch_assoc() on bool?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В ужасе выбросить это поделие на помойку.
    Оставить чистый mysqli
    Код соединения взять отсюда https://phpdelusions.net/mysqli/mysqli_connect
    Вместо get_result_array использовать mysqli_fetch_all()

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

    Но лучше сначала научиться нормально пользоваться готовым классом mysqli, а только потом городить свою поделку
    Ответ написан
  • Почему не подключается PDO?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я думаю, человек спрашивает про операторы ветвления.
    То есть нужен тернарный и его сокращённые формы: элвис, и объединения с null

    (условие) ? значение 1 : значение 2; // если условие, то вернем значение 1, иначе значение 2
    $var ?:  значение 2; // если $var не пустое, то вернем его, если нет - то значение 2
    $var ??  значение 2; // если $var существует, то вернем его, если нет - то значение 2
    Ответ написан
    2 комментария
  • Как правильно реализовать "популярные запросы" на сайте?

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

    Если же хочется сделать по-настоящему список популярных товаров, то показывать надо не то что искали, а то что покупали. По списку заказов ищутся товары, встречающиеся чаще всего
    Ответ написан