Home Page > Intrebari Frecvente Hosting > Scripturi > functii oprite
allow_url_fopen a fost restrictionata pe toate serverele de hosting ale megahost.ro deoarece prezinta probleme de securitate, este destul de simplu pentru un utilizator neexperimentat sa deschida o gaura de securitate fara sa isi dea seama folosind incorect allow_url_fopen.
alternativa este folosirea cURL (PHP Client URL function) care este un mod mult mai eficient de a include resurse externe.
Folosirea cURL este similara cu folosirea functiei fopen() sau file_get_contents() in anumite privinte, daca sunteti obisnuiti sa folositi fopen() sau file_get_contents() va va fi usor sa incepeti sa folositi cURL.
Primul pas in folosirea cURL este initializarea sesiunii. Acest lucru se face definind o variabila si atribuindu-i o valoare prin functia
curl_initca in exemplul de mai jos:
$ch = curl_init("http://www.google.ro");
Dupa cum vedeti,
curl_initpreia parametrul URL-ului sau resursei externe pe care vreti sa o folositi. Acest lucru este optional insa daca nu specificati URL-ul acum, va trebui sa il specificati mai tarziu folosind functiacurl_setopt. Acest lucru se poate face astfel:
curl_setopt($ch, CURLOPT_URL, "http://www.google.ro");Sunt multe moduri in care cURL poate fi folosita dar una din cele mai comune metode este setarea doar a valorilor pentru
CURLOPT_URL,CURLOPT_HEADERsiCURLOPT_RETURNTRANSFER.
CURLOPT_URL, ca in exemplul de mai sus, seteaza URL-ul din care cURL va aduce informatii.CURLOPT_HEADERo setare care poate fitruesaufalsesi determina daca se vor include si headerele HTTP. Este recomandata setareafalse.CURLOPT_RETURNTRANSFEReste de asemenea o setare ce poate avea valoriletruesaufalsesi care spune functieicurl_execdaca sa interpreteze sau nu continutul operatiunii cURL ca fiind un string.Dupa ce s-au setat optiunile de mai sus, puteti folosi
curl_execcare executa operatiunea cURL. Iata un mic script care foloseste informatiile prezentate mai sus pentru a aduce continutul paginii principale a Google:
// Definirea unei variabile pentru cURL.
$ch = curl_init("http://www.google.ro");
// Setarea optiunilor
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Executa operatiunea
$output = curl_exec($ch);
// Inchidem sesiunea cURL.
curl_close($ch);A se vedea ca am folosit
curl_closela sfarsitul scriptului: daca sunteti obisnuiti sa folositifcloseatunci este bine sa folositi sicurl_close.Masura de securitate: nu permiteti niciodata ca valoarea
CURLOPT_URLsa poata fi definita de utilizatori! Daca sunteti nevoiti totusi sa permiteti utilizatorilor sa specifice URL-ul pe care cURL il aduce atunci folositihtmlentitiespentru a va asigura ca limbajul markup (codul HTML) nu poate fi executat !!