quando ero giovane e scrivevo codice php avevo trovato il seguente escamotage:
in pratica se il nome del file in oggetto corrisponde al file definito nello scrip filename significa che si era digitato direttamente il nome del file nell'URL e quindi cuccati header location altrove... str_replace serve per fare funzionare la cosa sia su win che su linuxcodice:<?php $str = str_replace('\\', '/', __FILE__); if($str == $_SERVER['SCRIPT_FILENAME']) { header("location: ../index.html"); exit('<br />Vietato accedere direttamente al file<br />') ; }
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
ma volendo non potrei usare htaccess? ad esempio settando htpasswd e se c'è tramite php la possibilita di far fare il login automatico! non so forse ho detto una cavolata!
Il path assoluto lo devi dare a file_get_contents() non a json_decode()
"Non funziona" e' la cosa piu' inutile da scrivere su un forum tecnico. Posta il messaggio di errore che ricevi, se non ne hai abilita la visualizzazione degli errori.
Se non funziona e' perche' sbagli il percorso o il file e' in una directory non accessibile da PHP.
Allora io utilizzo questa funzione:
quindi sostituendo il percorso url_mio_sitoCodice PHP:function GetJsonFeed($json_url){ $feed = file_get_contents($json_url); return json_decode($feed, true);}
con path assolutoCodice PHP:$api_json = GetJsonFeed("url_mio_sito");
non funziona invece con url funziona. e il path è quello giusto poiché l'ho estratto con getcwd()Codice PHP:$api_json = GetJsonFeed("path_assoluto");
La directory non centra nulla perché con url mi restituisce i dati quindi i permessi sono ok!