• Не редактируется БД через PHP. Что делать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $id = $_GET['id'];
    $_id = mysqli_real_escape_string($link, $id);
    Ок, то что мы не умеем в подготовленные выражения вместо бредового "экранирования" пол беды, и даже не страшно что операцию так то можно в 1 строку прописать, но далее
    $name = $_POST['name'];
    $age = $_POST['age'];
    $salary = $_POST['salary'];
    Ну типа, ид мы проверили, на этом наши полномочия все...

    Файл Update.php не выдает никаких ошибок после введения формы, но при этом данные не вносятся.

    Во первых - перестаньте называть файлы в разном регистре, если это не классы!!!
    Во вторых - смотрим доку по mysqli, в частности рекомендуемая процедура подключения:
    <?php
    /* Вы должны включить отчёт об ошибках для mysqli, прежде чем пытаться установить соединение */
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
    /* Установите желаемую кодировку после установления соединения */
    mysqli_set_charset($mysqli, 'utf8mb4');
    printf("Успешно... %s\n", mysqli_get_host_info($mysqli));
    После этого уже можно что-то смотреть, например что вернул print_r ($check);...
    Ответ написан
    2 комментария
  • Почему выдает ошибку: Сайт выполнил переадресацию слишком много раз, когда ввожу header(Location: /)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) зачем require 'config.php'; в обоих файлах?
    2) судя по всему, код первого файла должен выполняться только при субмите формы, соответственно весь код должен быть обернут в проверку метода запроса, смотрите $_SERVER['REQUEST_METHOD'].
    Ответ написан
    6 комментариев
  • Можно ли и как обработать ajax в js?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Ajax, как я понял, существует для передачи данных на сервер и обработки ответа от него.
    Важное уточнение - без перезагрузки страницы. То есть как раз поведение противоположное тому что вам надо.

    Знаю, что можно сохранять их, например, в локальном хранилище или куках, но... Выглядит это не особо профессионально :D.
    Зависит от целей и задач передачи. Если данные чисто информационного характера, не влияющие на функционал серверной части, то хранение в куках или локалстораже оправдано (например некоторая кастомизация внешнего вида станиц на основе жс и переменных из локального хранилища). Защищенные данные обычно хранят на стороне сервера, например в сессии.

    А для передачи пользовательских данных обычно используются формы (пример - логин или регистрация), которые передают от одной страницы в другую зашифрованные данные либо как параметры урл (метод гет), либо через заголовки и тело запроса (метод пост).
    Ответ написан
    1 комментарий
  • VM719:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 ошибка?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Смотрим содержимое возвращаемого ответа от сервера, скорее всего там какой-то варнинг, заключенный в хтмл теги.
    Ответ написан
    1 комментарий
  • Как выбирать последующие записи в SQL?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    в пхп передаются параметры прошлого запроса (пофиг как, через куки, гет запросом, божественным откровением или сессионной переменной - не суть), а пых вычисляет новое смещение и передает его в запрос вида limit 10, 5 (про лимиты читать в доке)
    Ответ написан
  • Можно ли png преобразовать в svg например в адоб иллюстратор?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых какую линию и где там вообще круг справа? Волнистый замкнутый контур за спиной рисованного чувака?
    Во вторых - проще нарисовать от руки, так как это достаточно элементарные фигуры. Рисуем круг, делаем точку изгиба, множим до нужного числа, выбираем через одну, трансформ в центр - сгладить углы...
    Ответ написан
    Комментировать
  • Почему не срабатывает ajax и нет ошибок?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    открываем инструменты разработчика - нетворк, делаем клик, смотрим что и куда ушло, какой код вернуло, что попало в респонс и что ушло в пэйлоад. После этого думаем, что пошло не так, правим, наслаждаемся заслуженными аплодисментами...
    Ответ написан
  • Как вывести значения из базы даных?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Значения из бд выводятся если вывести их print_rом но в нужных местах они не отображаются. echo data['price'] к примеру не отображается, title тоже
    Это трындеж. Если выводятся через print_r, то и через ечо должны выводится.

    Судя по коду, дело в лени (ну и настройках шорт тега).
    пишите нормальный открывающий пхп тэг, или пользуйтесь шорт ечо: <?=

    PS: и да, с выборкой разберитесь, или форич резалта, или вайл и фетч_ассок...
    Ответ написан
  • Как правильно выставлять кодировку в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Искал решение, почти везде писалось одно и тоже - нужно выставить кодировку при создании базы, нужно вставить команды в конфиг mysql и тому подобное. Всё это у меня стоит, но помогло ток одно решение, а именно - выставлять кодировку при подключение к бд.
    Кодировку абсолютно правильно сказано - надо выставлять везде, так как во первых при переносе или изменении конфигурации софта все съедет на дефолтные настройки, которые везде разные. По этому и есть конфиги и настроечные переменные. Единственно кодировку соединения лучше поставить utf8mb4, так как это более современный и обратно совместимый формат.

    UTF-8, выставляю с помощью - header('Content-Type: text/html; charset=UTF-8');
    Это можно спокойно вынести в конфиг php.ini, или добавить более универсальный код, не требующий руками каждый раз заголовки править: ini_set('default_charset', 'utf-8');
    Ответ написан
    Комментировать
  • В чем проблема с нахождением елемента формы в post?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых
    require_once 'controllers/authController.php';
    require 'templates/header.php';
    здесь отсутствует закрывающий тег пхп, после которого идет хтмл. Подозреваю что там и открывающего нет (в коде вы его не привели).
    Во вторых button type="sumbit" не является инпутом, и передаваться как значение пост не будет.
    В третьих в форме указан signup.php, а выше вы приводите "файл auth". Определитесь, или там переименуйте или тут.

    Ну и первое что нужно сделать - включить вывод ошибок, или смотреть логи, а не тыкать пальцем в небо.
    ini_set('error_reporting',E_ALL);
    ini_set('display_errors', 1);
    session_start();
    ...
    Ответ написан
    3 комментария
  • Появляется новая страница с кодом php что делать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    var forms = document.querySelectorAll(".form")
    Чет я не увидел в коде ни одного элемента с классом form... Если предполагалось выбрать формы, то все таки стоит вешать слушатель на субмит, а не на клик...

    А страница появляется по тому что превентДефаулт на форму не вешается и просто форма уходит обычным постом.
    Ответ написан
    2 комментария
  • Надо ли дожидаться загрузки документа, если скрипт подключается перед закрывающим тегом body?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Если все работает, то зачем мне помещать код в эти функции? Можете привести пару примеров, в которых код не будет работать, если я не буду помещать его в эти функции?
    Не факт что на низкой скорости загрузки весь хтмл прогрузится к моменту загрузки скрипта и все элементы будут доступны. Кроме того - для улучшения загрузки скрипты стараются подгружать в самом низу дом дерева, то есть перед закрывающим боди тегом. Это ускоряет загрузку контента, не тратя времени на прогрузку скриптов.
    Ответ написан
  • Как повторять ajax post-запрос до определенного значения ответа или как выполнять php-функцию и возвращать промежуточные результат юзеру?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    скорее всего вам нужно что-то типа фетч прогресс, а в пхп сделать цикл c выводом данных, и заменить die на echo.
    Ответ написан
    1 комментарий
  • Как на странице дать доступ ко всем элементам из базы данных mysql?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как написать код один раз, чтоб он выводил все id на неё, в цене я просто как-то указывал, что вот тут такой-то id и он подставляет цену.
    Если вам нужны именно ВСЕ записи на одной странице - просто не указывайте условие по ид, тогда вам выдаст все что есть. Получаете список и в цикле while прогоняете ваш mysqli_fetch_assoc($product);. Другой вопрос что страница с условно 5000 наименованиями, мягко говоря не очень читабельна. Но это уже отдельный вопрос.
    Ответ написан
  • Почему не работает скрипт для Selectа?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    замените ваш модный const внутри цикла на var или let, так как по коду вы его активно меняете, что для константы недопустимо.
    Ответ написан
    Комментировать
  • Как сделать шапку как на booking.com?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    position:sticky
    Ответ написан
    Комментировать
  • Почему не работает функция JS?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - где вызов функции то?
    Во вторых:
    a = localStorage.setItem (time , date.getMinutes());
    // https://developer.mozilla.org/ru/docs/Web/API/Storage/setItem#возвращаемые_значения
    b = localStorage.setItem(znach , znn); // то же самое, скорее всего задумывалось getItem()
    if (a == date.getMinutes()) // логично что здесь фигня будет
    Ответ написан
    Комментировать
  • Почему я не могу получить новые значения $_GET в AJAX+PHP, кто-то может помочь?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Но это не происходит,
    Все что "не происходит", "не работает", "работает не так" - термины уборщицы из туалета. Любое программное действие вызывает какой-то описываемый результат - ошибку (которую нужно привести дословно) или конкретное действие (которое тоже поддается описанию, например нужно А, но происходит Б).

    1) Внятно опишите чего вы хотите добиться, а то код у вас сплошная мешанина хтмл, жс и пхп, а сама цель вообще не ясна.
    2) Проверьте консоль браузера на ошибки, они там наверняка есть
    3) Проверьте нетворк, посмотрите что возвращает ваш аякс запрос (хинт - в основном мусор), подумайте почему.

    По мне при вводе в текстовое поле должен быть GET запрос, и формируется $sql переменный и получаются данные.
    Скорее всего все так и происходит, только данные заговнячены, запрос гоняется 2 раза просто так, а с полученными данными все равно ничего не делается...

    PS:
    запросы всегда нужно делать через подготовленные выражения,
    пхп код ВЕСЬ выносится ДО хтмл. В нужных местах в хтмл вы просто выводите заранее полученные значения.
    Ответ написан
  • Сделать option в input?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    подозреваю что вам нужно что-то типа
    <input type="submit" name="rating" value="Замечательное">
    <input type="submit" name="rating" value="Положительное">
    ...
    но проверять соответственно нужно будет текст, а не цифры.

    PS: код просто кошмар...
    Ответ написан
  • Как подобным образом исказить текст? Какой инструмент можно использовать? И какие настройки инструмента?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    патч и строук по патчу инструментом палец, например. Хотя вроде и фильтр такой был в стандартном наборе...
    Ответ написан
    Комментировать