Ответы пользователя по тегу PHP
  • Как PHP код понимает, где находится БД MySQL?

    Recosh
    @Recosh
    Программист студент
    База mysql по умолчанию работает через TCP подключение, порт 3306. В конфигурационном файле будет указан адрес (host) 127.0.0.1 или localhost, что означает, что подключаемся сами к себе.
    Ответ написан
    1 комментарий
  • Как правильно определить рефера?

    Recosh
    @Recosh
    Программист студент
    После загрузки отправьте ajax запрос на свой сервер с переменной location.href будут точнее данные, если я правильно понял. Так же можно собрать и другую информацию( размер окна брауезра, геопозицию по запросу и пр... )
    Ответ написан
    3 комментария
  • Отправка сообщений в PHP?

    Recosh
    @Recosh
    Программист студент
    Имею привычку привязывать почту Яндекса к домену, регать ящик например notify@nazvaniesayta.ru и из php по SMTP через сервак Яндекса отправлять почту. Так и цифровая подпись у письма появляется.
    Ответ написан
    Комментировать
  • Как отослать XML запрос с авторизацией использую Guzzle?

    Recosh
    @Recosh
    Программист студент
    Вот так общаюсь с яндексом по xml:
    $acc = $this->get_auth_token_by_id($reklama_account_id);
    
    $dom = new domDocument("1.0", "utf-8"); // Создаём XML-документ версии 1.0 с кодировкой utf-8
    $root = $dom->createElement("ReportDefinition"); 
    $root->setAttribute('xmlns','http://api.direct.yandex.com/v5/reports');
    $dom->appendChild($root);
    
    $SelectionCriteria = $dom->createElement("SelectionCriteria");
    
    //Установка даты
    $DateFrom = $dom->createElement("DateFrom", $data['date_nach']);
    $DateTo = $dom->createElement("DateTo", $data['date_konech']);
    $SelectionCriteria->appendChild($DateFrom);
    $SelectionCriteria->appendChild($DateTo);
    
    $root->appendChild($SelectionCriteria);
    
    //Установка полей, которые нам нужны
    
    $FieldNames = $dom->createElement("FieldNames", "Impressions");
    $root->appendChild($FieldNames);
    
    $FieldNames = $dom->createElement("FieldNames", "Clicks");
    $root->appendChild($FieldNames);
    $FieldNames = $dom->createElement("FieldNames", "Ctr");
    $root->appendChild($FieldNames);
    $FieldNames = $dom->createElement("FieldNames", "Cost");
    $root->appendChild($FieldNames);
    
    //Имя отчёта (должно быть уникальным)
    $ReportName = $dom->createElement("ReportName", $report_name);
    $root->appendChild($ReportName);
    
    //Тип отчёта
    $ReportType = $dom->createElement("ReportType", 'ACCOUNT_PERFORMANCE_REPORT');
    $root->appendChild($ReportType);
    
    $DateRangeType = $dom->createElement("DateRangeType", "CUSTOM_DATE"); //У нас своё время
    $root->appendChild($DateRangeType);
    
    //Формат запроса отчёта
    $Format = $dom->createElement("Format", "TSV");
    $root->appendChild($Format);
    
    //Включаем НДС
    $IncludeVAT = $dom->createElement("IncludeVAT", "YES");
    $root->appendChild($IncludeVAT);
    $IncludeDiscount = $dom->createElement("IncludeDiscount", "NO");
    $root->appendChild($IncludeDiscount);
    
    $data_string = (string)$dom->saveXML();
    
    $ch = curl_init('https://api.direct.yandex.com/v5/reports');
    
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Authorization: Bearer '.$acc['app_token'],
        'Accept-Language: ru',
        'returnMoneyInMicros: false',
        'skipReportHeader: true',
        'skipReportSummary: true'
    ));
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    
    $result = curl_exec($ch);
    
    $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    $header = substr($result, 0, $header_size);
    $body = substr($result, $header_size);

    В $data_string записывается xml строка и через curl отправляется
    В переменную $body записывается ответ
    Ответ написан
    Комментировать
  • Как сделать абсолютно безопасную загрузку файлов на сервер?

    Recosh
    @Recosh
    Программист студент
    Мне кажется запрет отдавать контент напрямую вебсерверу из каталога с пользовательскими файлами и использования проксирования с заголовком download на php должно решить проблему.
    Ответ написан
    Комментировать
  • Как украсть WebSocket с сайта?

    Recosh
    @Recosh
    Программист студент
    Я бы расширение бота написал на браузер. В своё время парсил так авито.
    Ответ написан
  • JavaScript редактор сайта?

    Recosh
    @Recosh
    Программист студент
    Всё эт можно реализовать посредством jquery и ajax технологий. Мыслишь верно, тут можно делать всё и на одной странице и на двух. Формы можно отправлять ajax'ом даже без объявления тега form
    Ответ написан
    Комментировать