• Как отредактировать сообщение с помощью aiogram?

    AndreyFenicu
    @AndreyFenicu
    Редактировать можно всегда сообщения, надо чтобы правильно подходили айди чата и сообщения, в аиограме для этого есть специальные методы, которые упрощают жизнь, но можно и по старинке.
    В телеграме никогда не было ограничений на редактирования только сообщения с кнопками.
    Ниже пример с редактированием сообщения через 3 минуты

    from datetime import datetime, timedelta
    
    import config as cfg
    from aiogram import Bot, executor, types
    from aiogram.dispatcher import Dispatcher
    from apscheduler.schedulers.asyncio import AsyncIOScheduler
    
    bot = Bot(token=cfg.token, validate_token=True, parse_mode="HTML")
    dp = Dispatcher(bot)
    scheduler = AsyncIOScheduler()
    scheduler.start()
    
    
    @dp.message_handler(content_types=types.ContentTypes.TEXT)
    async def send_msg(message: types.Message):
        msg = await message.answer("Тик")
        date = datetime.now() + timedelta(minutes=3)
        scheduler.add_job(edit_msg, "date", run_date=date, kwargs={"message": msg})
    
    
    async def edit_msg(message: types.Message):
        await message.edit_text("Так")
    
    
    if __name__ == "__main__":
        executor.start_polling(dp, skip_updates=True)

    Please note, that it is currently only possible to edit messages without reply_markup or with inline keyboards.

    Нельзя редактировать только сообщения с обычной клавиатурой (возможно временно)
    Ответ написан
    Комментировать
  • Можно написать на котлине полноценное андроид приложение?

    hawkkiller
    @hawkkiller
    Dart, Flutter, JS/TS, React Native, Vue3, NEST.JS,
    Нет, Котлин из разряда JVM языков (Java, Scala). Написать полноценное приложение можно на чем угодно, все зависит от требований. Если нужно сделать кроссплатформ - смотрите в сторону React Native/Flutter. Если нужно только под андроид - безусловно, Котлин ваш выбор. Также можно сделать кроссплатформ и на Котлин(Kotlin Multiplatform). Но оно в альфе и фигня если честно :)
    Ответ написан
    Комментировать
  • Какой тип поля в Django Admin, Users - Права?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Это ManyToManyField
    Ответ написан
    3 комментария
  • Возможно-ли перехватить фатальные ошибки Python?

    YuriyVorobyov1333
    @YuriyVorobyov1333
    Software Developer
    Вы не можете это сделать, т.к. это действие срабатывает до выполнения строчки кода

    Тут был написан комментарий, который уже удалили)
    Так вот там предлагали такое решение:
    try:
      # строка с ошибкой
    except SyntaxError:
      # действие при ошибке

    Так вот такое поведение нельзя обработать, яркий пример:
    try:
      a + a = a
    except SyntaxError:
      print("ошибочка")

    Вызвав данный код, мы получим Syntax Error до обработки, вот и все дела)
    Вы можете его обработать таким способом:
    try:
      eval("a + a = a")
    except SyntaxError:
      print ("ошибочка")

    Но самом по себе применение eval - bad practices

    upd: вызов таких экспешенов происходит при первоначальном анализе кода, когда ни о каких try/except и речи не идет
    Ответ написан
    2 комментария
  • Blade и ошибка?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    <?php if(!1>2): ?>

    Ну а что вы хотите? Вставьте такую строку в любой код и он с такой же ошибкой упадёт.
    Это должен быть законченный рабочий код.

    А так у вас получается в шаблон вставляется if(1=2) { без закрывающей скобки.
    Ответ написан
    1 комментарий
  • Можно-ли улучшить этот код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. выкинуть все локейшены с ошибками. это дикость, ни один нормальный сайт так не делает. ошибки надо показывать либо сразу, либо через сессию. локейшены с ошибками встречаются только у дебилов, которые делают видео на ютубе для других дебилов. не надо так палиться сразу.
    2. выкинуть домен из ссылок. ты серьёзно собираешься переписывать все ссылки, когда у тебя сайт с временного домена переедет на постоянный? а потом обратно - когда надо будет потестить локально? header('Location: /AUTH-2/Sign_In/'); достаточно для единственного локейшена, который нужен в этом коде
    3. убрать всю эту лестницу иф-ов, делать все проверки на одном уровне. ошибки собирать в массив. перед вставкой в БД проверить массив на пустоту.
    4. if ($row->Email != $email) - масло масляное. ты УЖЕ проверил емейл в базе, зачем еще раз проверять?
    5. else if($row->Email == $email) { - это уже какой-то совсем адок. Ты УЖЕ проверил, что емейл не совпадает. причем два раза. В else мы попадём, если емейлы совпдают. Ещё раз проверять не надо. Два алкоголика садятся на трамвай, один спрашивает водителя - я этом номере до вокзала доеду? Водитель - нет. Второй алкаш - а я?
    6. внизу у тебя ссылка на password_verify, но хэшируешь ты все равно кривым алгоритмом. Не осилил?
    7. все эти куличики в песочнице с $client_Code $server_Code - это какой-то адок с точки зрения безопасности. Любой школьник, который не тупее дауна, поломает все твои "сессии" за 5 минут.
    8. setcookie("PHPSESSID", $_COOKIE['PHPSESSID'], 0, '/', '.tsecret.net'); - опять совершенно бессмысленная строчка. К чему она? Зачем? Что ты хотел тут сказать? И кому?
    9. Разбей это простыню хотя бы на функции. Никакой солид у тебя конечно не получится, как и у Георгий Котов который сам не понимает что это значит. Но хотя бы разделить проверки, запись в бд, и отправку емейла можно.

    В целом - из плюсов только нормальная работа с БД, в остальном на троечку, и местами - кол (за дыры в безопасности и отсутствие логики)
    Ответ написан
    5 комментариев
  • Можно-ли улучшить этот код?

    Да улучшить можно, я бы по SOLID принципам его переписал, чем не улучшение?
    Ответ написан
    Комментировать
  • Slim 4 и Ошибка?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Could not detect any PSR-17 ResponseFactory implementations. Please install a supported implementation in order to use `AppFactory::create()`. See https://github.com/slimphp/Slim/blob/4.x/README.md for a list of supported implementations.

    Вам же написали что делать: нужно поставить одну из этих либ https://github.com/slimphp/Slim/blob/4.x/README.md...

    Перейдите по ссылке любой из списка и через композер поставьте, например
    composer require slim/psr7
    Ответ написан
    1 комментарий
  • Почему HTML выводит то что ему за благо рассудиться?

    Kiriniy
    @Kiriniy
    Графический и веб-дизайнер
    1. У элементов должны быть уникальные id и что-бы, как вы в комментариях к вопросу, не копировать стили меняя только имя, используют классы. Например:
    <a class="a" href="/AUTH-2/Log_In">Войти</a>
    <a class="a" href="/AUTH-2/Sign_In">Регистрация</a>
    <a class="a" href="/AUTH-2/Sign_Out">Выйти</a>


    2. И в css тоже меняете на класс. Кстати, есть html атрибут align, но нет такого свойства css.

    body {
        background: url(https://html5book.ru/wp-content/uploads/2015/10/background54.png)
    }
    footer {
        background: #AAAAAA;
    }
    .a {
        text-decoration: none;
        outline: none;
        display: inline-block;
        margin: 10px;
        color: white;
        box-shadow: 0 0 0 2px white;
        padding: 20px 0;
        width: 150px;
        text-align: center;
        text-transform: uppercase;
        letter-spacing: 3px;
        position: relative;
        overflow: hidden;
    }
    .a span {
        font-family: 'Montserrat', sans-serif;
        position: relative;
        z-index: 5;
    }
    .a:before, .a:after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
    }
    .a:before {
        transform: translateX(-100%);
        background: white;
        transition: transform .3s cubic-bezier(.55, .055, .675, .19);
    }
    .a:after {
        background: #413ad5;
        transform: translateX(100%);
        transition: transform .3s cubic-bezier(.16, .73, .58, .62) .3s;
    }
    .a:hover:before, .a:hover:after {
        transform: translateX(0);
    }


    3. Вероятно, вы планировали обернуть содержимое ссылок в span, который имеется в стилях и что бы слова оказались поверх псевдоэлементов, но забыли.

    <a class="a" href="/AUTH-2/Log_In"><span>Войти</span></a>
    <a class="a" href="/AUTH-2/Sign_In"><span>Регистрация</span></a>
    <a class="a" href="/AUTH-2/Sign_Out"><span>Выйти</span></a>
    Ответ написан
    1 комментарий
  • REQUEST_METHOD и PostMan?

    @Tendor
    если прописать в postmen урл с протоколом https://test-server.tsecret.net/API.php, то ответ будет post
    видимо на сервере происходит редирект на https протокол из за чего возвращает get
    5f60d1c64c883131803401.png
    Ответ написан
    1 комментарий
  • Какой хэш-шифр самый... Сложный?

    Ocelot
    @Ocelot
    Если нужно поднять сложность вычисления хеша (например, чтобы замедлить брутфорс), обычно берут хорошую, сильную хеш-функцию (см. список в ответе paran0id) и строят на её основе Key derivation function (KDF). Основной принцип - многократное хеширование с добавлением соли. Количеством итераций можно регулировать сложность, а соль нужна, чтобы сделать бесполезными предвычисления.
    Есть KDF, нацеленные на "пожирание" не только процессорного времени, но и больших объёмов памяти; например, Scrypt.
    Ответ написан
    Комментировать
  • PHP Parse error: syntax error, unexpected '$url_login' (T_VARIABLE) Что это значит?

    Stalker_RED
    @Stalker_RED
    И поставь себе какой-нибудь редактор с подсветкой, станет легче.
    Ответ написан
    Комментировать
  • PHP Parse error: syntax error, unexpected '$url_login' (T_VARIABLE) Что это значит?

    proudmore
    @proudmore
    $code_login = $_GET['code'];
    Точку с запятой поставь...
    Ответ написан
    Комментировать
  • Google OAuth2.0 возвращает invalid_grant?

    Spartak-2205
    @Spartak-2205
    Разработка и создание сайтов
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

    Замените на
    curl_setopt($ch, CURLOPT_POSTFIELDS, urldecode(http_build_query($params)));


    И это
    $params = array(
          'access_token' => $data['access_token'],
          'id_token'     => $data['id_token'],
          'token_type'   => 'Bearer',
          'expires_in'   => 3599
        );

    На это
    $params = array('access_token' => $data['access_token']);

    * (для получения инфы о юзере нужен только токен)
    Ответ написан
    Комментировать
  • Как исправить ошибки в коде при выполнении SQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Подставлять через плейсхолдеры можно только значения. Имена таблиц и полей, служебные слова не подставляются.
    2. В обратные кавычки берутся только имена таблиц и колонок.
    3. Плейсхолдеры в кавычки не берутся.
    Ответ написан
    2 комментария
  • Ошибка PHP Parse error, Как исправить?

    v3shin
    @v3shin
    Веб-шаман
    Массивам нужны фигурные скобки.
    $result = $link->query("SELECT * FROM `\"$email\"` WHERE `parameters` = \"{$_SESSION['Session_Code']}\"");

    И, мне кажется, скрипт еще упадет на других строках: 11 и 19.
    Ответ написан
    6 комментариев
  • Почему не работает код php?

    alekseyHunter
    @alekseyHunter
    Android developer
    Выкиньте код и перепишите с нуля.
    И научитесь составлять вопросы.
    Ответ написан
    Комментировать
  • Как понять нашёл ли SQL запрос данные в базе?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    https://www.php.net/manual/ru/mysqli-result.num-ro...

    $result = $link->query("SELECT * FROM `Exiting Users` where email='Aruba';");
    echo "Найдено строк: ".$result->num_rows;
    Ответ написан
    1 комментарий
  • В чем проблема MySQLi?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Потому что мультизапрос тебе сто лет в обед не нужен.
    Как и большая часть этого бессмысленного кода.

    Вместо всех этих шаманских плясок с пятью бубнами тебе нужно просто соединиться и просто выполнить свои запросы
    <?php
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect("localhost", "tsecret1_Sys", "FB,******0iu", "tsecret1_users");
    mysqli_set_charset($mysqli, $charset);
    
    $link->query("CREATE TABLE `tsecret1_users`.`uid ` ( `PassWord` TEXT NOT NULL ) ENGINE = MyISAM");
    $link->query("INSERT INTO `uid`(`PassWord`) VALUES (`pass2_hash`");


    ПЯТЬ строчек, из них две на выполнение запроса.
    Ответ написан
    Комментировать