memix Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 Lurte på om det var noen som hadde giddet å lage et fullt lite eksempel med php, der jeg kan bruke include og id...noe lignende dette til meg og poste det her: <?php printf("<a href=\"%s?id=\">", $_SERVER['PHP_SELF']); ?>hjem</a> <?php printf("<a href=\"%s?id=2\">", $_SERVER['PHP_SELF']); ?>test<br> <?php $id=$_GET['id']; if($id) { switch ($id) { case $id==2: include("tull.php"); break; } } ELSE { include("startside.php"); } ?> har litt problemer med det,, Lenke til kommentar
Ueland Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 Er det ikke bedre og bare ha egne sider for startside.php, tull.php etc istedet for å bruke en fil til å hente slike ting i? evnt trenger du jo ikke å bruke mer en <?PHP include ("".$_SERVER['PHP_SELF'].""); ?> for å hente ut en fil da Lenke til kommentar
Torbjørn Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 eksemplet ditt burde fungere, uten at jeg husker switch syntaksen i hodet Lenke til kommentar
Torbjørn Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 Mr Ueland: Jeg ser for meg en potensielt *meget* stygg sak med den linjen du foreslår! Lenke til kommentar
Ueland Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 stemmer det, du bør og legge inn en funksjon som sjekker om at filen du vil legge ved faktisk er "godkjent" så du slipper diverse pornosider mm Lenke til kommentar
sven-o Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 Syntaksen er feil. Du skal ikke bruke $id==2, og du trenger ikke å ha if($id). Bruk heller default, slik: switch ($id) { case 2: include("tull.php"); break; default: include("startside.php"); } Lenke til kommentar
Torbjørn Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 stemmer det, du bør og legge inn en funksjon som sjekker om at filen du vil legge ved faktisk er "godkjent" så du slipper diverse pornosider mm ...for ikke å nevne at det å inkludere seg selv vil stå i evigheter og kjøre (php har riktignok en max recursive depth sjekk og en max time sjekk) Lenke til kommentar
Ueland Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 stemmer det, du bør og legge inn en funksjon som sjekker om at filen du vil legge ved faktisk er "godkjent" så du slipper diverse pornosider mm ...for ikke å nevne at det å inkludere seg selv vil stå i evigheter og kjøre (php har riktignok en max recursive depth sjekk og en max time sjekk) index.php inneholder en include og da vil den kun bli kjørt en gang, ikke flere sålenge det ikke inkluderes index.php Lenke til kommentar
Torbjørn Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 mulig jeg misforstår her, men hvis index.php inneholder kommandoen include $_SERVER['PHP_SELF']; så vil den inkludere seg selv og pånytt støte på include, (rekursjon) om og om igjen, inntil det gir en memory allocation feil eller. Riktignok kun på kommandolinja. På webserveren vil ikke PHP_SELF vise til en gyldig phpfil for inkludering. følgende eksempel vil demonstrere samme effekt: <?php $a++; echo "$a. kjøring<br>\n"; include($_SERVER['SCRIPT_FILENAME']); ?> På min hjemmeside så det slik ut: [klippe-klippe] 6969. kjøring 6970. kjøring 6971. kjøring 6972. kjøring 6973. kjøring 6974. kjøring Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8 bytes) in /usr/webdir/lindahl/****.php on line 4 Lenke til kommentar
Ueland Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 da sier vi heller include ("".$_GET['side'].""); , noe som nok bør være bedre Lenke til kommentar
memix Skrevet 12. januar 2004 Forfatter Del Skrevet 12. januar 2004 Notice: Undefined variable: id in c:\inetpub\wwwroot\testing\main.php on line 19 hvor skal jeg definere den? viss jeg i det hele tatt skal det.. Lenke til kommentar
Torbjørn Skrevet 12. januar 2004 Del Skrevet 12. januar 2004 ai, har en lei tendens til å spore av. $id vil settes til det du har i url'en, $id = $_GET['id']; hvis du ikke har noe i url, så blir den ikke satt. merk at dette er ingen feil, bare en advarsel. du kan pakke inn suppa i if(isset($_GET['id'])){ //suppa } Lenke til kommentar
Andeplane Skrevet 18. januar 2004 Del Skrevet 18. januar 2004 (endret) Vel etter å ha lest Torbjørns avsporinger husker jeg ikke helt hva du var ute etter Men synes å demre noe om at du ville ha et ?id=hvilkenside osv. Da kan du jo la linkene være: index.php?id=main index.php?id=downloads index.php?id=aboutus osv osv I tabellcellen hvor innholdet skal være har du: if($_GET["id"] == "main") { include("main.php"); } else if($_GET["id"] == "downloads") { include("downloads.php"); } else if($_GET["id"] == "aboutus") { include("aboutus.php"); } else { include("main.php"); } Det er sikkert et dårlig script med tanke på funksjoner, men det fungerer ihvertfall veldig bra! #Edit: latterlig norsk setning Endret 18. januar 2004 av Andeplane Lenke til kommentar
Torbjørn Skrevet 18. januar 2004 Del Skrevet 18. januar 2004 (endret) det er et meget bra skript edit: det er en god tommelfingerregel å ha minst mulig dynamikk i utvelgelse av inkluderte filer basert på URL-parametere Endret 18. januar 2004 av Torbjørn Lenke til kommentar
Andeplane Skrevet 18. januar 2004 Del Skrevet 18. januar 2004 Hehe kanskje det er det. Det er VELDIG enkelt og fungerer bra. Less advanced, less bugs. Eller noe sånt Lenke til kommentar
phanti Skrevet 19. januar 2004 Del Skrevet 19. januar 2004 syns det er greiest med switch, som er trygt, og samtidig veldig oversiktlig: switch($_GET['side']){ case 'downloads': include("downloads.php"); break; case 'blabla': include ("blabla.php"); break; default include("default.php"); break; } Lenke til kommentar
Cucum(r) Skrevet 24. januar 2004 Del Skrevet 24. januar 2004 (endret) Jeg bruker dette. <? if (!isset ($_GET['page'])) { $_GET['page'] = 'main.php'; } if (file_exists($_GET['page'].".php")) { include($_GET['page'].".php"); } else { echo "<img src=\"images/404.gif\">"; } ?> Veldig enkelt og greit Endret 24. januar 2004 av SirIce Lenke til kommentar
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å