Orjanp Skrevet 1. februar 2007 Skrevet 1. februar 2007 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...
Ernie Skrevet 1. februar 2007 Skrevet 1. februar 2007 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?
Orjanp Skrevet 1. februar 2007 Forfatter Skrevet 1. februar 2007 (endret) 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)."\" title=\"".trim($sname)."\">".trim($sname)."</a></h1>\n"; // Ignore empty line. fgets($fd); while(!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)."\"><img src=\"".trim($picture)."\" alt=\"".trim($text)."\" /></a>\n"; echo "<p><a href=\"".trim($link)."\">".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 1. februar 2007 av Orjanp
Gjest Slettet+142 Skrevet 1. februar 2007 Skrevet 1. februar 2007 (endret) $_GET["id"] = 1; include("mypage.php"); har jeg misfostått 100%? Endret 1. februar 2007 av Slettet+142
ZoRaC Skrevet 1. februar 2007 Skrevet 1. februar 2007 Hvis det her er $fn du skal bruke så må du sikre den! Eller kan alle få tilgang til alle filer på serveren din... Og trenger du hente den fra $_GET i det hele tatt? $id = 1; include "mypage.php";
Orjanp Skrevet 2. februar 2007 Forfatter Skrevet 2. februar 2007 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...
ZoRaC Skrevet 2. februar 2007 Skrevet 2. februar 2007 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.
Orjanp Skrevet 2. februar 2007 Forfatter Skrevet 2. februar 2007 Da går jeg for id løsningen, siden det er flere ting som taler for den. Takk for hjelpen. Ørjan...
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå