Задать вопрос
  • Частичный перенос сайта с Tilda на Wordpress: как перенести лишь целевую страницу, а остальные оставить на одном домене?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    оставить на Тильде ради SEO

    Обычно наблюдаю обратное, что то изменилось?
    На мой взгляд, это кошмарные костыли, но возможно есть идеи реализации, или конкретные подводные камни, которые вы можете описать, и заказчик передумает так делать :)

    Есть, можно перенести с тильды на wp весь сайт, ради seo, а так же, чтобы избежать описанный геморрой в вопросе.
    Ответ написан
    Комментировать
  • В чём может быть причина сетевого сбоя?

    @Everything_is_bad
    Ну так это именно проблема у хоста, который за cloudflare, если ты его владелец, то смотри логи веб-сервера.
    Ответ написан
    1 комментарий
  • Почему в PHP унарная операция от плюса к минусу работает, а обратно нет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы не понимаете смысла унарных операций.
    Унарная операция - меняет знак числа на противополнжный. Запись с унарным минусом -$x эквивалентна записи 0 - $x.
    Унарная операция + не меняет знак числа. Запись с унарным плюсом +$x эквивалентна записи 0 + $x.

    Да, и операции унарные. Унитарные - это "единые", "стандартные".
    Ответ написан
    1 комментарий
  • Как удалить крякнутую версию нашего приложения из Rustore?

    Vamp
    @Vamp
    1. Читаете пользовательское соглашение.
    2. Пишете досудебную претензию письменно через Почту России (можно электронно) на адрес компании, указанной в данном соглашении. В претензии пишете, что приложение нарушает пункт 4.2 пользовательского соглашения и требуете его удалить, а разместившего пользователя заблокировать.
    3. При отсутствии ответа в течение 30 дней (см. п. 11.1) подавайте в суд.
    Ответ написан
    Комментировать
  • Как настроить блокировку экрана, чтобы были слышны звуки уведомлений после блокировки?

    @AlexVWill
    1. Ищи опцию Lock Instantly или какую то с похожим названием, у меня оно выглядит вот так:
    spoiler
    68d1498fb0182119884317.jpeg

    2. Аналогично, но раз у тебя и так 30 минут стоит, то это тоже будет работать
    3. Тут все очень сильно зависит от версии смартфона и его системы. На Samsung например нет какой то отдельной опции, которая бы запрещала звук уведомлений при заблокированном экране, и если системный звук включен, то звук будет независимо от блокировки. Хотя, через Routins можно настроить и его выключение, но это не опция, а отдельное правило. В общем проверяй, не убирается ли уровень системного звука на минимум при блокировке и нет ли каких то опций на этот счет. Можно на форуме 4pda.to спросить в разделе по твоему смартфону.
    Ответ написан
    4 комментария
  • На сколько практично разделять логику загрузки данных?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    "Правильность" зависит от точки зрения, требований, ограничений и прочих особенностей решения. Ваш код решает вашу проблему? Удовлетворяет вашим требованиям, предъявляемым к нему? Значит всё отлично. Если нет - то тут уже надо думать и искать более правильное решение по конкретным критериям конкретного проекта.
    Ответ написан
    Комментировать
  • Что за шрифт на экране блокировки Android 16?

    Steel_Balls
    @Steel_Balls
    Это собственный шрифт гугла, в общем доступе и за деньги такого не существует
    Ответ написан
    2 комментария
  • Как создать тип данных, представляющий смещение?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    (лево ИЛИ право) ИЛИ (верх ИЛИ низ)

    // Левое ИЛИ правое значение.
    type OffsetHorizontal =
      | { left: number; right?: never; }
      | { right: number; left?: never; }
    
    // Верхнее ИЛИ нижнее значение.
    type OffsetVertical =
      | { top: number; bottom?: never; }
      | { bottom: number; top?: never; }
    
    // Горизонтальные значения, с запретом использования с вертикальными.
    type OffsetHorizontalOnly = OffsetHorizontal & {
      top?: never;
      bottom?: never;
    }
    
    // Вертикальные значения, с запретом использования с горизонтальными.
    type OffsetVerticalOnly = OffsetVertical & {
      left?: never;
      right?: never;
    }
    
    // OffsetHorizontalOnly ИЛИ OffsetVerticalOnly.
    type Offset = OffsetHorizontalOnly | OffsetVerticalOnly;
      
    // Верно:
    // { left: 100 }
    // { right: 100 }
    // { top: 100 }
    // { bottom: 100 }
    
    // Неверно:
    // { left: 100, right: 100 }
    // { top: 100, bottom: 100 }
    // { left: 100, top: 100 }
    // { right: 100, top: 100 }
    // { left: 100, bottom: 100 }
    // { right: 100, bottom: 100 }

    Если понадобиться вариант с И/ИЛИ между осями, то можно так реализовать:
    // Левое ИЛИ правое значение.
    type OffsetHorizontal =
      | { left: number; right?: never; }
      | { right: number; left?: never; }
    
    // Верхнее ИЛИ нижнее значение.
    type OffsetVertical =
      | { top: number; bottom?: never; }
      | { bottom: number; top?: never; }
      
    // OffsetHorizontal И/ИЛИ OffsetHorizontal.  
    type Offset =  
      | OffsetHorizontal  
      | OffsetVertical  
      | (OffsetHorizontal & OffsetVertical);
      
    // Верно:
    // { left: 100 }
    // { right: 100 }
    // { top: 100 }
    // { bottom: 100 }
    // { left: 100, top: 100 }
    // { right: 100, top: 100 }
    // { left: 100, bottom: 100 }
    // { right: 100, bottom: 100 }
    
    // Неверно:
    // { left: 100, right: 100 }
    // { top: 100, bottom: 100 }
    Ответ написан
    1 комментарий
  • Подключние к базе данных из класса - насколько правильно?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    С ответами выше полностью согласен, DI через конструктор, авто-резолв зависимостей, возможно даже сервис контейнер с биндингами - это правильно, явное лучше не явного и тд.

    Но я предлагаю не мучаться, а просто сделать singleton-обертку над PDO
    И вызывать её там где нужно нафигачить запросы к БД

    class DB
    <?php
    class DB
    {
        private static $instance = null;
        private $pdo;
    
        private function __construct()
        {
            $host = 'localhost';
            $dbname = 'your_database';
            $username = 'your_username';
            $password = 'your_password';
            $charset = 'utf8mb4';
    
            $dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
            $options = [
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            ];
    
            $this->pdo = new PDO($dsn, $username, $password, $options);
        }
    
        public static function getInstance()
        {
            if (self::$instance === null) {
                self::$instance = new self();
            }
            return self::$instance->pdo;
        }
    
        private function __clone() {}
        private function __wakeup() {}
    }


    class Data 
    {
        public function __construct($param1, $param2)
        {
             // Получаем PDO напрямую
            $this->db = DB::getInstance();
        }
    
        public function example()
        {
            // $query = $this->db->query("SELECT * FROM table");
            // $query->execute();
    
            // $stmt = $this->db->prepare("...");
        }
    }


    Вариант пробросить PDO через конструктор всё ещё останется, если поймете что оно вам нужно
    А так просто получаем глобальный доступ к инстансу PDO из любого места в коде
    Ответ написан
  • Как применить купон до создания заказа?

    Ge1i0N
    @Ge1i0N
    Пример из документации не работает?

    https://dev.1c-bitrix.ru/api_d7/bitrix/sale/classe...
    Ответ написан
    Комментировать
  • Почему не запускается session_start() на сервере от REG.RU?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Настраивайте в PHP логирование всех ошибок (даже незначительных) в лог-файлы, а потом смотрите сами лог-файлы, исправляйте причины ошибок.
    И причину отсутствия session_start() там-же увидите, однозначно!
    Ответ написан
    Комментировать
  • Почему не запускается session_start() на сервере от REG.RU?

    thewind
    @thewind
    php программист, front / backend developer
    Во-первых, зачем после каждой строки закрывать обработку php, а на каждой новой строке - открывать?)
    Во-вторых, может быть у вас на openserver скрыты ошибки и до начала сессии нет никакого вывода (output), а на хостинге вывод ошибок включен и перед попыткой стартануть сессию идет какой-то вывод данных?
    Ответ написан
    Комментировать
  • Что первым делом сделать сис админу на новом месте работы?

    @Drno
    учётки и схему сети
    схему ПО - где что куда и инвентаризацию
    Ответ написан
    Комментировать
  • Wi-fi адаптер - Windows против Android где проще?

    @66demon666
    Сетевой админ, АТС-админ
    Ну потому что для Андроид для свистка нужно собирать драйвер конкретно под твоё ядро и вшивать/подгружать в собственно ядро. Сам недавно столкнулся с желанием взять свисток через OTG подключить чтобы работал monitoring mode, в итоге забил из-за геморности
    Ответ написан
    Комментировать
  • Почему не срабатывает обработчик события в init.php?

    Ge1i0N
    @Ge1i0N
    У вас в вопросе уже написан ответ - потому что до обработчика не доходит, ошибку отбивает сам компонент до начала регистрации.
    Уже был недавно такой вопрос, не ваш ли? Там ответили что нужно передавать логин в скрытом поле при регистрации, дублируя в него почту или что вам нужно.
    Ответ написан
    2 комментария
  • Почему никто не может позвонить мне в Meet?

    Serax
    @Serax
    Бессистемный администратор
    Тут, вероятно, целый комплекс причин:
    • сервера гугла внезапно и очень сильно деградировали;
    • через гугл-мит регулярно совершаются мошеннические звонки пенсионерам;
    • появились российские аналоги, которые ловят даже на парковке.
    Ответ написан
    2 комментария
  • Почему с Ubuntu server невозможно достучаться до ru.archive.ubuntu.com?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А у вас IPv6 работает? Адрес то оттуда (2a02:6b8::183).
    Попробуйте добавить ключ для принудительного доступа по IPv4.
    sudo apt-get -o Acquire::ForceIPv4=true install ...
    Ответ написан
    8 комментариев
  • Отправка формы html?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    данные формы не поступают в таблицу.

    Что значит "не поступают"? Что делаете и что при этом происходит? В консоли что? Пока придется гадать...
    const pool = mysql.createPool

    Вижу подключение к бд, но проверок успешно ли установлено соединение - нет.
    app.post("/two.html", urlencodedParser, function (req, res) {

    Вижу использование urlencodedParser для обработки данных формы, но не вижу его объявления, попробуйте так (express 4.16.0+):
    // Подключение к бд
    const urlencodedParser = express.urlencoded({extended: false});
    // app.post эндпоинт

    if(!req.body) return res.sendStatus(400);

    Больше инфы:
    console.log("req.body);
    if (!req.body) return res.status(400).send("Данные не были отправлены");

    if(err) return console.log(err);

    Больше инфы:
    if (err) {
      console.error('Error:', err);
      return res.status(500).send('Server error');
    }


    const name = req.body.name;
    const usluga = req.body.usluga;
    const tel = req.body.tel;

    Так симпатичнее:
    const {name, usluga, tel} = req.body;
    < form action="/two.html" method="post">

    Возможно, в будущем, будет лучше указать другой эндпоинт для приема данных с формы?
    <form action="/submit-form" method="post">
    Ну и на всякий, в вашем случае, two.html должен лежать рядом с server.js.
    Ответ написан
    2 комментария
  • Как проверить доступность web ресурса из терминала Linux?

    @SunTechnik
    На выбор, в зависимости от сценария и задач:
    wget
    curl
    lynx ( спасибо AUser0)
    openssl (что бы проверить валидность сертификата)

    Сам по себе ping не может говорить о доступности ресурса (может не работать ping, а ресурс работать. И наоборот)
    Ответ написан
    7 комментариев
  • Почему Laravel 9 врет про ошибки?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Blade в этом плане сложен - он "компилируется" в настоящий php и кэшируется, поэтому реальный стек сложно сопоставить с исходником.

    Поэтому надо писать в нём минимум логики, а всю работу производить в контроллере. В шаблоне у вас не должно быть никаких $_GET и уж конечно никаких
    $cats=$site->qa("select * from categories where catid=0  order by name asc");
    Тогда они будут простыми и ошибку будет сложнее совершить и гораздо легче найти. А если она случится в контроллере, то там уже трейс будет нормальный.
    Использовать нормальный фреймворк, но при этом писать в нём код так, как будто на дворе до сих пор PHP 5.2 - это странно.
    Ответ написан
    2 комментария