Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    17

    Errore su alcune funzioni dopo il passaggio da http a https

    Ho uno script dove è presente la seguente istruzione;
    $get = file_get_contents($indirizzo);

    Da qualche giorno ho fatto il passaggio del sito da http a https e quando eseguo lo script ricevo l'errore:
    Warning: file_get_contents(https://www.nomesito.it/pagcom_va.ph...1&provincia=TE) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /web/htdocs/www.nomesito.it/home/pag_comuni.php on line 44
    come posso superare il problema?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Basta leggere la documentzione della funzione file_get_contents() per scoprire che non supporta il protocollo https.
    Seguendo il link Supported protocols and wrappers trovi i protocolli e wrapper supportati.

    Se hai accesso al file php.ini puoi fare così

    abilita l'estensione php_openssl
    imposta ad on allow_url_fopen

    Se non hai accesso al file php.ini puoi provare con cURL.
    Ultima modifica di Alhazred; 09-07-2018 a 21:08

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    17
    Il sito si trova su un server Aruba e purtroppo non ho la possibilità di modificare il file php.ini

    Ho provato con cURL in uno script come questo:

    $url = "http://www.nomesito.it";
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $pag = curl_exec($ch);
    curl_close($ch);

    lo script funziona se il protocollo è http ma con https ho il seguente problema:
    "Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request."

    Nel file htaccess, al fine di recuperare traffico dai vecchi link con http, ho le seguenti istruzioni:


    RewriteBase /
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    e quindi qualsiasi chiamata viene dirottata su https

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Solitamente questo succede perchè curl non può verificare i certificati https dell'url.
    Puoi provare ad usare questa impostazione e vedere se risolvi il problema:

    codice:
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.