• Как сделать сайт многопользовательским?

    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:<имя пользователя>] <программа>
    Ответ написан
    Комментировать
  • Как забиндить переключение на другой рабочий стол в windows?

    Stalker_RED
    @Stalker_RED
    Старый добрый virtuawin умеет переключение виндовых десктопов со времен winxp.
    И там не только хоткеи настраиваются.
    Ответ написан
    4 комментария
  • Как в Laravel изменить значение элемента через Jquery?

    Stalker_RED
    @Stalker_RED
    При перезагрузке страницы отображается то содержимое, которое отдает сервер.

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

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

    Stalker_RED
    @Stalker_RED
    Отслеживание событие paste, проверяйте что вставилось, если картинка - добавьте br.
    Для жирного делайте createElement('strong'), ну или b. При отключении жирного - перемешайте курсор на позицию после вашего strong'а.

    Вообще, создание самодельного текстового редактора - довольно сложная тема. Боюсь, что если даже с такими вопросами вы не справились, то выделение жирным уже набранного текста с форматированием (часть списка, например) покажется вам вообще адом:)

    Если вы делаете это не ради скиллов - найдите готовый редактор.
    Ответ написан