Задать вопрос
  • Как реализовать корректную систему удаления комментария?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    для того чтобы удалить конкретный комментарий, нужно передавать его id, ну и тогда запрос будет:
    DELETE FROM `comments` 
    WHERE `user_id` = :user_id 
    and `id` = :comment_id

    Кроме того, в куках держать айди пользователя нельзя (я спокойно могу напихать в свои куки любой айди и рулить всеми доступами рандомного пользователя). Для этого есть сессии. Так же, для удаления комментариев лучше использовать специальное поле, отвечающее за статус комментария, меняя его на (условно) "удален".

    Так же, для таких случаев лучше подходит яваскрипт и аякс запросы, чем перезагрузка страницы формой.
    Ответ написан
  • Как и где практиковать php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    У меня вот такой вопрос, как и где мне практиковать php?
    Как и все выучившие основы - пиши соц. сеть.

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

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

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Сейчас все работает криво. Не знаю как переписать скрипты? помогите разобраться!
    Код сам по себе "не айс"...
    Во первых не надо использовать инлайновый вызов функций в элементах, выносите это в евентлистенеры.
    Во вторых - логично было бы прятать все переключаемые элементы, а уже затем показывать нужный, вместо этого вы зачем то переключаете состояние выбранного элемента.
    В третьих - для передачи параметров удобно использовать дата атрибуты, тогда их легко использовать в листенерах через this.
    Ответ написан
  • Как реализовать условие?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Но при наведении первый элемент скрывается, но второй не появляется. В чем проблема, можете объяснить
    Где цсс, где разметка? Подозреваю что разметка рассчитана на более стандартные hide/show, а не на смену прозрачности (что само по себе дурацкое решение)...

    PS: Все работает, хотя конечно в идеале надо бы обернуть в документ реди...
    https://jsfiddle.net/1zkaexu0/
    Ответ написан
    5 комментариев
  • Как дополнить массив?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Чет вообще пошли вопросы уровня третьеклассников...
    $faucet_arr['status'] = 'ok';
    echo json_encode($faucet_arr);
    Ответ написан
    Комментировать
  • Как на jquery записать data атрибут в html?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    $('.block').text().data('vin'); вы тексту как элементу пытаетесь задать дата атрибут. Посмотрите доку что-ли, как работает text().
    Ответ написан
    Комментировать
  • Как сделать чтобы кнопка на js сработала только 1 раз?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    removeEventListener()
    Ответ написан
    Комментировать
  • Не редактируется БД через 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
    Если все работает, то зачем мне помещать код в эти функции? Можете привести пару примеров, в которых код не будет работать, если я не буду помещать его в эти функции?
    Не факт что на низкой скорости загрузки весь хтмл прогрузится к моменту загрузки скрипта и все элементы будут доступны. Кроме того - для улучшения загрузки скрипты стараются подгружать в самом низу дом дерева, то есть перед закрывающим боди тегом. Это ускоряет загрузку контента, не тратя времени на прогрузку скриптов.
    Ответ написан