Gå til innhold

include("mypage.php?id=1"); gir feilmelding.


Anbefalte innlegg

Følgende gir error:

PHP

include("mypage.php?id=1");

 

Warning: include(mypage.php?id=1) [function.include]: failed to open stream: No such file or directory in /home/orjanp/public_html/mypage.php on line 26

Warning: include() [function.include]: Failed opening 'mypage.php?id=1' for inclusion (include_path='.:/usr/share/pear') in /home/orjanp/public_html/mypage.php on line 26

 

Det som imidlertid fungerer er å benytte full path til scriptet.

PHP

include("http://localhost/~orjanp/mypage.php?id=1");

 

Det kompliserer ting litt når jeg tester scriptene på egen webserver før de legges ut. Er det bare å godta at det er slik? Eller er det noe man kan gjøre?

 

Ørjan...

Lenke til kommentar
Videoannonse
Annonse

Det er ikke akkurat sjokkerende at det ikke funker da. Det du gjør er jo trossalt å kalle en fil med fullstendig ulovlige verdier. Skal du teste slik uten å oppgi URL må du nok sette $_GET på forhånd, men det er jo forutsatt at det faktisk fungerer da. Spørsmålet er vel heller hvorfor du må gjøre det akkurat slik?

Lenke til kommentar

Hvorfor, tja vet ikke igrunn. Startet å se på php i går i forbindelse med en nettside jeg lager. Prøver å sende en variabel til mypage.php scriptet.

 

Det jeg ønsket var å bruke samme scrip på flere sider. Den eneste forskjellen på hver side er en variabel. I eksemplet mitt over har jeg valgt å kalle den id. Men det var bare et eksempel.

 

Her er scriptet som skal ta imot variabelen. Har ikke implementert delen som faktisk tar imot variabelen siden ting stopper før jeg kommer så langt. Det er da filnavnet som vil være forskjellig fra side til side.

 

PHP

<?php

$fn "filename";

$fd fopen($fn'r') or die("Can not open file");

 

$sname fgets($fd);

$slink fgets($fd);

echo "<h1><a href=\"".trim($slink)."&#092;" title=\"".trim($sname)."\">".trim($sname)."</a></h1>\n";

 

// Ignore empty line.

fgets($fd);

 

while(&#33;feof($fd)) { // <-- ! er utropstegn.

$text fgets($fd);

$link fgets($fd);

$picture fgets($fd);

$price fgets($fd);

$pglink fgets($fd);

 

fgets($fd);

 

echo "<a href=\"".trim($link)."&#092;"><img src=\"".trim($picture)."\" alt=\"".trim($text)."\" /></a>\n";

echo "<p><a href=\"".trim($link)."&#092;">".trim($text)."</a> # ".trim($price)." kroner. # <a href=\"".trim($pglink)."\">Link</a></p>\n";

}

fclose($fd);

?>

 

Har forøvrig løst dette med å legge php koden rett inn på aktuell side, med korrekt filnavn. Men det er tungvindt straks jeg endrer syntaks i filene, siden jeg er nødt til å endre koden på alle sidene. Derfor ønsker jeg å ha et eget script til å gjøre dette.

 

Noen tips?

 

Ørjan...

Endret av Orjanp
Lenke til kommentar

Du har rett. Man trenger ikke gå via _GET. Man kan sette variabelen direkte før include kallet.

 

Hva mener du med at den må sikkres?

Har vurdert flere muligheter, både at filnavnet settes før include kallet, og at jeg bruker id = 1, og benytter en if setning i php scriptet til å sette korrekt filnavn. Sistnevnte er forsåvidt enklest dersom jeg senere endrer navnat på filene.

 

Takk for hjelpen så langt. :)

 

Ørjan...

Lenke til kommentar

Hvis du bruker $_GET['filnavn'] er det skummelt, men hvis du har

$_GET['id'] og en if($id == 1) $fil = "noe.txt"; er trygt. :)

 

Om du bruker filnavn i $_GET['filnavn'] kan du sikre at man ikke prøver å navigere seg "oppover" med basename() og i tillegg sjekke gyldig filnavn, osv. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...