• Как из даты получить только год?

    Stalker_RED
    @Stalker_RED
    SELECT id, YEAR(colName) FROM tblName
    Ответ написан
    Комментировать
  • Как подключиться к API с помощью curl?

    Stalker_RED
    @Stalker_RED
    Сертификаты не нужно прикреплять к запросу, они
    должны быть установлены в доверенные
    Ответ написан
    Комментировать
  • Что такое callbackUrl?

    Stalker_RED
    @Stalker_RED
    На примере сервиса оплаты.

    У тебя есть интернет магазин, в котором продаются плющевые медведи.
    Пользователь добавил пару медведей в корзину, и магазин показывает ему кнопку "оплатить" от платежной системы.
    Для этого сервер делает запрос у внешнему API типа "у нас тут намечается сделка на 149.99, сгенерируйте нам кнопочку "оплатить через mastercard"".
    Кнопочка отображается в браузере у клиента. Он на нее нажимает, и переходит на страничку платежной системы (или в попап). До этого все обходилось без коллбеков - ты запросил код кнопки, они его отдали тебе, пользователь увидел кнопочку, нажал и... он же ушел с твоего сайта, и ты не знаешь что он там на сайт платежной системы делает.
    А после факта оплаты твоему сайту неплохо бы получить подтверждение, о том, что пользователь действительно оплатил. Или у него денег не хватило, или интернет отрубился, или заснул в процессе покупки, whatever...
    Вот для таких случаев ты и указываешь callbackUrl. Адрес на твоем сайте, куда платежная система (или какой-то другой внешний API) можеет прислать своё уведомление. Что оплата прошла успешно, или что все пропало, отменяем.
    Ответ написан
    Комментировать
  • Как сделать сайт многопользовательским?

    Stalker_RED
    @Stalker_RED
    При перемещении картинки нужно отправить данные о перемещении на сервер, там их сохранить, и при последующем открытии странцы сервер должен отдать уже новые координаты.

    Если нужно чтобы они перемещались в реалтайме, как в многопользовательских играх - нужно постоянно слать с сервера на все клиенты данные через websocket или long polling.
    Ответ написан
    Комментировать
  • Как проще всего сделать датчик закрывания распашных ворот?

    Stalker_RED
    @Stalker_RED
    Датчики угла поворота на петли? Передача через WiFi (esp8266 за $1), например.

    Или камера наблюдения, и периодический анализ картинки. Это несколько дороже, но камера может висеть на доме, и следить за воротами издали, что решает проблему проводов.
    Ответ написан
    Комментировать
  • На всех хостингах по умолчанию работает mail?

    Stalker_RED
    @Stalker_RED
    Функция mail() в php вызывает какую-то приблуду из операционки, которая ответственна за отправку почты. Например sendmail. (в php.ini можно выбрать какую имено, если их в ОС несколько).
    Дальше все зависит от того, настроили ли администраторы эту почтовую штуку или не настроили, или подобной штуки вообще в системе нет (привет win хостингам).

    Если вдруг она работает (что не редкость, хотя работает не везде), и вам удалось через mail() отправить hello world на свой ящик - это ещё не все. Вас ждёт отдельный вынос мозга при попытке добавить в письмо изображения или другие вложения.

    Почитайте минут 20 википедию, чтоб понять как вообще работает почта, а потом берите какую нибудь высокоуровневую обертку (типа PhpMailer'а) которая возьмёт всю грязную работу на себя, и спрячет от вас все кишки.
    Ответ написан
    3 комментария
  • На своем сайте надо организовать возможность онлайн трансляции через iр камеры. Как это сделать?

    Stalker_RED
    @Stalker_RED
    Если у вас IP-камеры, то нужно настроить на них трансляцию, и открыть в фаерволле доступ к этой трансляции.

    На сайте же просто тег video
    <video src="http://123.456.789.1/cam1">
    Ответ написан
    4 комментария
  • Как это работает?

    Stalker_RED
    @Stalker_RED
    Ваш вопрос не про алгоритм а про консоль хрома.

    И всё же не понятно почему ничего не выводит.


    GVmrAMg.png
    Если выражение что-то возвращает - консоль выводит результат. Если выражение ничего не возвращает - консоль выводит undefined.

    У вас там console.log() внутри if-а, и когда условие num % i == 0 не выпольняется, то и console.log не вызывается.

    Смотрите я все починил:
    let num = 2 
    for(let i = 2; num > i; i++){
      if (num % i == 0){
        console.log(`число ${num} простое, так как делится на ${i} без остатка`);
      } else {
        console.log(`${num} не делится на ${i} без остатка`);
      }
    }
    Ответ написан
    1 комментарий
  • Как отследить событие окончания итерации цикла?

    Stalker_RED
    @Stalker_RED
    Поставить её в начало итерации и после всего цикла не вариант?

    Но вообще правильнее было бы переписать все с одной точкой выхода.
    Ответ написан
  • Знакомство нового пользователя через подсказки?

    Stalker_RED
    @Stalker_RED
    Прежде чем писать велосипед посмотрите готовые системы
    https://blog.bitsrc.io/7-awesome-javascript-web-ap...
    Еще: 1, 2
    Ответ написан
    3 комментария
  • Звездочка в конце строки запроса?

    Stalker_RED
    @Stalker_RED
    тест: https://ideone.com/U1Tk7i

    Оба выводят siteru/cat/post-num1-sdcsd------/// как и ожидалось.
    Сделайте echo $uri перед заменой, возможно на входе все ломается.

    PS:
    И я бы делал preg_replace('/[^a-zA-Z\d\/-]/', '', $url);.
    Не подскажите зачем у вас eregi и в то-же время a-z-A-Z?
    И зачем mb.
    Ответ написан
  • Почему я получаю только последнюю запись из бд?

    Stalker_RED
    @Stalker_RED
    После foreach() лишняя ; и странная надпись 'endforeach', котрая не делает endforeach, а просто является строкой.
    Ответ написан
    Комментировать
  • Что использовать для манипуляции с css классами - classList, getAttribute, className?

    Stalker_RED
    @Stalker_RED
    Сработают все.
    Я бы писал как-то так:
    document.querySelectorAll('[class]').forEach(elem => 
      elem.className = elem.className.replace(/-([a-z])/g, (a,b) => b.toUpperCase())
    );

    Надеюсь, что это у вас разовая задача "для поиграться", и вы не будете тащить это в прод.
    Ответ написан
  • Какой стек выбрать для бэкэнда?

    Stalker_RED
    @Stalker_RED
    На каждом из перечисленных стеков существуют гораздо более нагруженные проекты, чем 200к хитов.

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

    При масштабировании упор будет в хранение данных (БД) и взаимодействие сервисов. А на чем написаны сами сервисы не так важно, хоть все на разных языках.
    Ответ написан
    Комментировать
  • Как найти текст в браузерной игре?

    Stalker_RED
    @Stalker_RED
    На странице var app = ... там json с экранированными символами, которые при расшифровке дают вот такие тексты:
    "localization": {
        "agree_error": "Пожалуйста, подтвердите соглашения",
        "wrong_data": "Вы ввели неверные данные",
        "common_error": "Произошла ошибка, пожалуйста, обратитесь в службу поддержки",
        "not_spoofer_error": "Ошибка!",
        "not_spoofer_goto": "Зайдите в игру по этой ссылке",
        "social_invite_friends_dialog": "Приходи играть",
        "payment_window": "Окно оплаты",
        "restore_pass": "Инструкции по изменению пароля будут отправлены на указанный вами электронный адрес.",
        "pass_empty": "Введите пароль",
        "consent_success": "Изменения успешно сохранены!",
        "consent_error": "Не удалось сохранить изменения, попробуйте позже",
        "account_enter_pin": "На почтовый ящик %email% был отправлен отправлен PIN. Если письмо не пришло, проверьте папку \"спам\"",
        "feedback_common_error": "Произошла ошибка, пожалуйста, обратитесь в службу поддержки",
        "lp.interact.code_reask_succeded": "Новый код отправлен",
        "lp.interact.days_short": "д",
        "lp.interact.hours_short": "ч",
        "lp.interact.minutes_short": "м",
        "lp.interact.realm_ready": "Играть сейчас!",
        "errors.email_empty": "Заполните поле email",
        "errors.email_wrong": "Некорректный email",
        "errors.phone_empty": "Заполните телефон",
        "errors.phone_invalid": "Некорректный телефон",
        "lp.email_gather.application_received": "Заявка получена!",
        "download_email.success": "Инструкция по установке была выслана на %email%",
        "account.new_game_button": "Удалить",
        "account.new_game_success": "Игровой прогресс удален, обновите страницу",
        "account.new_game_success_reload": "Обновить",
        "account.new_game_wrong_input": "Вы ввели неверные данные",
        "ecommpay.button_to_retry": "Повторить попытку",
        "restore_form.try_again": "Повторить",
        "webgl.client_memory_allocation_error": "Игра не смогла выделить память. Закройте, пожалуйста, все вкладки или попробуйте другой браузер",
        "webgl.client_request_502_error": "Что-то пошло не так, попробуйте перезагрузить страницу",
        "payments.error_unavailable": "Платежи временно недоступны",
        "payments.error_retry": "Повторить",
        "faketutor.dialog.greeting.continue": "Продолжить",
        "payment_methods.web.googleplay_card": "Использование платёжного метода Google Pay без привязки банковской карты невозможно. Пожалуйста, сохраните данные карты в вашем браузере и повторите попытку.",
        "payment_methods.web.applepay_card": "Использование платёжного метода Apple Pay без привязки банковской карты невозможно. Пожалуйста, сохраните данные карты в кошельке Apple Wallet и повторите попытку.",
        "cookies.groups.names.statistics": "Статистика",
        "cookies.groups.names.strictly_necessary": "Строго необходимые",
        "cookies.groups.text.strictly_necessary": "Необходимые файлы cookie помогают улучшить пользование сайтом, обеспечивая работу основных функций, вроде навигации по страницам и доступа к безопасным областям сайта. Без этих файлов сайт не сможет нормально функционировать.",
        "cookies.groups.text.statistics": "Статистические файлы cookie позволяют владельцам сайтов узнавать как посетители взаимодействуют с сайтом, анонимно собирая и передавая информацию.",
        "cookies.groups.buttons.accept": "Принять",
        "cookie.warning_text": "Наш сайт использует файлы cookie для вашего удобства. Продолжая использовать наш сайт, вы подтверждаете свое согласие на получение таких файлов. Вы можете ознакомиться с нашей %Политикой конфиденциальности% в отношении файлов cookie и аналогичных технологий.",
        "cookies.groups.names.title": "Управление параметрами содержимого",
        "cookies.groups.buttons.active": "Всегда активно",
        "cookies.groups.names.show_text": "варианты просмотра",
        "no_browser_webgl_support": "Ваш браузер не поддерживает WebGL.",
        "check_faq_for_webgl_issues": "Посетите %link% для поиска решений возможных проблем.",
        "ecommpay.button_pay": "Оплатить",
        "ecommpay.button_back": "Назад",
        "stripe.enter_card_data": "Ввод данных карты",
        "stripe.secure_card_text": "Безопасная оплата картой",
        "stripe.card_number": "Номер карты",
        "stripe.card_date": "ММ/ГГ",
        "stripe.agreement_text": "Нажимая кнопку \"Оплатить\", вы принимаете %Соглашение о хранении идентификационных данных владельца карты%.",
        "stripe.savedcards_text": "Сохранённые карты",
        "stripe.clear_text": "Очистить",
        "stripe.sure_text": "Вы уверены?",
        "dpd_cancel_button": "Отменить",
        "keyin2tables.cookie_warning.Ok": "Хорошо",
        "password_strength.0": "Очень ненадежный пароль",
        "password_strength.1": "Слабый пароль",
        "password_strength.2": "Средний пароль",
        "password_strength.3": "Хороший пароль",
        "password_strength.4": "Очень надежный пароль",
        "preloader_video.unmute": "Включить звук",
        "preloader_video.mute": "Выключить звук",
        "support.emptySubject": "Пожалуйста, введите тему сообщения",
        "support.emptyBody": "Пожалуйста, введите описание проблемы",
        "support.emptyType": "Пожалуйста, выберите тип проблемы",
        "support.emptyEmail": "Пожалуйста, введите email",
        "support.wrongEmail": "Некорректный email",
        "support.common": "Неизвестная ошибка!",
        "restore_form.wait_30": "Нельзя запрашивать восстановление чаще чем раз в 30 секунд",
        "account.new_game_confirm_prompt": "Напишите \"DELETE\" в поле для подтверждения"
      },

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

    Stalker_RED
    @Stalker_RED
    Потому что расчеты и отображения у вас происходят в функции getRes(), которая выхывается только при изменении выбора в селекте, а не при перезагрузке страницы.

    Но даже добавив ее вызов при загрузке вам еще нужно будет "запоминить" (в localStorage, например) предыдущий выбор в селектах и применить его.
    Ответ написан
  • Как вырезать поддомен из url адреса?

    Stalker_RED
    @Stalker_RED
    Вы бы писали сразу язык или плятформу на которой хотите это использовать, потому что регулярка здесь вовсе не нужна, а достаточно замены подстроки, как-то так:
    replace('mysite.com.ua/ua/', 'mysite.com.ua/') (псевдокод)
    Ответ написан
  • Как сделать 2 активные учетные записи на винде?

    Stalker_RED
    @Stalker_RED
    Звамечали в некоторых менюшках пункт "запуск от имени администратора"?
    Так вот можно не только от имени администратора. а от имени любого пользователя запускать программы.
    runas /?
    
    RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
            /smartcard [/user:<имя пользователя>] <программа>
    Ответ написан
    Комментировать