• Как залить прошику на esp32 с чипом CH9102?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Отвечу сам на свой вопрос, проблема оказалась в версии библиотеки платы, после установки версии ниже, всё заработало без каких либо танцев с бубном.
    Ответ написан
  • Horizontal Scroll Qt?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Ларчик просто открывался)
    QSlider::groove:horizontal {
        height: 1px;
        background:#FFFFFF;
       
    } 
    
    QSlider::sub-page
    {
        background:#007ad9;
    }
    
    QSlider::add-page 
    {
        background:#FFFFFF;
    }
    
    QSlider::handle:horizontal {
        background: #007ad9;
    	width: 14px;
    	margin: -7px 0px;
    	border-radius:7px;
    }
    Ответ написан
    Комментировать
  • Вирусы в пустом скомпилированном проекте?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Собрал всё точно также на другом компе Win32.Trojan.WisdomEyes.16070401
    Почитал китайские форумы, данные триггеры срабатывают на элементы идентификации ПК.
    Ответ написан
    Комментировать
  • Как запретить скачивание файлов из некоторых каталогов?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    location ^~ /files/score/ {
    deny all;
    return 404;
    }
    Ответ написан
    Комментировать
  • Как определить находится вкладка в фокусе или нет?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Комментировать
  • Как сделать мультимаску для ввода номеров телефона?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Вопрос решился добавление знака ? в маску jquery.maskedinput
    Ответ написан
    Комментировать
  • Получение бесплатного SSL сертификата для сайта?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    В статье всё указано верно, видимо гугл браузер закешировал старый сертификат.
    Ответ написан
    Комментировать
  • Nginx + apache2 не работают директивы deny from all?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    location ~ /file/(.+)\.*$ {
              deny all;
    }
    Ответ написан
    Комментировать
  • Почему греется ноутбук Acer?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Разобрал ноутбук.
    В сервисе год назад меня мягко сказать обманули.
    На куллере была заводская пломба и лента, его ни кто не разбирал и не чистил.
    Пыли в нём было столько, что она собралась кусками и мешала вентилятору нормально крутится.
    Разобрал его полностью, почистил спиртовыми салфетками, смазал маслом из днс по 100 рублей за тюбик.

    Система охлаждения ещё хуже, мастер не пожалел термопасты и намазал её слоем 3-4 мм, при этом намазал и соседние с процессором детали (резисторы, конденсаторы), которые даже не касаются трубок охлаждения :)
    Удалил старую термопасту ластиком и ватными палочками, поверхность системы охлаждения протёр спиртом.
    Намазал тонким слоем термопасту за 200 рублей из днс и распределил очень тонким слоем по всей поверхности процессора с помощью лопатки из комплекта.

    Почистил ватными палочками все отверстия и протёр внутреннюю поверхность ноута спиртовыми салфетками.

    После собрал его и устроил ему многочасовой тест с видео играми, бук перестал греться и выключаться.
    Ответ написан
    Комментировать
  • Сервер для удобного поиска книг?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Куда то пропал хороший ответ.
    https://habrahabr.ru/post/175527/
    https://habrahabr.ru/post/30594/
    Ответ написан
    Комментировать
  • Геймдизайн: может ли жить такая механика?

    youtube_com_chevichelov
    @youtube_com_chevichelov
    Судя по описанию, бесплатная раса не сможет победить платную расу роботов.
    Так, как они своими многочисленными смертями будут делать роботов, всё сильнее и сильнее.
    Ответ написан
    Комментировать
  • Как обеспечить работу фильтров во всех браузерах?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Ульрих дал ответ (использовать grey плагин для Jquery)
    Но дал он его как комментарий к абсолютно бестолковому совету Никита Полевой
    Не знаю, по каким причинам Никита Полевой удалил свой ответ(глупость, или т.п.) но в место с ним он удалил хороший совет от Ульрих
    Ответ написан
  • Автоматизация покупки и оплаты цифровых предметов через языки программирования?

    youtube_com_chevichelov
    @youtube_com_chevichelov
    Клик мыши можно эмитировать так
    $('#ИД КНОПКИ').click();
    Ну а дальше я думаю Вы уже поняли.
    Ответ написан
  • Как выгнать ботов из анонимного чата?

    youtube_com_chevichelov
    @youtube_com_chevichelov Автор вопроса
    Спасибо всем большое за ответы.
    Но хилые боты отсеиваются ещё на стадии прокси сервера, через который у меня идёт весь трафик. Он же спасает от DDOS атак (в этом году отбил 3 шт.)
    Речь идёт о ботах, полностью моделирующих работу пользователя.
    С хорошими заголовками.
    Сообщения они пишут с рандомным промежутком в 5-15 минут.
    В сообщений нет ссылок есть только электронные почты.
    К примеру:

    Продам носки пишите marina@mail.ru

    То что это бот говорит, о его активности 24/7
    Обычные пользователи тоже дают свои почты, поэтому банить по мылу не вариант.
    Рекапча есть, но она как сказано выше, появляется если сообщения пишут часто или одинаковые.
    Постоянно вводить капчу, будет бесить пользователей.
    Регистрируются люди по желанию. К статистике в чате 1000 гостей и 50 пользователей.
    Ответ написан
  • Как решить проблему изменения масштаба при установленном user-scalable=no?

    youtube_com_chevichelov
    @youtube_com_chevichelov
    <meta name="viewport" content="width=device-width, initial-scale=0.4, maximum-scale=0.4, user-scalable=1">

    initial-scale=0.4 - задаёт масштаб
    maximum-scale=0.4 - запрещает масштабировать.
    Ответ написан
    Комментировать
  • Симуляция игрового мира. Как правильно?

    youtube_com_chevichelov
    @youtube_com_chevichelov
    Но в таком случае на сервере должна быть видео карта.

    Видео карта нужна, что бы выводить изображение на монитор. Даже если Вы будите
    держать инстанс готового мира, как на клиенте.

    Видео карта на сервере всё равно не нужна.
    Ответ написан
    Комментировать
  • Стоит ли делать интернет магазин на joomla?

    youtube_com_chevichelov
    @youtube_com_chevichelov
    Стоит, если не маяться с готовыми компонентами, допиливая их до ума.
    А взять чистую joomla, переписать базу, и написать всё самому.
    Есть портал, который продаёт информацию для собственников пс, на joomle 1.5 так как написан давно, работает отлично, без тормозов и лагов (страницы генерируются за 0,298 с.), система оплаты, как через счета так и касса webmoney.
    Что касается взлома, если выставить все права нормально на файлы и папки, изменить стандартные методы авторизации и регистрации, и использовать хороший, устойчивый DDOS прокси, то не чего такому сайту страшного не будет, сколько его у нас не DDOS-или, сколько не пытались взломать, кроме как по губе не чего не получили)
    Ответ написан
    Комментировать
  • Как вставить переменную внутрь массива в PHP?

    youtube_com_chevichelov
    @youtube_com_chevichelov
    <?
    require_once 'mandrill-api-php/src/Mandrill.php'; 
    
    //Авторизация
    $user=array(
        'USER_LOGIN'=>'адрес_моей_почты',
        'USER_HASH'=>'тут_код_доступа' 
    );
    $subdomain='поддомен_мой'; #Наш аккаунт - поддомен
    
    $link='https://'.$subdomain.'.amocrm.ru/private/api/auth.php?type=json';
    
    $curl=curl_init(); #Сохраняем дескриптор сеанса cURL
    #Устанавливаем необходимые опции для сеанса cURL
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
    curl_setopt($curl,CURLOPT_URL,$link);
    curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
    curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($user));
    curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
    curl_setopt($curl,CURLOPT_HEADER,false);
    curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
    
    $out=curl_exec($curl); 
    $code=curl_getinfo($curl,CURLINFO_HTTP_CODE); 
    curl_close($curl); 
    
    $code=(int)$code;
    $errors=array(
        301=>'Moved permanently',
        400=>'Bad request',
        401=>'Unauthorized',
        403=>'Forbidden',
        404=>'Not found',
        500=>'Internal server error',
        502=>'Bad gateway',
        503=>'Service unavailable'
    );
    
    $Response=json_decode($out,true);
    $Response=$Response['response'];
    
    // создание сделки
    $leads['request']['leads']['add']=array(
        array(
            'name'=>'Новая сделка через форму',
            'status_id'=>111, 
            'responsible_user_id'=>222,
            'custom_fields'=>array(
                //
            )
        )
    );
    
    $link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/leads/set';
    $curl=curl_init(); #Сохраняем дескриптор сеанса cURL
    #Устанавливаем необходимые опции для сеанса cURL
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
    curl_setopt($curl,CURLOPT_URL,$link);
    curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
    curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($leads));
    curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
    curl_setopt($curl,CURLOPT_HEADER,false);
    curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
    
    $out=curl_exec($curl);
    $code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
    
    $code=(int)$code;
    $errors=array(
        301=>'Moved permanently',
        400=>'Bad request',
        401=>'Unauthorized',
        403=>'Forbidden',
        404=>'Not found',
        500=>'Internal server error',
        502=>'Bad gateway',
        503=>'Service unavailable'
    );
    try
    {
        if($code!=200 && $code!=204)
            throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
    }
    catch(Exception $E)
    {
        die('error: '.$E->getMessage().PHP_EOL.'code error: '.$E->getCode());
    }
    
    $Response=json_decode($out,true);
    $Response=$Response['response']['leads']['add'];
    
    foreach($Response as $v)
        if(is_array($v))
            $output.=$v['id'].PHP_EOL;
    
    $lead_id = $output;
    
    
    $tasks['request']['tasks']['add']=array(
        #Привязываем к сделке
        array(
            'element_id'=>$lead_id, #ID сделки
            'element_type'=>2, #Показываем, что это - сделка, а не контакт
            'task_type'=>1, #Звонок
            'text'=>'Связаться с клиентом',
            'responsible_user_id'=>192582, // Ответственный за выполнение
            'complete_till'=> time() + (30 * 60) //время завершения в UNIX формате
        ),
    );
    
    $link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/tasks/set';
    
    $curl=curl_init(); 
    #Устанавливаем необходимые опции для сеанса cURL
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
    curl_setopt($curl,CURLOPT_URL,$link);
    curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
    curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($tasks));
    curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
    curl_setopt($curl,CURLOPT_HEADER,false);
    curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
    
    $out=curl_exec($curl); 
    $code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
    
    
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    
    $contacts['request']['contacts']['add']=array(
        array(
            'name'=> 'Новый контакт '.$email . " через форму", // Сюда вписывать имя клиента
            'linked_leads_id'=>array( #Список с айдишниками сделок контакта
                $lead_id // Наша свежая сделка
            ),
            'custom_fields'=>array(
                array(
                    #Телефоны
                    'id'=>833436, #Уникальный индентификатор заполняемого дополнительного поля
                    'values'=>array(
                        array(
                            'value'=> $phone,
                            'enum'=>'MOB' #Мобильный
                        )
                    )
                ),
                array(
                    #E-mails
                    'id'=>833438,
                    'values'=>array(
                        array(
                            'value'=> $email,
                            'enum'=>'WORK', #Рабочий
                        )
                    )
                )
            )
        )
    );
    
    $link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/contacts/set';
    
    $curl=curl_init(); #Сохраняем дескриптор сеанса cURL
    #Устанавливаем необходимые опции для сеанса cURL
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
    curl_setopt($curl,CURLOPT_URL,$link);
    curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
    curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($contacts));
    curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
    curl_setopt($curl,CURLOPT_HEADER,false);
    curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
    
    $out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
    $code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
    
    $code=(int)$code;
    $errors=array(
        301=>'Moved permanently',
        400=>'Bad request',
        401=>'Unauthorized',
        403=>'Forbidden',
        404=>'Not found',
        500=>'Internal server error',
        502=>'Bad gateway',
        503=>'Service unavailable'
    );
    try
    {
        if($code!=200 && $code!=204)
            throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
    }
    catch(Exception $E)
    {
        die('Ошибка: '.$E->getMessage().PHP_EOL.'Код ошибки: '.$E->getCode());
    }
    
    $Response=json_decode($out,true);
    $Response=$Response['response']['contacts']['add'];
    
    
    foreach($Response as $v)
        if(is_array($v))
            $output.=$v['id'].PHP_EOL;
            
    
    $mail = new Mandrill('мой_апи_ключ');
    
    /* Блок динамического контента */
    $tpl_con = array(
        array(
            'name' => 'my-label',
            'content' => '<h2>Моя рассылка</h2>'
        )
    );
    
    $data = array(
        'html' => 'Ваша заявка получена',
        'text' => 'Документ во вложении',
        'subject' => 'Спасибо за вашу заявку',
        'from_email' => 'моя почта',
        'from_name' => 'Максим',
        'to' => array(		
            array(
                'email' =>$email, //именно сюда и нужно вписать переменную, но если используем include, то она как будто не передается сюда
                'name' => '', //Lucas
                'type' => 'to'
            )
        ),
        'global_merge_vars' => array(
            array(
                'name' => 'NAME',
                'content' => 'Lucas'
            )
        ),
        'merge_vars' => array(
            array(
                'rcpt' => 'example@gmail.com',
                'vars' => array(
                    array(
                        'name' => 'NAME',
                        'content' => 'Lucas'
                    )
                )
            )
        ),
        'attachments' => array(
            array(
                 'type' => 'application/msword',
                    'name' => 'brif.doc',
                    'content' => base64_encode(file_get_contents('brif.doc'))
            )
        ),
        
       /* 
       'images' => array(
            array(
                'type' => 'image/png',
                'name' => 'phone.png',
                'content' => base64_encode(file_get_contents('phone.png'))
            )
        ),
        
        */
        
        'subaccount' => 'мой_субаккаунт'
    );
    
    try {
        /* Отправка обычного письма */
        $result = $mail->messages->send($data);
        print_r($result);
        /* Отправка письма с использованием шаблона */
       // $result = $mail->messages->sendTemplate('example', $tpl_con, $data);
      //  print_r($result);
    } catch(Mandrill_Error $error) {
        echo 'Error: ' . get_class($error) . ' - ' . $error->getMessage();
    }
        
     $body=file_get_contents("http://sms.ru/sms/send?api_id=мой_апи_ключ&to=мой_номер_телефона&text=".urlencode(iconv("utf-8","utf-8","Заявка с сайта,$email,$phone")));
     ?>

    Что мешает сделать так?
    Ответ написан