За последние 24 часа нас посетили 132553 программиста и 7807 роботов. Сейчас ищут 1394 программиста ...

Определение существования удалённого файла по протоколу HTTPS

Тема в разделе "PHP для новичков", создана пользователем Pingvin1, 5 сен 2018.

  1. Pingvin1

    Pingvin1 Новичок

    С нами с:
    3 сен 2018
    Сообщения:
    20
    Симпатии:
    1
    Как я, когда убрал уши, то увидел, что данный сервер сконфигурирован без поддержки HTTPS – Денвер, а на другом сервере заработала.

    Я решил сюда вставить окончательный текст программы:
    PHP:
    1. <?php
    2.     error_reporting(E_ALL);
    3.     ini_set('display_errors',1);// включить показ ошибок
    4.  
    5. $contextOptions = array(
    6.   'ssl' => array(
    7.     'verify_peer' => false,
    8.     'verify_peer_name' => false
    9.   )
    10. );
    11. // установлен контекст с флагами, запрещающими проверку SSL сертификата
    12. stream_context_set_default($contextOptions);
    13. print_r(get_headers('https://fermers.ru/sites/default/files/Korovy/kor1.jpg'));// //Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? - Денвер
    14. echo "\n<br>Сначала идёт HTTPS://\n<br>";
    15. print_r(get_headers('http://podvor.com/upload/medialibrary/39b/39bf6e0b141740f882d4bd77a1f2ca55.jpg'));
    16. ?>
     
    igordata нравится это.
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    ты прям вырос над собой в этом топике =)
    теперь ты даже понимаешь, что ты делаешь.
    поздравляю.
     
  3. Alex654

    Alex654 Новичок

    С нами с:
    8 сен 2018
    Сообщения:
    18
    Симпатии:
    1
    У меня fopen() по HTTPS прекрасно всё открывает. Может, Вам проще поменять хостинг?
     
  4. Pingvin1

    Pingvin1 Новичок

    С нами с:
    3 сен 2018
    Сообщения:
    20
    Симпатии:
    1
    Денвер сконфигурирован без поддержки HTTPS, а имеющийся хостинг с поддержкой.

    Было бы неплохо, как ни будь это определять и по разному вести программу:

    PHP:
    1. if (!empty($_SERVER['HTTPS'])) echo "\$_SERVER['HTTPS']=". $_SERVER['HTTPS']."<br>";
    2. else echo "\$_SERVER['HTTPS']=Не определён<br>";
    Но хоть сервер поддерживает HTTPS или не поддерживает, всё равно переменная $_SERVER['HTTPS']=Не определёна.
     
  5. Pingvin1

    Pingvin1 Новичок

    С нами с:
    3 сен 2018
    Сообщения:
    20
    Симпатии:
    1
    Не пойму: переменная $Headers определяется функцией get_headers($sUrl), выводится всё даже несколько раз функцией print_r ($Headers);, а последующее echo '$headers [0]='.$headers [0]; - не определенно. То же и на удалённом сервере.
    PHP:
    1. <?php
    2.     error_reporting(E_ALL);
    3.     ini_set('display_errors',1);// включить показ ошибок
    4.  
    5.      $sUrl='http://podvor.com/upload/medialibrary/39b/39bf6e0b141740f882d4bd77a1f2ca55.jpg';
    6.     echo '$sUrl='.$sUrl.'<br>';
    7.     $Headers = get_headers($sUrl);//Parse error: syntax error, unexpected T_STRING in Z:\home\localhost\www\exec\sCheckImg.php on line 159? при $url_s2@
    8.     echo  '<br> ОР строка '.__line__.' из '.__file__;
    9.     print_r ($Headers);
    10.     echo '<br>Строка '.__line__.' $headers [0]='.$headers [0];//Notice: Undefined variable: headers in Z:\home\localhost\www\exec\proba_2.php on line 38
    11.     if (empty($headers [0])) echo " Пустая \$Headers[0]<br>";
    12.     else echo " \$Headers [0] не пустая<br>";//Сюда кроме отсутствия домена входит попытка использования протокола https, когда нет сертификатов, не сконфигурирован при установке PHP
    13. ?>
     
  6. Pingvin1

    Pingvin1 Новичок

    С нами с:
    3 сен 2018
    Сообщения:
    20
    Симпатии:
    1
    Нашёл=заработала. В некоторых местах я писал $Headers, а в других $headers, а это разные переменные.