Avatar billede nemlig Professor
07. marts 2009 - 13:25 Der er 13 kommentarer og
1 løsning

1 php-fil kalder 5 andre, som ønskes afviklet

Hejsa.
Jeg har en enkelt PHP-fil, hvor jeg har 5 linjer af denne kode:

file_get_contents('http://domænenavn/backups/autobackup.php?kode=1234');

Men grundet sikkerhed på serveren, kan jeg ikke anvende disse http-kald.

ericjacobsen har foreslået at jeg i stedet anvender http://dk.php.net/curl. Men det er noget langhåret for mig.

Findes der alternativer?
Jeg har overvejet at anvende include(), men det kræver en del omskrivning.
Avatar billede erikjacobsen Ekspert
08. marts 2009 - 10:21 #1
Curl-metoderne er da sådan en smule generelle, med mange muligheder, og derfor er der også nogen, der har programmeret en lidt simplere og nemmere tilgang, fx http://www.phpclasses.org/browse/package/3547.html - jeg mener den er ok.
Avatar billede coderdk Praktikant
08. marts 2009 - 14:23 #2
cURL er ikke så langhåret - Prøv denne funktion:

function curl_get_contents( $url )
{
  $ch = curl_init( $url );
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
  curl_setopt( $ch, CURLOPT_HEADER, false );
  $result = curl_exec( $ch );
  curl_close( $ch );
  return $result;
}

Bare erstat dine file_get_contents med curl_get_contents
Avatar billede nemlig Professor
08. marts 2009 - 20:05 #3
Spændende - det skal jeg lige teste.... Jeg vender tilbage.
Jeg har dog fået det til at virke uden http:

file_get_contents('backups/autobackup.php?kode=1234');
Avatar billede erikjacobsen Ekspert
09. marts 2009 - 20:31 #4
Det du skriver burde ikke virke, nemlig.
Avatar billede nemlig Professor
09. marts 2009 - 22:29 #5
Det var hulens - er det mig eller dig, der kan se om det virker???? :-)
Nå ja - du har sgu ret - jeg får ingen fejl, men ved nærmere tjek, har mine script ikke kørt.

Tusind tak for din opmærksomhed.
Så må jeg hellere kigge på jeres input om curl.
Avatar billede nemlig Professor
10. marts 2009 - 08:28 #6
Så virker det.
Tak til erikjacobsen for tippet og ikke mindst at du "fangede" min fejl.
Og tak til Coderdk for færdig kode - det var knagme nemt at få til virke.
Sender Coderdk et svar. :)
Avatar billede coderdk Praktikant
10. marts 2009 - 09:46 #7
Det var så lidt :)
Avatar billede nemlig Professor
31. marts 2009 - 08:49 #8
aaarghhhh...
Jeg har jo scriptet og funktionen til at køre på et par servere, men på en 3. (som kører PHP 5.2.0-8) får jeg denne fejl:

Fatal error: Call to undefined function curl_init()

Kan der konkluderes noget ud fra denne fejl?
Avatar billede erikjacobsen Ekspert
31. marts 2009 - 08:52 #9
Curl er ikke installeret. Din egen maskine? Webhotel?
Avatar billede nemlig Professor
31. marts 2009 - 09:17 #10
Mange tak Erik.
Jeg troede, at Curl var en del af PHP version 4 og opefter.
Men jeg kan godt se på phpinfo(), at der ikke er Curl installeret.

Men jeg har forstået det sådan, at Curl er en mere sikker funktion end file_get_contents().
Avatar billede erikjacobsen Ekspert
31. marts 2009 - 09:24 #11
Man kan vælge om curl skal være installeret, men en "moderne" php-installation skal selvfølgelig have det.

Er der ikke curl, og hvis file_get_contents virker med url-er, kan du så bruge den. Når du helt selv bestemmer url-en, er der ingen sikkerhedsmæssige problemer.

Var det din egen server eller et webhotel?
Avatar billede nemlig Professor
31. marts 2009 - 09:34 #12
Det er webhotellet www.web2u.dk
Jeg spørger dem bare om de vil installere Curl - de plejer at være til at snakke med.
Tak for hjælpen :)
Avatar billede erikjacobsen Ekspert
31. marts 2009 - 09:38 #13
Det kan være det lykkes ...

Ellers kan du lave den funktion fra coderdk

  function curl_get_contents( $url )

om til at bruge curl, hvis det er installeret, og ellers file_get_contents.
Avatar billede nemlig Professor
31. marts 2009 - 09:42 #14
Ja - OK.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester