• Почему request.user равен AnonymousUser?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Если посмотрите у себя в settings.MIDDLEWARE,
    то увидите к примеру django.contrib.sessions.middleware.SessionMiddleware
    которая берет из кук сессионную куку, и добавляет данные сессии к запросу:

    session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME)
            request.session = self.SessionStore(session_key)


    а затем там же django.contrib.auth.middleware.AuthenticationMiddleware, в котором если покопаться - то можно найти как получается пользователь из сессии, которую мы добавили к запросу в предыдущем middleware. Я просто не буду перечислять все шаги - иначе это будет тема отдельного длинного поста.
    Просто походите по MIDDLEWARE и AUTHENTICATION_BACKENDS - да посмотрите что откуда берется. У вас может быть некий свой набор...
    Поэтому если у вас в куке не прилетел параметр сессионной куки - тупо в request.COOKIES нет параметра settings.SESSION_COOKIE_NAME который по дефолту называется sessionid- то и пользователю взяться неоткуда.
    Поэтому копайте точнее что там вам прилетает. Если возможности сохранять сессионную куку нет - то можно к примеру в урл редиректа добавлять некий хеш, по которому можно получать пользователя, написав свой middleware если требуется...
    Ответ написан
    5 комментариев
  • Почему бот уходит в offline?

    Vindicar
    @Vindicar
    RTFM!
    time.sleep(37)
    Ни в коем случае. Почитай, как работают асинхронные программы.
    Грубо говоря, пока твой обработчик выполняет синхронный код (что угодно без await), остальная часть программы стоит.
    Так что пока бот спит, он вообще ни на что не реагирует.
    Замени на await asyncio.sleep(37).
    Ответ написан
    1 комментарий
  • Как пeредать const char* в c++ фунцию из c#?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Ответ написан
    Комментировать
  • Как удалить данные из db через время?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Реализовать периодические задачи, которые будут сверять текущее время со временем окончания подписки и совершать соответсвующие операции.
    Cron или celery в помощь.
    Ответ написан
    Комментировать
  • Как удалить данные из db через время?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Сто раз этот вопрос тут уже задавали. Подписки реализуются не удалением данных, а записью в БД времени, до которого действует подписка, и сверка этого времени с текущим.
    Ответ написан
    1 комментарий
  • Почему у элемента появляется style="display: none;"?

    nbrylevv
    @nbrylevv
    Front-end разработчик
    На второй строке вы добавили обработку клику на документ. Строкой ниже у вас вызывается метод fadeOut, который и добавляет style="display: none;".
    Ответ написан
    Комментировать
  • Почему у элемента появляется style="display: none;"?

    @slide13
    frontend/web-developer
    Ну так у вас в if вызывается метод fadeOut на классе box, а в jquery fadeout после того как opacity элемента достигнет 0 убирает его полностью как раз через установку display в none
    Ответ написан
    Комментировать
  • Unable to load DLL (Module could not be found HRESULT: 0x8007007E)?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Вроде нельзя относительные пути использовать. Напиши просто baselib.dll и клади её рядом с екзешником
    Ответ написан
    Комментировать
  • Unable to load DLL (Module could not be found HRESULT: 0x8007007E)?

    Nipheris
    @Nipheris Куратор тега C#
    or one of its dependencies

    А своих зависимостей у baselib.dll случаем нет? Ну-ка, показывайте что видно в Dependencies.
    И да, библиотеку в любом случае стоит положить рядом с exe, можно настроить билд-правило для этого.
    Ответ написан
    Комментировать
  • Как проверить свернуто ли окно?

    Vindicar
    @Vindicar
    RTFM!
    Насколько я понимаю, на чистом питоне это будет сделать затруднительно. Нужно использовать платформо-зависимые инструменты.
    Если под Windows, то можно использовать WinAPI. Чтобы обращаться к ним под питоном, используй пакет pywin32.
    Функция IsIconic() проверяет, свёрнуто ли окно с указанным дескриптором в панель задач. Передай ему дескриптор окна, которое надо проверить.
    Функция GetForegroundWindow() получает дескриптор окна, которое сейчас в фокусе. Не уверен, идёт ли речь об окне верхнего уровня, или об элементе управления в фокусе (элементы управления - тоже окна). Оно возвращает дескриптор окна, если дескриптор равен желаемому - значит, искомое окно сейчас в фокусе.
    Так как тебе потребуется узнать дескриптор нужного окна, посмотри также FindWindow(). Имя класса окна надёжнее, но его труднее узнать. Заголовок окна может меняться (например, у браузера он зависит от текущей вкладки), но зато его узнать легче. При этом речь идёт о точном совпадении заголовка окна!
    Если заголовок меняется, то стоит использовать EnumWindows(), но с ней сложнее работать.
    Ответ написан
    Комментировать
  • Echo mysqli_num_rows($check_user); выдает ноль вместо единицы. Можете помочь?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Откуда вы раскопали такой древний код?
    Вместо md5 для хэширования пароля следует использовать функции password_hash, для проверки - password_verify.
    Вместо подстановки данных в строку следует использовать подготовленные запросы с плейсхолдерами.
    Ну и, собственно, ошибка в запросе. Прямые одиночные кавычки ( ' ) в MySQL обозначают строки. Названия баз данных, таблиц и полей обозначаются обратными одиночными кавычками ( ` ).
    Как-то так:

    <?php
      session_start();
      require_once "connect.php";
    
      $stmt = mysqli_prepare($connect, "SELECT `Password` FROM `users` WHERE `Email` = ?");
      mysqli_stmt_bind_param('s', $_POST['Email']);
      mysqli_stmt_bind_result($hash);
      mysqli_stmt_execute($stmt);
      if (mysqli_stmt_fetch($stmt) && password_verify($_POST['password'], $hash)) {
          echo 'Logged';
        }
      }

    Естественно, пароль должен быть записан в БД через password_hash.
    Ответ написан
    1 комментарий
  • Почему отображается не того цвета?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Проблема вот тут
    .link, .text:hover
    Укажите ховер классу.
    Ответ написан
    Комментировать
  • Как сделать проверку наличия слов?

    Stalker_RED
    @Stalker_RED
    $allowedDomains = ['mail.ru', 'gmail.com', 'yahoo.com']; // легко добавлять новые значения, можно брать из какого-то конфига или БД не правя потом условия.
    $emailDomain = strstr($email, '@');
    $isAllowed = in_array($emailDomain, $allowedDomains);
    Ответ написан
    Комментировать
  • Как сделать проверку наличия слов?

    @alexalexes
    Самый тупой вариант без регулярок:
    $email_exploded = explode('@', $email);
    if(count($email_exploded) == 2 && ($email_exploded[1] == 'gmail.com' || $email_exploded[1] == 'mail.ru'))
    {
      echo 'Домен в порядке, проходите!';
    }
    Ответ написан
    Комментировать