• Фреймворк или микрофрейворк?

    @BATPYIIIKOB
    PHP, JS
    Судя по вопросу, опыта разработки на фреймворках у вас мало. Тогда для блога, инфо сайта и т.д. лучше вообще использовать готовое решение в виде CMS (какую выбрать - решать вам).
    Плюсы:
    - сокращение времени разработки
    - готовые шаблоны
    - готовые компоненты и реализации
    - проще в обслуживании
    - и т.д...

    Если хотите освоить фреймворк, то посмотрите вакансии - сейчас в лидерах востребованных Laravel.
    Когда освоите хоть один фреймворк, то у вас не будет стоять вопроса какой использовать. А когда освоите РНР, тогда вообще забудете, что такое фреймворки и будете в сосотоянии сами собрать необходимый фрейм (благо спасибо композеру..)
    Микро- идёт с минимальным багажом и функционал необходимо допиливать. В основном они для конкретных реализаций: допустим сделать REST API сервис, или спарсить сайт :).
    Ответ написан
    Комментировать
  • Применимо ли понятие "мобильность" к информационным системам?

    @estj
    prepodavatel Vuza po background programming
    М.б. мобильное приложение в ИС? см. 34 сборник ГОСТов по АС -- там всякие неустаревающие определения...
    Ответ написан
    1 комментарий
  • Нужен ли CSRF Token в REST API?

    IDONTSUDO
    @IDONTSUDO
    ЧСВ программистов идет в комплекте с первой IDE.
    в REST архитектуре чаще использую JWT ниже ссылка на отличные объяснения Илья Климова о том что это такое и с чем его едят.

    https://www.youtube.com/watch?v=vQldMjSJ6-w&t=1s
    Ответ написан
    3 комментария
  • Откуда правильно делать запросы к API - JS или PHP?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Отрисовывайте компоненты дизайна отдельно друг от друга. Зачем вам все три запроса отрисовывать за раз?
    А если один не удастся? А если один вернёт неправильный результат?

    Отлично в этой методологии выглядит библиотека React. Там каждый компонент живёт своей жизнью. Вам так же нужно сделать.
    Ответ написан
    6 комментариев
  • Как правильно связать сайт и RESTful API?

    @dasauser
    Пишу на PHP
    Вы неправильно понимаете термин API.
    Ваше определение:
    RESTful API - выполняет всё, что связано с работой с сущностями и БД

    Определение с вики:
    RESTful API - описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой

    Что я хочу этим сказать: API - прослойка между юзером и сервером. Пример - клавиатура. Она предоставляет интерфейс, а компьютер уже обрабатывает данные и выводит результат, в зависимости от того, что вы нажали (комбинация ли клавиш, клавиша-переключатель и т.п.)

    Отвечаю на вопрос:
    Как правильно связать сайт и RESTful API?

    Никак. Интерфейс надо реализовывать, а не связывать.
    Как это сделать?
    Заводите сервер, заводите приложение, пишете код.
    Работает? Начинаете реализовывать интерфейс, путем стандартизации http-общения между клиентом-сервером.

    p.s: Надеюсь, что более знающие люди поправят и дополнят мой ответ.
    Ответ написан
    3 комментария
  • Из за чего возникает ошибка Internal server error при попытке отправить POST через CURL для оплаты частями от Privat Bank?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Окей.

    'partsCount' => 5,

    partsCount Integer notNull, min=2, max=25 Количество частей на которые делится сумма транзакции (Для заключения кредитного договора) Должно быть > 1.


    'amount' => 2,
    amount Да Double notNull, Min=300, Max=50 000 Окончательная сумма покупки

    Минимальная сумма 300, у вас 2.
    Далее, вы хотите чтобы 2 разделилось каким-то образом на 5?
    Правильно ли я понимаю, что вы хотите чтобы пользователь провел 5 транзакций по 40 копеек?

    Кроме того - у тебя еще и ошибка в сигнатуре:
    'signature' => base64_encode ( SHA1 ( '75bef16bfdce4d0e9c0ad5a19b9940df'.'4AAD1369CF734B64B70F'.'12211212121'.' 200'.' 5'.' PP'.'https://adsasd'.'https://saddsa'.' test1200'.' 75bef16bfdce4d0e9c0ad5a19b9940df' ))

    Если внимательно посмотришь - у тебя пробелы перед 200, 5 и PP стоят.
    Далее: у тебя есть параметр 'recipientId', который ты передаешь, но в хеш-сумме он остутствует, а по правилам должен быть. Либо убирай, либо добавляй в формирование.

    Поделаешь то что нужно и получишь другую ошибку:
    Array
    (
        [orderId] => 12211212121
        [signature] => +JYghcAp9oIQq3xR/Zn1PftEvQ8=
        [state] => FAIL
        [message] => bad value: Scheme not found for given store
        [storeId] => 4AAD1369CF734B64B70F
    )


    Но это все потому, что scheme - это Идентификатор схемы. Выделяется Банком. По умолчанию не передается.

    Удаляешь его и получаешь заветное:
    Array
    (
        [orderId] => 12211212121
        [signature] => S4cN/oBUIIJeHlcJgTTM+gcZddQ=
        [state] => FAIL
        [message] => bad value: Payment with sent orderId already exists
        [storeId] => 4AAD1369CF734B64B70F
    )


    А это потому, что кто-то уже прогнал твой запрос через api или через веб-морду. Меняешь orderid и получаешь заветное:
    Array
    (
        [orderId] => fdsa1
        [signature] => x2m4GaLFv3ptcxZLynRzwuy/t5g=
        [token] => ADFEDB2FB0C7485CB968148D4BFD6B5A
        [state] => SUCCESS
        [storeId] => 4AAD1369CF734B64B70F
    )
    Ответ написан
    1 комментарий
  • Законно ли использование сканера уязвимостей на чужом сайте?

    DevMan
    @DevMan
    вполне законно.
    не законно – использовать найденные уязвимости.

    хотя, в этой стране, термин "законность" весьма юмористичен.
    Ответ написан
    2 комментария
  • Yii2 почему не работает подключение стилей?

    slo_nik
    @slo_nik Куратор тега Yii
    Добрый вечер.
    Вместо
    'http://yii2.loc/web/css/bootstrap-reboot.css'
    пишется так же, как и для js
    'css/bootstrap-reboot.css'
    Ответ написан
  • Как аутентифицировать пользователя в Yii2?

    myks92
    @myks92 Куратор тега Yii
    Нашёл решение — пометь вопрос ответом!
    Попробуйте так:
    $user = User::findOne(1);

    А вообще загрузите advanced шаблон и посмотрите как там реализовано. Можно скопировать к себе и не выдумывать.
    Ответ написан
    7 комментариев
  • Laravel rest api регистрация и авторизация пользователя, нужны ли встроенные средства?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    1. Это ты должен решить, но как правило требуется. А может, приложение и сервер работают друг с другом по закрытому каналу, во внутренней сети, тогда и не обязательно. В любом случае вопрос не к нам.

    2. Нет. API, конечно, можно сделать и на сессиях, но за такое по рукам бьют. Для аутентификации/авторизации при взаимодействии «клиент-сервер», «сервер-сервер» подходит OAuth2, в ларавел есть готовый пакет — Passport.

    3. Да.
    Ответ написан
    Комментировать
  • Правильно ли оставлять JS в открытом виде?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Как хотите - так и делайте. JavaScript вообще сумасшедший на "стандарты" разработки.

    То, что вы боитесь засветить секретные ключи доступа к базе данных - это правильно, но нужно понимать, что доступы к БД не должны находится на клиенте. Всё обрабатывает сервер и, по возможности, человек на клиенте вообще не может лишний символ вбить в инпут без разрешения "сзади".

    Делайте API, делайте авторизацию в API, если у вас есть система пользователей. Все данные получайте через API. Клиент будет видеть только адрес запрос, тело запроса и тело ответа, а какие-чудо механизмы произошли между запросом и ответом - должно остаться на бекенде.
    Ответ написан
    5 комментариев
  • Правильно ли оставлять JS в открытом виде?

    @Enj0y
    А как иначе? Можете обфусцировать если прям хочется.
    Ответ написан
    3 комментария
  • Взаимодействие двух хостов в сетевой игре?

    @Kapustlo
    Доброго времени суток, в принципе 66demon666 правильно мыслил, но, к сожалению, не рассказал про практическую сторону. Я предлагаю вам воспользоваться более высокоуровневым стандартным модулем Python "socketserver", который позволяет проще реализовать сервера, которые работают по протоколам UDP и TCP. И так, говоря о настройке сервера, то нам понадобится изначально создать обработчик запросов, класс, который будет наследовать от класса "socketserver.BaseRequestHandler". В нашем новосозданном классе мы должны переопределить метод "handle", который по умолчанию ничего не делает, чтобы мы могли обрабатывать приходящие запросы. Далее мы создаём класс нашего сервера со множественным наследованием, в котором на данном этапе мы не добавим своих методов и не переопределим имеющиеся. Далее я уже пойду немного глубже и расскажу немного про своё мнение об организации игрового процесса. Я предлагаю пока что создать два класса: "Player" и "Session". "Session" будет наследовать наш TCP сервер и в своём "__init__" методе будет присваивать обработчику событий себя, чтобы мы из него могли спокойно оперировать данными сессии. Собственно, класс "Player" был добавлен с целью упрощения работы с данными игроков, дабы не создавать словари с их данными и прочее. В принципе, полагаю, на этом мои разъяснения закончены, остальное вы увидите в коде.

    import socket
    import threading
    import socketserver
    
    class Player:
        def __init__(self, id, name):
            self.id = id
            self.name = name
    
    class TCPRequestHandler(socketserver.BaseRequestHandler):
        def handle(self):
            encoding = "utf-8"
    
            data = self.request.recv(1024)
    
            # Дальше мы обрабатываем данные, которые пришли и, например, создаём из них словарь
            if len(session.get_players()) < 2:
                player = Player(data["id"], data["name"])
                session.add_player(player)
                self.request.send("Some response".encode(encoding))
            else:
                self.request.send("Some error data".encode(encoding))
    
    class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
        pass
    
    class Session(ThreadedTCPServer):
        def __init__(self, connection_data, request_handler):
            super().__init__(connection_data, request_handler)
    
            self.max_players = 2
            self.players = {}
            self.over = False
    
            request_handler.session = self
    
        def get_players(self):
            return self.players
    
        def add_player(self, player):
            if type(player) == Player:
                if len(self.players) < self.max_players:
                    self.players[player.id] = player
                else:
                    raise Exception("Players overflow")
            else:
                raise TypeError("'player' argument must be a 'Player' type")
    
        def game_over(self):
            self.over = True
    
    if __name__ == "__main__":
        HOST, PORT = "localhost", 80
    
        session = Session((HOST, PORT), TCPRequestHandler)
    
        with session:
            session_thread = threading.Thread(target=session.serve_forever)
    
            session_thread.daemon = True
            session_thread.start()
    
            while not session.over:
                pass # Заглушка, чтобы сервер работал
    
            session.shutdown()
    Ответ написан
    Комментировать
  • Как сделать динамический чат на PHP+Ajax?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    неприятно мигает

    сначала ajax запрос, а потом стирать старые данные в блоке на сайте и сразу же выводить новые соответственно.
    Ответ написан
    1 комментарий
  • Как сделать динамический чат на PHP+Ajax?

    Во первых если сайт разрабатывается то меняйте фреймворк на laravel и там для чата есть уже все из коробки. Широковещательная передача. А ваш текущий фрейм это не самый удачный выбор))
    Ответ написан
    Комментировать
  • VK API как распарсить ответ на PHP?

    YumeReaver
    @YumeReaver
    Бургомистр
    var_dump(json_decode($response, true));
    Ответ написан
    2 комментария
  • VK API как распарсить ответ на PHP?

    dark_tke
    @dark_tke
    Помогли? Отметь решением!
    $result = json_decode($response);
    $token = $result->access_token;  // access_token
    $experies = $result->expires_in // expires_in
    Ну и т.д.
    Ответ написан
    3 комментария
  • Не работает ajax запрос, что делать?

    @KZ_LIFE
    Что бы Ajax запросы работали с сессиями нужно в паратетрах запроса включить xhrFields: {
    withCredentials: true
    }
    Ответ написан
    2 комментария
  • Как вставить в html-шаблон переменные php?

    Randel
    @Randel
    Developer
    <?php echo $html_text ?> или <?= $html_text ?>


    Встречал подобное в html-файле, который инклюдится в php-коде.
    Грязный хак.
    За такое - отбивать руки по самую шею.


    $html_text


    Это пишется так:

    <?php
    echo <<$html_text
    Ответ написан
    5 комментариев
  • Не работает запрос на выборку в php, как решить?

    Stimulate
    @Stimulate
    могу
    вы то используете mysqli, то mysql, определитесь)
    По сабжу
    if ($result = $mysqli->query("SELECT `login` FROM `just_users` WHERE `login`='66demon666'")) {
        if ($result->num_rows != 0) {
           echo "Пользователь с таким логином уже существует в базе данных";
        }
        else {
        	echo "OK";
        }
    }
    Ответ написан