• Как моментально получить уведомление о новом email письме на C#?

    DarkRaven
    @DarkRaven
    разработка программного обеспечения
    Чтобы ответить на данный вопрос, нужно понять несколько вещей.
    • Что за почту вы используете?
    • На сколько вы можете явно оценить "мгновенно"?

    Почему вопрос про почту - потому, что вас могут временно банить за непреднамеренный DDos (много обращений к ресурсу с краткими промежутками).
    И тут, автоматом, выходит второй вопрос, на сколько вы можете оценить. Обычно, почтовые клиенты опрашивают почту с задержкой от 5 до 15 минут - тут у кого какие настройки.

    Если же нужно быстрее, то тут можно:
    • Поискать другие возможности, т.е. чтобы сам провайдер почты уведомил вас (это самый быстрый способ),
    • Сделать пересылку почты на другой почтовый сервер, который контролируете вы.


    Второй вариант заключается в том, что, либо вы дергаете почту с вашего сервера уже с вашим таймаутом по IMAP (точнее, не почту, а новые сообщения и, к примеру, только заголовки сообщения - это легче), или же, придумываете какой-то другой способ проверки и последующего уведомления (почта хранится в БД, к примеру).
    Ответ написан
    Комментировать
  • Распрарсить xml на PHP?

    des1roer
    @des1roer Автор вопроса
    ученье - свет, а неученье - приятный полумрак
    $xml = simplexml_load_string($response);
    
    for($i=0, $cnt = count($xml); $i < $cnt; $i++){
      echo $xml->city[$i][0]; echo ' ';   
      echo $xml->city[$i]->attributes()->id;
    }
    Ответ написан
    Комментировать
  • Как сделать динамическую смену обложки Вк?

    @psypride
    IT специалист
    Ответ написан
    Комментировать
  • Html, столкнулся с какой-то чёрной магией. Отступ в начале сайта. Поможете?

    Ivanq
    @Ivanq
    Знаю php, js, html, css
    <div /> - не думаю.

    Магия - BOM, Byte Order Mark, у самого такое было. Пересохраните файл как UTF-8 without BOM. Мне тогда помогло.

    UPD Нашел, починил.
    22f59e409acf4d369c8f052e20de6c51.png
    Перед <meta name="copyright" content="" /> стоит не таб, не пробелы, а непонятно что. Заменил на таб - заработало.
    А нашлось-то просто: открыл DevTools, увидел, что meta в body, удивился, полез в код, нашел разницу между author и copyright
    Ответ написан
    7 комментариев
  • В чём проблема?

    Winsik
    @Winsik
    сис.админ, недопрограммист :)
    DirectoryIndex index.php ?
    Ответ написан
    2 комментария
  • Как без костылей сделать так, чтобы footer сайта всегда был внизу?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Также советую изучить и использовать Flexbox-лейаут. Это действительно хорошая штука, которая упростит вам жизнь. В качестве материала для изучения совую статью "Что такое Flexbox? Описание всех css свойств, осно...", в которой описаны и наглядно продемонстрированы все концепции.
    Ответ написан
    Комментировать
  • Как без костылей сделать так, чтобы footer сайта всегда был внизу?

    @dmz9
    не бойся добавить обертку к разметке, от этого никто еще не умер.
    есть всего 2 случая:
    1. высота футера заранее известна и жестко можно её указать. в этом случае обычно использую вот такое
    <html>
    <head>
    <style type="text/css">
    * {
        /* обычно все нормальные адекватные верстальщики юзают css-reset поэтому 
        тут просто масло-масляное. такие правила в нем всегда есть, но они необходимы на самом деле.*/
        padding: 0;
        margin: 0;
        box-sizing: border-box;
    }
    
    body,
    html {
    	background-color: orange;
        height: 100%;
        /* растягиваем корневой элемент и боди на всю высоту окна браузера. 
        да, даже если контента 10 страниц - эти элементы будут именно по размеру окна */
    }
    
    .wrapper {
        min-height: 100%;
        /* обертка должна быть не-меньше чем всё окно целиком. это растягивает враппер 
    на всю высоту окна браузера (как минимум). если контента больше чем одна страница - 
    правило будет просто опускаться, и враппер будет заниматься столько, сколько нужно  */
        padding-bottom: 80px;
        /* вообще, указывать надо чуть больше, либо добавлять main отдельный нижний маржин. 
    если этого не делать футер будет очень близко к main поэтому нужен отступ. 
    обычно 15-16 пикселей (спейсер) */
    }
    
    footer {
    	background-color: green;
        height: 80px;
        /* мы знаем высоту футера и указываем ее */
        margin-top: -80px;
        /* основная суть всего способа - отрицательный верхний маржин затягивает футер наверх на всю 
    собственную высоту футера. соль в том что враппер, идущей по потоку документа перед футером уже занял 
    всю высоту окна. и если мы этого не сделаем то футер всегда будет ниже нижней границы окна 
    даже когда контента не будет, плюс, появится полоса прокрутки. отрицательный маржин 
    нивелирует этот эффект и футер оказывается "прибит" к полу */
    }
    </style>
    </head>
    <body>
        <div class="wrapper">
            <header></header>
            <main>я майн</main>
        </div>
        <footer>пыщщ пыщщ</footer>
    </body>
    </html>

    если используется less/sass то еще проще - заводим переменную (типа $footer_height) и юзаем ее и в паддинге (padding-bottom:$footer_height+15px) и в стилях футера (height:$footer_height; margin-top:-1*$footer_height;). замена высоты футера будет в одном месте (dry!)
    2. второй вариант - высота может меняться - в основном у адаптивных сайтов.
    расскажу как обойтись без флексбокс но нужно немного JS.
    за высотой футера следит скрипт, и при каждом ресайзе страницы обновляет высОты и маржины/паддинги. использовать jquery проще всего, плюс, он почти всегда есть почти везде.
    выглядит примерно так.
    <html>
    <head>
        <style type="text/css">
        * {
            padding: 0;
            margin: 0;
            box-sizing: border-box;
        }
        
        body,
        html {
            background-color: orange;
            height: 100%;
        }
        
        .wrapper {
            min-height: 100%;
            /* теперь паддинг не нужен */
            /* погорячился - все таки нужен )) */
           padding-bottom:80px;
        }
        
        footer {
            background-color: green;
            min-height: 80px;
            /* чтобы футер не схлапывался в нулевую высоту когда в нем пусто */
            height: 80px;
            margin-top: -80px;
            /* можно не убирать, чтобы оставить совместимость с чем то без JS */
        }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <header></header>
            <main>я майн</main>
        </div>
        <footer>а я футер! ололо</footer>
        <script src="http://code.jquery.com/jquery-2.2.4.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        $(document).ready(function() {
            // сначала подождем загрузки
            // объявим переменные, чтобы заново не выбирать каждый раз те же ноды
            var footerHeight, $footer = $('footer'),
                $main = $('main');
            $(window).resize(function() {
                // вешаем обработчик на изменение размеров страницы - т.е. если меняется ширина страницы, 
                // или высота, даже если в футер кто то потом аяксом что то подгрузит - 
                // сработает ресайз и все сам поменяет
                footerHeight = $footer.height('auto').height();
                // важный момент - чтобы "снять" правильную высоту элемента - надо чтобы поток документа сам 
                // назначил верную высоту футеру. а для этого сделаем её "auto". даже если забыли/не захотели убрать 
                // из стилей жестко прописаную высоту - инлайн стиль перебивает весом, и поэтому высота 
                // будет такая "как надо". потом снимаем мерку, и юзаем её
                $main.css({
                    'paddingBottom': (footerHeight + 15)
                });
                // не забываем кемел-кейс для значений-через-дефис
                $footer.css({
                    'height': footerHeight,
                    'marginTop': (footerHeight * -1)
                })
            }).trigger('resize'); // после навешивания обработчиков насильно запускаем первый ресайз
        })
        </script>
    </body>
    </html>

    ------------------------------
    варианты с позиционированием крайне не люблю - дело не в том что я не умею с ним обращаться. я то как раз таки умею, а вот многие другие делают из этого лютые костыли, которые потом заколебешься переделывать. так что лучше не используйте позиционирование там, где оно не нужно (в прибитии футера к полу например).
    то что бутстрап использует позиционирование в своём прибитом футере не значит что это супер-правильно или это best-practices. просто они решили сделать так а не как то иначе.
    Ответ написан
    1 комментарий
  • Массив в url, как исправить?

    @toly19
    в js: decodeURIComponent
    decodeURIComponent("brand_id%5B%5D")//"brand_id[]"
    в php юзай urldecode
    Ответ написан
    Комментировать
  • Где искать информацию по посадке сайта на Wordpress?

    Ankhena
    @Ankhena
    Нежно люблю верстку
    https://codex.wordpress.org/Создание_тем
    https://codex.wordpress.org/Основы_шаблонов
    https://codex.wordpress.org/Теги_шаблонов
    https://ru.wordpress.org/

    Я обычно поступаю так:
    Устанавливаю CMS, обычно в ней есть демо шаблон и часто не один.
    Его разбираю, смотрю где чистый html, а где какие-то вызовы.
    Если сразу не очевидно какой вызов за что отвечает, то обводим блок красным outline, border или background.
    Постепенно нужное переношу на свой тестовый шаблон (вначале можно взять просто пустую страницу).

    Для более сложных вещей остается немножко подумать, погуглить и еще раз подумать :)
    Ответ написан
    Комментировать
  • Где искать информацию по посадке сайта на Wordpress?

    LenovoId
    @LenovoId
    svg, css,js
    https://www.youtube.com/watch?v=WFEgmNfvpnw вот , и вообще на youtube очень много мануалов практически по любой технологии
    Ответ написан
    Комментировать
  • Как использовать OK API на python?

    Vjaka
    @Vjaka
    Платформа игр (Одноклассники)
    Да, надо зарегистрировать прилоежние, при этом так как вы будете дублировать посты в вашу группу то можно использовать токен, полученный прямо из интерфейса редактирования приложеия,
    И особых прав не требуется кроме GROUP_CONTENT. - читаем https://apiok.ru/dev/methods/rest/mediatopic/media...
    Ответ написан
    Комментировать
  • PHP - что делает функция go?

    alsopub
    @alsopub
    Смотрите предыдущие серии, скорее всего в них было описано "создание функции go() для перенаправления пользователя на нужный раздел".
    Ответ написан
    Комментировать
  • PHP - что делает функция go?

    fornit1917
    @fornit1917

    Кроме goto на php.net ничего похожего не нашел =(


    И как вы думаете, что бы это значило?
    Ответ написан
    Комментировать
  • Как правильней сделать заглушку 18+?

    ulrich-schnauss
    @ulrich-schnauss
    Системный администратор, веб-разработчик
    И снова здравствуйте, Сергей!

    Проверять соответствующий cookie, и если его нет, значит пользователь зашел первый раз (или неделя прошла) и перенаправить его на спец. страницу 18+, где он должен будет ввести дату рождения. После чего записать куки сроком на 7 дней и в течение этого времени пользователя больше не раздражать :)
    Ответ написан
    Комментировать
  • Как правильно парсить чпу на php?

    Вы поняли все верно, красивые названия нужны чаще всего по требованию заказчика, для себя же хватит и вашего вида - mysite/catalog/view/product/12322, к тому же не придется обращаться к базе данных, т.к. массив с роутами будет хранится в одном файле.
    Ну а если же вам нужны прям красивые ссылки - mysite/catalog/smartphone/yotaphone/yotaphone2-exclusive - то хранить в бд и получать, но в этом ничего плохого нет, к базе на любом сайте происходит обращение и если проект не предназначен для высоких нагрузок - то вы и не заметите по времени выполнение запроса на получение урлы.
    Ответ написан
    Комментировать
  • В чём разница между фреймворк и cms?

    @murlogen
    CMS - готовая система, которой воспользоваться может не программист.
    Ее можно программировать, но обычно предпочитают не заморачиваться с этим, а искать уже готовые (созданные программистами) модуля CMS под ту или иную задачу

    Фреймворк - это сырая заготовка для программиста.
    Без приложения более-менее значительных программистких усилий вы воооооооооообще ничего не получите, никакого результата.

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

    На фреймворк начинают смотреть, если задача отличается от типовой.

    MVC - это просто свойство. Которое может быть присуще любому типу ПО из этих двух. Это как зеленая легковушка и зеленый трактор. То что они оба зеленых не дает же вам основания говорить - "они оба зеленых, поэтому я буду пахать на легковушке"
    Ответ написан
    24 комментария
  • Работа с БД при создании интернет каталога?

    FaNiska
    @FaNiska
    Web Dev
    Приветствую.

    1) Лучше заводить отдельные поля под каждое свойство. Сейчас нет необходимости искать - в будущем может появится такое желание. Переделывать всегда сложнее. Лучше сразу сделать "по уму".
    2) Ощутимой разницы в скорости работы не будет, не зависимо от того как будете хранить. Но как уже сказал, лучше хранить отдельно для более удобного доступа к хранимой информации.
    Ответ написан
    2 комментария
  • Верстка email-письма, два макета?

    @krontill
    Очень рекомендую ссылку на кучу полезных ресурсов, руководств и исследований - https://habrahabr.ru/company/pechkin/blog/273677/
    Какие почтовики, какие стили поддерживают -https://www.campaignmonitor.com/css/
    emailframe.work фреймворк в помощь.
    https://habrahabr.ru/post/106387/ грабли
    https://habrahabr.ru/post/60420/ рекомендации
    Ответ написан
    1 комментарий