Задать вопрос
  • Как сделать так, чтобы после выполнения функции, она останавливалась?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Проблема не в том, что "функция не останавливается", а в том, что вы при каждом клике на кнопку создаёте ещё один обработчик клика по .inner-of-fake-HTML. В итоге после второго клика на кнопку обработчик клика по .inner-of-fake-HTML сработает дважды и так далее.
    $('.selector-of-deep').click(function() {   // нажатие на кнопку
            $('.inner-of-fake-HTML').click(function(event) { // случайный id


    Зачем вам вообще ловить клик по .selector-of-deep, если он сам только добавляеть ещё один обработчик события?
    Ответ написан
    Комментировать
  • Как быстро понять какие будут поля у модели после применения всех миграций?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Есть ли возможность понять, какой конечный вариант в модели должен быть и какая таблица получится с нуля, после применения всех миграций?
    Ну, собственно, применить все миграции и посмотреть в таблицу, в чём тут сложность-то?

    Как раз для того, чтобы не разбираться в куче миграций, в Laravel добавили возможность их схлопнуть после применения. И тогда можно будет и вовсе смотреть не в живую БД, а в файл с дампом схемы.
    Ответ написан
    1 комментарий
  • Как скрыть следы использования VPN или как сменить IP адреса на IP другой страны?

    "Следы использования VPN" - это вхождение вашего конечного ip в пул адресов VPN-провайдеров, по нему площадка вас и определяет, скорее всего.
    Поэтому вы можете арендовать какой-то VDS в нужной стране и там разместить собственный VPN-сервер. Но есть вероятность, что и эти пулы дата-центров площадка отслеживает. Чем менее крупный провайдер, тем меньше вероятность, что площадка знает о его существовании и отслеживает его ip (при условии, что у провайдера свои дата-центры, а не используется какой-нибудь colocation).
    Если вы договоритесь с кем-то в желаемой стране, кто согласится разместить у себя дома ваш VPN-сервер, то площадка не сможем определить, что вы им пользуетесь.
    Ответ написан
    6 комментариев
  • SQL Инъекция авторизации?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Даже если представить, что ваше подготовленное выражение пропускает инъекцию (это не так), то вас не может "авторизовывать без каких-либо проблем", потому что запросом вы проверяете наличие логина в БД и получаете оттуда хэш пароля. Чтобы успешно авторизоваться вы должны ещё правильно ввести пароль пользователя, который с этой "инъекцией" выбирается первым. И в этом случае инъекция сводится к "узнать логин первого пользователя в таблице", что, согласитесь, неприятно, но не сильно значительно, если у пользователя при этом сложный пароль, который долго брутить.

    Ваша проблема в каком-то другом коде.
    Ответ написан
    Комментировать
  • Какую подключить оплату на сайте?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Никакая платёжная система не передаст вам имя и телефон плательщика, вы должны их сами у него спросить. Задача платёжной системы — принять деньги и уведомить об этом вас, этот функционал есть в любой.
    Ответ написан
    Комментировать
  • Не изменяет переменную в Nodejs почему?

    Должно быть примерно так:
    async function dowloadtable() {
        const client = new Client({
            host: "localhost",
            user: "postgres",
            port: 5432,
            password: "postgres",
            database: "postgres"
        })
    
        client.connect();
    
        const outx = await new Promise((resolve, reject) => {
            client.query(`SELECT * FROM "test"`, (err, res) => {
                if (!err) {
                    resolve(res.rows[0].name);
                } else {
                    reject(err);
                }
    
                client.end;
            })
        });
    
        console.log(outx)
    
        return outx;
    }

    Я давно не писал на js и уже подзабыл синтаксис промисов, так что в каких-то деталях мог ошибиться.

    await перед client.query не спасает
    Await - это не волшебная инструкция "сделать хорошо". У неё есть вполне конкретное поведение и если функция, результат выполнения которой вы ждёте, не возвращает промис (как в случае с client.query), то можно хоть десять раз await написать.
    Ответ написан
    1 комментарий
  • Как правильно подключать библиотеку sberbank?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    По скинутому вами плохо отформатированному куску синтаксически невалидного кода ответить на ваш вопрос невозможно.

    Хотя, если проявить фантазию, то, наверное, нужно $this->app->make(Client::class) заменить на resolve(Client::class), поскольку в контроллере вы объект app явно не инициализируете.
    Но можно сделать ещё проще:
    public function payment(Client $client) {
      ...
    }

    В этом случае фреймворк сам всё инициализирует как надо.
    Ответ написан
  • На чем строить социальную сеть и что использовать для построения новостной ленты?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Если вы криво спроектируете БД, то не справится любая СУБД. Вам надо на этом сконцентироваться, а не на выборе между Mysql, Postrgres и, почему-то, Mongo. Mysql прекрасно справляется с большими объёмами данных и большим количеством запросов, если они делаются адекватно и на адекватном железе.

    Что за математика такая с 500 * 500 в контексте соц. сети я не понимаю.

    Найдите любой курс или книгу про создание соц. сетей, там будет пример корректной схемы БД.
    Упрощённо - у вас будет две таблицы:
    posts
      id
      author_id
      content
    
    friendships
      user_id
      friend_id

    И чтобы построить ленту достаточно одного запроса:
    SELECT * from posts where author_id IN (
      SELECT friend_id FROM friendships WHERE user_id = ?
    ) ORDER BY id DESC

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

    Некоторые аспекты соц. сетей лучше делать на базе графовых БД, но, судя по вопросу, вам пока туда рано.
    Ответ написан
  • Как настроить Apache и роутер на мой статический IP?

    открыл переадресацию портов в роутере. подключаюсь на ip роутера

    Если вы сделали переадресацию порта 80 (или 443), то, скорее всего, роутер её игнорирует, потому что иначе перестанет работать его интерфейс.
    Пробросьте на роутере какой-то другой порт (например, 8080) на порт 80 (или 443) вашего сервера - это должно сработать.

    Если не сработает, то убедитесь, что при обращении напрямую к ip веб-сервера на искомый порт сайт открывается.

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

    На сайте в меню пользователя выберите «Язык, лента», там выберите английский в качестве языка контента и убедитесь, что статьи пишут и ничего особенного в них нет.
    Правда, судя по вашему предыдущему вопросу, у вас недостаточный уровень языка, чтобы писать на нём статьи, так что стоит предварительно хорошенько подумать.
    Ответ написан
    Комментировать
  • Какой стек учить, чтобы в будущем можно было делать MVP для стартапов?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Под указанные требования подходит любой мэйнстримный стэк.
    Ответ написан
    Комментировать
  • К кому относится указ Президента РФ от 01.05.2022 № 250?

    Там в первом пункте чётко перечислено, кого этот указ касается.
    Ответ написан
    Комментировать
  • Как поставить точку на яндекс карте, через PHP свойства?

    Раз подозреваете, что ошибка синтаксическая, то откройте консоль и посмотрите, не выводится ли там что-нибудь. Скорее всего - выводится, да ещё и со ссылкой на конкретный символ конкретной строки.

    Я навскидку вижу только лишнюю запятую:
    new ymaps.Placemark(<?=$arResult['PROPERTIES']['MAP']['VALUE']?>,);


    Дальше надо смотреть что у вас в свойстве выводимом конкретно хранится и как оно отдаётся на страницу. Я.Карты ожидают, что там будет массив координат. Полагаю, что вы вместо массива выводите строку и нужно добавить json_decode().
    Ответ написан
    2 комментария
  • Можно ли хранить данные не в БД, а в JSON файле?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Можно, но это будет очень глупо, особенно по причине "снизить нагрузку на БД". Не переживайте, пупок у СУБД не развяжется от ваших пяти посетителей в месяц, просматривающих семнадцать товаров. Он не развяжется даже при объёмах на пять порядков больших.
    Плюсов у такого подхода примерно ноль в обычных проектах, а минусы - всё остальное.
    Ответ написан
    5 комментариев
  • Почему на беке params отображается как query?

    Вы отправляете GET-запрос, у него нет body (а значит и params), все его параметры передаются в query. Соответственно, оттуда параметры запроса и нужно получать на бэкенде.
    Axios же для упрощения вашей жизни принимает и query и body через ключ params в конфигурации запроса, а уже под капотом самостоятельно в нужное место их подставляет в зависимости от типа запроса.
    Ответ написан
    Комментировать
  • Почему console.log("Текст") выдает undefined?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Метод log объекта console ничего не возвращает по результату своего выполнения, именно это вы и видите. Стрелка, смотрящая вправо, указывает на введённый вами код, смотрящая влево - на возвращённое введённым кодом значение.
    Ваш вопрос должен звучать как "почему я не вижу сообщение, выведенное через console.log" и ответ на него кроется, наверняка, в фильтрах этой панели:
    626e401fcb01c646486631.png

    626e4054058b0160804390.png
    Ответ написан
    4 комментария
  • Как привязать счетчик на карточке товара к кнопке добавления в корзину?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Кнопка добавления в корзину и инпут количества обёрнуты в форму, которая просто сабмитится на бэкенд стандартными средствами или через ajax, но и для него данные легко получить из формы через new FormData(form). Инпут количества стилизуется через CSS и обвешивается дополнительным javascript, чтобы он выглядел и работал так, как нарисовано, но при этом это всё равно обычный <input type="text"/> или <input type="number" min="1"/>.

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

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега React
    React не ждёт для запуска рендера максимально неудобного момента, чтобы вам насолить. Отрисовку триггерите вы сами, изменяя state или props. Никаких деталей про них вы не привели, так что точнее сказать ничего нельзя.

    Попробуйте использовать что-то вроде этого:
    class Something {
      state = {token: ``}
    
      render() {
        if (!this.state.token) {
          return null;
        }
    
        return <ВсёОстальное/>
      }
    }
    Ответ написан
    Комментировать
  • Как узнать api сайта https://mycard.petroretail.kz/ru/transaction_items?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Варианта ровно два:
    • Обратиться напрямую к администраторам сайта.
    • Провести реверс-инжиниринг. Для этого нужен компетентный веб-разработчик.

    А ещё там может вовсе не оказаться никакого API и придётся парсить данные из HTML.
    Ответ написан
    2 комментария
  • Как с вебасти по нормальному выгрузить товары?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Ничего там не едет, вы в своём аналоге Excel просто криво открыли CSV. Ваша программа ожидает в качестве разделителя точку с запятой, а в файле просто запятая, вот у вас и не делится на ячейки нормально.
    Ответ написан
    Комментировать