2012-06-11 16 views
6

Eventuali duplicati:
file_get_contents() errorfile_get_contents funziona su locale, ma non sul server di

Lavorare su uno script che si connette a Instagram API per ottenere le foto da un determinato tag. Funziona bene su Local ma sul server ottengo errori.

Warning: file_get_contents(): https: // involucro è disabilitato nella configurazione del server da allow_url_fopen = 0 in /storage/content/91/103391/instaboll.nu/public_html/instagram.php on line 19.

Ecco come appare la linea 19:
$ contents = file_get_contents ("https://api.instagram.com/v1/tags/ $ tag/media/recente? Client_id = $ client_id");

Qualche idea?

Hanno cercato questo e trovare alcuni post che consigliano arricciatura, ma non hanno idea di come procedere con quello.

+1

'https: // involucro è disabilitata in configurazione da allow_url_fopen = 0' si dice, quindi la tua domanda è come impostarlo a '1' – Esailija

+1

Beh, è ​​necessario impostare allow_url_fopen = 1 in php. ini. – alexn

+2

Quale bit di messaggio di errore non capisci? Non penso che potrebbe essere più chiaro di quale sia il problema. –

risposta

15

Ho risolto con questo codice.

<?php 
$url = "http://www.example.org/"; 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
$contents = curl_exec($ch); 
if (curl_errno($ch)) { 
    echo curl_error($ch); 
    echo "\n<br />"; 
    $contents = ''; 
} else { 
    curl_close($ch); 
} 

if (!is_string($contents) || !strlen($contents)) { 
echo "Failed to get contents."; 
$contents = ''; 
} 

echo $contents; 
?>  
+2

Mi sono imbattuto in questo, ho trovato la tua discussione, ma avevo bisogno di cookies e altre cose utili con l'arricciatura. Ho finito per pubblicare la mia soluzione sul thread seguente, se è utile a qualcun altro. http://stackoverflow.com/questions/12885538/php-curl-and-cookies – Doug

+0

Ha funzionato per me. Stavo usando 'file_get_contents' e c'era un errore' 403 Proibito' e 'file_get_contents' non mostrava nulla. Ma questo ha risolto il mio problema. Grazie mille. @blytung –

2

Dovrai abilitare allow_url_fopen da php.ini sul tuo host o parlare con i tuoi provider di hosting.

Questa opzione abilita i wrapper fopen compatibili con l'URL che consentono l'accesso agli oggetti URL come file .

+0

Le guide di sicurezza ci dicono di spegnerlo. Come possiamo disabilitarlo ad eccezione degli URL esterni? Ad esempio, non permetterlo per le risorse locali perché potrebbe consentire a un utente malintenzionato di leggere le informazioni sensibili. – jww

1

L'amministratore del server ha disabilitato questa funzionalità. Dovrai chiedere loro di abilitarlo.

4

La soluzione è nel messaggio di errore: impostato allow_url_fopen-1 nelle vostre ini (utilizzare un file php.ini, utilizzare ini_set nel codice php, o parlare con il vostro ospite).

+0

È sufficiente creare un file php.ini e aggiungerlo alla cartella dove sono presenti gli altri file? Come uso ini_set? – blytung

+0

Il file ini utilizzato dal server dipende dal server. Con apache, potresti essere in grado di usare 'suPHP_ConfigPath', ma forse no. 'ini_set': http://us.php.net/manual/en/function.ini-set.php –

+0

Le guide di sicurezza ci dicono di spegnerlo. Come possiamo disabilitarlo ad eccezione degli URL esterni? Ad esempio, non permetterlo per le risorse locali perché potrebbe consentire a un utente malintenzionato di leggere le informazioni sensibili. – jww

Problemi correlati