Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (8)

Лучшие ответы пользователя

Все ответы (11)
  • По какому принципу работает CSRF Token защита и чем она отличается от Api Token?

    tkutru
    @tkutru
    A programming cat.
    Во-первых, наверное все-таки CSRF Token.
    Во-вторых, CSRF токен никуда руками вводить не надо, его обычно прицепляют в качестве доп. скрытого поля при отправке форм. Смысл в том, чтобы злоумышленник не мог дать ссыль или сделать на своем сайте форму, переход по которой заставил бы залогиненного на атакуемом ресурсе пользователя сделать какие-то неявные действия (сменить пароль, емаил, написать сообщения, перевести средства и т.п.).
    Ответ написан
  • Yii2 REST: Как правильно обработать post-запрос, в котором передается json-коллекция?

    tkutru
    @tkutru
    A programming cat.
    Получаете post данные, декодируете их в массив, траверсите массив и грузите данные в модели и сохраняете их. Допустим вы передаете данные в post параметре arr а модель у вас называется Model
    $data = json_decode(\Yii::$app->request->post('arr'), true);
    foreach ($data as $chunk) {
        $model = new Model();
        $model->attributes = $chunk;
        $model->save();
    }

    Чтобы модель корректно сохранилась в бд нужно чтобы ее свойства удовлетворяли ее правилам валидации (см. метод rules в классе модели). Если не сохраняется в бд, можно проверять на ошибки, например вместо обычного сохранения прописывать
    if (!$model->save()) {
        var_dump(['erorrs' => $model->errors]);
    }

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

    tkutru
    @tkutru
    A programming cat.
    Если хотите быстро "включиться" и начать ваять* - php.
    Если у вас есть время систематически изучать язык и писать приложения без спешки - java.

    *при этом php в 2017 совсем не такой простой, как в 2004. Это не язык для домохозяек, и как правило уходят годы, прежде чем хорошо овладеть им.
    Ответ написан
    1 комментарий
  • Почему strcasecmp не сравнивает строки с разным регистром?

    tkutru
    @tkutru
    A programming cat.
    Скорее всего проблема в мультибайтовой кодировке (юникод).
    Попробуйте для регистронезависимого сравнения строк использовать мультибайтовую версию функции strcasecmp
    function mb_strcasecmp($str1, $str2, $encoding = null) {
        if (null === $encoding) { $encoding = mb_internal_encoding(); }
        return strcmp(mb_strtoupper($str1, $encoding), mb_strtoupper($str2, $encoding));
    }

    Отсюда php.net/manual/en/function.strcasecmp.php#107016
    Ответ написан
    2 комментария
  • MySQLi: зачем нужна проверка соединения connect_errno?

    tkutru
    @tkutru
    A programming cat.
    Проверка на то, что подключение вообще возможно. Она сработает, если вы отключите сервис mysql и попытаетесь выполнить свой скрипт.

    Error : mysqli::mysqli(): (28000/1045): Access denied for user 'user'@'localhost' (using password: YES)

    Т.е. сервис работает, просто юзер неверный.
    Ответ написан
    Комментировать