Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Открыть новую тему     Написать ответ в эту тему

zagorisback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Цитата:
Я также хотел бы проверить сценарий, если вы используете сайт "CloudFlare"
 
Mavrikii
 
 
хотите.. средствами самого php это невозможно, так как нужно выполнять js и другие штуки, имитипуя настоящий браузер

 
Вы можете объяснить мне, как это сделать, некоторые примеры

Всего записей: 434 | Зарегистр. 05-05-2014 | Отправлено: 10:57 10-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Вы можете объяснить мне, как это сделать, некоторые примеры

сделать что? пройти через CF? нет, не могу, потому что нет смысла возиться
1) для этого нужен полноценный браузер
2) если пытаться разбираться в их алгоритме которым различается бот и человек, то он, наверняка, часто меняется

Всего записей: 13202 | Зарегистр. 20-09-2014 | Отправлено: 11:04 10-08-2022 | Исправлено: Mavrikii, 11:05 10-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
это возможно сделать?

Наверное можно. Нужно проверить какой ответ возвращает сайт который использует CloudFlare.  
 
 
Добавлено:
Mavrikii

Цитата:
1) для этого нужен полноценный браузер
2) если пытаться разбираться в их алгоритме которым различается бот и человек, то он, наверняка, часто меняется

Мне, кажется, zagorisback хочет просто проверить стоит на сайте CloudFlare или нет. Вроде как это просто делается.
 
 
Добавлено:
https://www.unian.net
 
HTTP/1.1 403 Forbidden
Date: Thu, 11 Aug 2022 20:05:48 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Chl-Bypass: 1
Permissions-Policy:
 
 ....
 
SameSite=None
Vary: Accept-Encoding
Strict-Transport-Security: max-age=15552000
Server: cloudflare
CF-RAY: 73939692fd0e0fa6-VIE
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
 
Добавлено:
Ну и тут рассказывают как получить заголовки с помощью curl
 
https://de-vraag.com/ru/65502999

Всего записей: 350 | Зарегистр. 20-03-2002 | Отправлено: 22:58 11-08-2022 | Исправлено: Samovarov, 23:14 11-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samovarov

Цитата:
хочет просто проверить стоит на сайте CloudFlare или нет

учитывая предыдущее пожелание - не факт..

Цитата:
является ли URL -адрес онлайн или в автономном режиме,

звучит как проверка отвечает ли сайт через CF или нет.

Всего записей: 13202 | Зарегистр. 20-09-2014 | Отправлено: 04:42 12-08-2022
zagorisback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samovarov
 

Цитата:
Мне, кажется, zagorisback хочет просто проверить стоит на сайте CloudFlare или нет. Вроде как это просто делается.  

 
точный,
Я должен сделать это на php
Если сайт на CloudFlare просмотрите уведомление (или значок)
 
 
Я попробовал это, но ..
 

Код:
 
<?php
 
$url = 'https://de-vraag.com/ru/65502999';
 
    $client = curl_init($url);  
   curl_setopt($client, CURLOPT_CUSTOMREQUEST, "POST");
   curl_setopt($client, CURLOPT_POSTFIELDS, $data_string);
   curl_setopt($client, CURLOPT_HEADER, 1);
   $response = curl_exec($client);
   var_dump($response);
     
?>
 
 

 
   
 

Всего записей: 434 | Зарегистр. 05-05-2014 | Отправлено: 20:16 12-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
   curl_setopt($client, CURLOPT_CUSTOMREQUEST, "POST");
   curl_setopt($client, CURLOPT_POSTFIELDS, $data_string);

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

Код:
$site = 'de-vraag.com';
var_dump(dns_get_record($site, DNS_NS));

 

Цитата:
array(2) {
  [0]=>
  array(5) {
    ["host"]=>
    string(12) "de-vraag.com"
    ["class"]=>
    string(2) "IN"
    ["ttl"]=>
    int(21600)
    ["type"]=>
    string(2) "NS"
    ["target"]=>
    string(23) "bruce.ns.cloudflare.com"
  }
  [1]=>
  array(5) {
    ["host"]=>
    string(12) "de-vraag.com"
    ["class"]=>
    string(2) "IN"
    ["ttl"]=>
    int(21600)
    ["type"]=>
    string(2) "NS"
    ["target"]=>
    string(22) "edna.ns.cloudflare.com"
  }
}

в target всегда будет cloudlare.com
 
если же нужно запросом, то  

Код:
file_get_contents("https://de-vraag.com/ru/65502999");
echo stripos(join("\n", $http_response_header), 'Server: cloudflare') === false ? 'Not CF' : 'CF';


Всего записей: 13202 | Зарегистр. 20-09-2014 | Отправлено: 21:11 12-08-2022
zagorisback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо
 
результат:
 
   
 
 

Всего записей: 434 | Зарегистр. 05-05-2014 | Отправлено: 21:44 12-08-2022 | Исправлено: zagorisback, 22:19 12-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
можно вообще без запросов к сайту делать - посмотреть NS запись в DNS

Круть. Век живи век учись.

Всего записей: 350 | Зарегистр. 20-03-2002 | Отправлено: 22:41 12-08-2022
zagorisback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как мне решить эту проблему с кодированием?
 
   
 
 

Код:
 
<?php
    function showTree($dir) {
        //Стек
        $list = new SplDoublyLinkedList();
        $arr = scandir($dir);
        $arr = array_diff($arr, array('.', '..'));
        //Инициализация первого файлами и папками первого уровня вложенности
        foreach($arr as $v)
            $list->push($dir . DIRECTORY_SEPARATOR . $v);
        
        //Покуда есть данные в стеке
        while(!$list->isEmpty()) {
            $curr = $list->shift();
            echo "$curr<br>";
            
            //Если папка
            if(is_dir($curr)) {
                $arr = scandir($curr);
                $arr = array_diff($arr, array('.', '..'));
                
                //Получаем список папок и файлов
                $i=0;
                foreach($arr as $v){
                    $path = $curr . DIRECTORY_SEPARATOR . $v;
                    $list->add($i, $path);
                    $i++;                        
                }    
            }  
        }
    }
    
    //Вызываем функцию
    showTree(dirname(__FILE__));
?>
 

Всего записей: 434 | Зарегистр. 05-05-2014 | Отправлено: 14:10 14-08-2022 | Исправлено: zagorisback, 14:11 14-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Как мне решить эту проблему с кодированием?

преобразовывать кодировку текста (названий) перед выводом в ту, в какой выводится страница.
либо изначально говорить браузеру какая кодировка страницы через

Код:
header('Content-Type: text/html; charset=utf-8');

до вывода какого либо текста в браузер. конкретная кодировка зависит от версии Windows.
это может быть еще или cp866 или windows-1251.

Всего записей: 13202 | Зарегистр. 20-09-2014 | Отправлено: 18:45 14-08-2022
Vladsvn

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В поле будут заноситься только числа, а потому предполагаю использовать тип INT. Все числа уникальны, но не все строки числового столбца будут заполнены. А незаполненным база присвоит 0. И таких незаполненных может быть много.
 
В таком случае, нет оснований указать в базе, что столбец уникальный?  

Всего записей: 187 | Зарегистр. 07-09-2016 | Отправлено: 20:35 14-08-2022
zagorisback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 

Цитата:
header('Content-Type: text/html; charset=utf-8');
 
до вывода какого либо текста в браузер. конкретная кодировка зависит от версии Windows.
это может быть еще или cp866 или windows-1251.

 
Кодирование на странице является UTF-8
Итальянская операционная система «Windows 10»
 

Всего записей: 434 | Зарегистр. 05-05-2014 | Отправлено: 20:38 14-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Кодирование на странице является UTF-8

еще раз.. вам нужно выдавать ту кодировку, в которой у вас кодировка названия файлов.
по очереди пробуете и смотрите.. уникод, потом 1251.

Всего записей: 13202 | Зарегистр. 20-09-2014 | Отправлено: 20:40 14-08-2022
zagorisback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 

Цитата:
еще раз.. вам нужно выдавать ту кодировку, в которой у вас кодировка названия файлов.
по очереди пробуете и смотрите.. уникод, потом 1251.

 
 
Кодирование в браузере верно,
Российский текст отображается правильно
 
Только русские файлы в папке не отображаются правильно
 
 

Всего записей: 434 | Зарегистр. 05-05-2014 | Отправлено: 14:54 15-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Кодирование в браузере верно

Так название файлов парсер побил. Не правильно кодировку разобрал, наверное. Теперь только граббить заново

Всего записей: 350 | Зарегистр. 20-03-2002 | Отправлено: 17:32 15-08-2022 | Исправлено: Samovarov, 17:32 15-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Только русские файлы в папке не отображаются правильно

без php они нормально отображаются? самим Windows?
 
Добавлено:
Vladsvn

Цитата:
В таком случае, нет оснований указать в базе, что столбец уникальный?

с нулями это не получится.
если числа только положительные, то лучше делать тип UNSIGNED INT
и не должно тогда превышать число 4294967295

Всего записей: 13202 | Зарегистр. 20-09-2014 | Отправлено: 21:53 15-08-2022 | Исправлено: Mavrikii, 02:12 16-08-2022
zagorisback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне нужна небольшая помощь,
Этот код проверяет, если файл находится в папке,
Кажется, работает,
Чтобы улучшить, предложения принимаются
 
Проблема и в видеоплеере, то есть в переменной PHP
 
Я должен объединить переменную $ext с $path
 

Код:
{$ext[0]}

 

Код:
$path = "trailer";

 

Цитата:
echo "<video  width='320' height='240' controls><source src='{$ext[0]}' type='video/mp4'></video>";

 
Пробовал различные комбинации, но я получаю ошибку
 
 

Код:
 
 
$path = "trailer";
 
if(file_exists($ext[0])) {
 
   
 echo "<b><font color='red'><br> video exists</font></b><br>";
 
} else {  
 
  file_put_contents($path."/".$ext[0],file_get_contents($video2, false, stream_context_create($arrContextOptions)));
   
  echo "<b><font color='green'><br> video download</font></b><br>";
 
}
 
 
    echo "<video  width='320' height='240' controls><source src='{$ext[0]}' type='video/mp4'></video>";
 
 

Всего записей: 434 | Зарегистр. 05-05-2014 | Отправлено: 16:39 17-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
echo "<video  width='320' height='240' controls><source src='$path/{$ext[0]}' type='video/mp4'></video>";

Раз используется несколько раз, удобнее создать переменную с нужной комбинацией.

Всего записей: 13202 | Зарегистр. 20-09-2014 | Отправлено: 17:50 17-08-2022
zagorisback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 

Цитата:
Раз используется несколько раз, удобнее создать переменную с нужной комбинацией.  

 
 
Спасибо,
Я нашел решение, перед ответом, с отдельными переменными
 
 

Код:
echo "<video  width='320' height='240' controls><source src='{$path}{$separatore}{$ext[0]}' type='video/mp4'></video>";

 
 

Всего записей: 434 | Зарегистр. 05-05-2014 | Отправлено: 19:30 17-08-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
{$separatore}

нет смысла.

Всего записей: 13202 | Зарегистр. 20-09-2014 | Отправлено: 20:11 17-08-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru