• Загрузка с bitbucket.org для composer, получаю ошибку Permission denied (publickey).?

    karabanov
    @karabanov
    Системный администратор
    Добавь в bitbucket твой открытый SSH ключ.
    Ответ написан
    Комментировать
  • Безопасность кода php -> mysql?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос хороший, характерностью имеющихся в коде ошибок.

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

    Плюс мамаша конечно тупит. Данные надо не "экранировать", поскольку почти никто не понимает, что это значит, а отправлять в БД отдельно от запроса.

    Но меня здесь больше интресует не безопасность, а осмысленность данного кода.
    Если элемент "login" попадает в сессию в результате авторизации, то зачем снова делать все эти 100500 запросов в БД?
    Я бы этот код сократил до
    <?php
    require_once $_SERVER["DOCUMENT_ROOT"] . "/engine/core/session.php";
    if (empty($_SESSION["user_id"])) {
        include "login.php";
        die;
    }

    и поместил в profile.php

    При этом убедившись, что код собственно авторизации выглядит как-то так

    $stmt = $conn->prepare("SELECT * FROM users_all WHERE name=?");
    $stmt->bind_param("s", $_POST['name']);
    $stmt->execute();
    $user = $stmt->get_result()->fetch_assoc();
    
    if ($user && password_verify($_POST['password'], $user['password']))
    {
        $_SESSION['user_id'] = $user['id'];
        header("Location: /profile.php");
        die;
    }
    Ответ написан
    Комментировать
  • Как перейти с mysql на elasticsearch?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Никак. "перейти" с базы данных на поисковый движок нельзя.
    Можно сделать поисковый сервис, который будет индексировать информацию, взятую из бд

    На основе этого сервиса сделать полнотекстовый и фасетный поиск.
    А текущую базу данных оставить как есть. Только запросы оптимизировать, чтобы "скорость работы не понижалась"
    Ответ написан
    3 комментария
  • В каком формате файла лучше всего организовать "шпаргалку" проекта, открываемую в VSC?

    Можно например в markdown - там можно у блоков кода писать, какой именно язык внутри записан.
    Ответ написан
    Комментировать
  • В каком формате файла лучше всего организовать "шпаргалку" проекта, открываемую в VSC?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Обычно принято создавать файл README.md в корне проекта, в котором на языке Markdown как раз и делается все то что вы описали в вопросе.
    Ответ написан
    Комментировать
  • Как посчитать число 2 в 1 000 000 000 000 000 степени?

    SagePtr
    @SagePtr
    Еда - это святое
    Начать с правильной формулировки задачи. Вряд ли вам нужно это число, скорее всего, вы пытаетесь решить какую-то другую задачу, но выбрали для решения неправильный метод.
    Ответ написан
    Комментировать
  • Gulp-sass не работает, что за проблемма?

    @alekcena
    Нелинейный наставник
    Вот проблема она описана и показаны причины в Message:
    gulp-sass 5 does not have a default Sass compiler; please set one yourself.
    Both the `sass` and `node-sass` packages are permitted.
    For example, in your gulpfile:

    var sass = require('gulp-sass')(require('sass'));

    В гугл переводчик это.
    Ответ написан
    Комментировать
  • Как починить Ubuntu?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Первая ошибка - поставить окошки. Всё остальное как ком развилось из этого. Ставьте голую убунту, апачи-фигачи, что там вам надо - но не насилуйте сервер плясками с оконными менеджерами, рдп, внц и прочими совершенно лишними для него вещами.
    Ответ написан
    1 комментарий
  • Как выполнить авторизацию в аккаунта при помощи RedBeanPHP?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если подумать, то почти все вопросы новичков вида "Как сделать ххх" не несут никакого смысла.
    Потому что если открыть сам вопрос, то по коду будет совершенно очевидно, что человек и так прекрасно знает, "как сделать это ххх". А вопрос у него - "как разобраться, почему оно не работает?" или - в более общем виде - "научите меня программировать".

    Ну ОК, давайте учиться.

    Главное в программировании - это делать всё по порядку.

    У вас в текущей задаче участвует примерно миллион разных действий: html форма, код, который получает из неё данные, база данных, код, который ищет данные из формы в базе.
    Если вы ещё не освоились со всеми этими элементами, то не надо их писать все подряд.
    Надо делать по очереди, проверяя каждый этап.
    И вопрос задавать не про весь код целиком, про который вам никто никогда не скажет, почему он не работает, а про конкретный этап.

    В данном случае, если у вас база данных не находит пользователя по емейлу, надо сделать что?
    Правильно - исключить все посторонние этапы. То есть написать емейл руками в скрипте и проверить - находит ли его запрос.
    Если не находит - то здесь же, в скрипте, вывести все емейлы, и посмотреть глазками, а есть ли он вообще в базе данных?
    Если нет - то вот она, причина. Найдена самостоятельно за 5 секунд без привлечения мирового сообщества.
    Если есть, но всё равно не находит - то ищем непечатные символы и опечатки. например с помощью функции urlencode(). И исправляем то что она нашла. Русскую букву c или лишний пробел.

    Если написанный руками емейл находит, а пришедший из формы нет, то надо сделать что?
    Правильно - посмотреть на него глазками. А похож ли он на тот который руками написан? Если похож, то снова urlencode. Если не похож - то разбираться со своей формой.

    Если всё равно не работает, то надо исключить другие посторонние факторы, например библиотеки, особенно такие кривые, как redbean. И отлаживаться на чистом PDO.

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

    Отдельно хочу заметить, что все описанные действия может сделать только сам программист. Обращаться за ними к посторонним людям бессмысленно. У них нету вашей базы данных, вашей формы, вашего кода. Все эти вещи можно сделать только самостоятельно. И именно это и является программированием. А не вот это вот "всё указываю верно".
    Ответ написан
    4 комментария
  • Что лучше взять, выделенную БД или подключить свою на vps?

    Zoominger
    @Zoominger
    System Integrator
    Есть ли какая-то разница?

    Безусловно. Локальная база гораздо быстрее в работе на больших объёмах.
    Ответ написан
    2 комментария
  • Почему верстальщики не соблюдают семантику?

    Aetae
    @Aetae
    Тлен
    Зря. Нам слишком мало платят, чтоб париться ещё и за это бесполезное дерьмо. Семантика-_янтика, кого это вообще волнует.)

    Это из той же серии что "правильный" REST - когда можно абсолютно бессмысленно потратить пол дня прикидывая какой же HTTP код лучше всего пойдёт данной ситуации, в итоге либо получив свой "уникальный" кусок мусора, понятный всё равно только тебе, либо завернув все ответы в итоге в 418 200 с нормальным статусом в теле.
    Ответ написан
    5 комментариев
  • Как убрать пробелы при форматирование кода phpstorm?

    Preferences/Settings | Editor | Code Style | PHP | Wrapping and Braces | Function declaration parameters | Align when multiline.
    Ответ написан
    Комментировать
  • Как безопасно передать переменную от JS к PHP чтобы ее нельзя было подменить?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Если в коде фронтенда присутствуют "секретные" данные, значит где-то в момент проектирования приложения нехилый косяк. Это значит от js НЕ ДОЛЖНО приходить данных, непроверяемых через бэкенд.

    Малопонятно что вы пытаетесь сделать, но вы точно делаете это неправильно.
    Ответ написан
    Комментировать
  • Чем отличаются видеокарты с одним чипом разных вендоров?

    Различие в системе охлаждения и схеме питания.
    Ещё различия могут быть в физических размерах.
    Иногда ещё память может различаться (производитель памяти: hynix / samsung)
    Ещё вендоры могут разгон из коробки свой сделать.

    NVIDIA GeForce RTX 3060

    Скорее всего, речь о Founders Edition, которые нвидия продаёт на старте.
    Никаких преимуществ перед другими вендорами нет.
    Ответ написан
    Комментировать
  • Можно ли поменять на ноутбуке встроенный звуковой чип?

    Простой вопрос - простой ответ. Чип поменять можно!
    При ремонте ноутбуков неоднократно менял чипы звуковушек. Но это не факт, что поможет.
    Потому что:
    а) проблема может быть действительно в драйверах или связке драйвер-ОС (т.е. софтовая). Для проверки можно поставить любой из современных линуксов (десктопных), и проверить.
    б) Хрипеть может не сам кодек, а усилитель после него. В каких-то ноутбуках он прямо в чипе (т.е. чип один), в каких-то отдельный. upd. Посмотрел в схеме от похожего - там ALC271X - на динамики прямо с него идёт.
    в) хрипеть могут сами динамики (но если в наушниках то же самое - вероятнее всего не в них дело).
    Ответ написан
    Комментировать
  • Как узнать наличие IP в листе?

    @rPman
    $query2 = $db->prepare("SELECT count(*) FROM accounts WHERE userName LIKE :userName");
    ...
     if ($regusrs > 0) {
        echo "-2";
    этот кусок кода проверяет, есть ли пользователь с таким именем, и если есть, выдает 'ошибку' -2 (кстати почему бы и не 42?), т.е. добавь в sql запрос проверку на ip (храни их тоже в базе) и проверяй по нему.

    Приведенный код отвратителен. Почему методы exploitPatch для проверки данных пользователя называются remove? я правильно понимаю ты удаляешь из емейла, логина и пароля пользователя опасные символы, и с полученными строками их регистрируешь? А потом, когда ты поменяешь эту логику, пользователи с паролями с " начнут обламываться

    Обычно методы проверки называют validate и они должны проверять валидность и возвращать boolean разрешено/запрещено
    Ответ написан
    2 комментария
  • Как работают самокэширующиеся (если это слово подходит) веб-приложения?

    В ютубе реализовано через Service Worker https://developer.mozilla.org/ru/docs/Web/API/Serv...
    Через pwa тоже можно
    Ответ написан
    Комментировать
  • Как бэкапить коробочный битрикс?

    kirk_novozhilov
    @kirk_novozhilov
    Lead Bitrix Developer, Bitrix mentor
    1. Штатный метод.
    Бэкап: https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    Восстановление: https://dev.1c-bitrix.ru/learning/course/?COURSE_I...

    2. Средствами BitrixEnv
    • Выбираете "6. Configure pool sites > 6. Change backup settings on site". Проводите настройки.
    • Пишете shell-скрипт копирования на внешний диск, FTP, или облако (нужное подчеркнуть) и вешаете его на крон.


    3. Кастомно.
    • Делаете бэкап файлов отдельно.
    • Делаете бэкап БД отдельно.
    • Пишете shell-скрипт копирования на внешний диск, FTP, или облако (нужное подчеркнуть) и вешаете его на крон.
    Ответ написан
    3 комментария
  • Как адаптировать темную тему сайта под тему устройства?

    wapster92
    @wapster92 Куратор тега JavaScript
    Наизобретают каких-то велосипедов без колес https://developer.mozilla.org/en-US/docs/Web/CSS/@... и есть отличная статья на хабре https://habr.com/ru/company/timeweb/blog/523478/
    Ответ написан
    Комментировать