danweb.cjb.net Skrevet 28. juli 2004 Skrevet 28. juli 2004 (endret) endelig fikk jeg til litt php i hjemmesida mi.. bruker programmet foxServ. leste rundt her i forumet og prøvde en metode som gikk ut på å skifte inneholdet, men fikk ikke det til å fungere som best! <?php $show=$_POST['include']; switch($show){ case "hovedsiden": include("hovedsiden.php"); break; case "meg": include("meg.php"); break; case "venner": include("venner.php"); break; case "pc": include("pc.php"); break; case "galleri": include("galleri.php"); break; default: include("hovedside.php"); } ?> hele tiden datt alle linkene til bake til "hovedside.php". derfor tenkte jeg at jeg skulle prøve include scriptet nå som jeg endelig hadde fått serveren til å fungere... Men nei da, nå får jeg error Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\FoxServ\www\index.php on line 41 dette er noe jeg ikke har peilng på altså. linkene ser sånn ut; <a href="index.php?include=hovedsiden">Hovedsiden</a> - <a href="index.php?id=meg" >Meg</a> - <a href="index.php?include=venner" >Venner</a> - <a href="index.php?include=pc">Min pc</a> - <a href="index.php?include=galleri">Mitt Galleri</a> og include scriptet i "inneholds-bosken" på sida; <?php include("$_GET['include'].php"); ?> er det noen som veit hva som er feilen? takk for eventuelle svar Endret 3. august 2004 av danweb.cjb.net
Loomy Skrevet 28. juli 2004 Skrevet 28. juli 2004 Hvis du bytter ut $show=$_POST['include']; med $show=$_GET['include']; funker det nok POST = henter fra skjema GET = henter fra URL
danweb.cjb.net Skrevet 28. juli 2004 Forfatter Skrevet 28. juli 2004 ok takker skal prøve det!! men noen som veit hva feilen er med include-scriptet?
dabear Skrevet 28. juli 2004 Skrevet 28. juli 2004 vis os hele scriptet da, for å hjelpe deg må vi ihvertfall få vite linje 41
danweb.cjb.net Skrevet 28. juli 2004 Forfatter Skrevet 28. juli 2004 (endret) her er hele index.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>////www.DanWeb.cjb.net\\\\</title> <link rel="stylesheet" type="text/css" href="style.css"> </head><body> <div id="alt"> <div class="banner"><img src="banner.jpg" /></div> <div class="meny"> <a href="index.php?include=hjem">Hjem</a> - <a href="index.php?include=meg" >Meg</a> - <a href="index.php?include=venner" >Venner</a> - <a href="index.php?include=pc">Min pc</a> - <a href="index.php?include=galleri">Mitt Galleri</a> </div> <div id="left_frame"> <center> <div class="text1"> <br>./Nyttige lenker<br> </div> <br> <div class="text"> <a href="http://www.hardware.no" target="_Blank">Hardware.no</a><br> <a href="http://forum.hardware.no" target="_Blank">forum.hardware.no</a><br><br<br> <a href="http://www.google.com" target="_Blank">Google.com</a><br> <a href="http://www.themexp.org" target="_Blank">Themexp.org</a><br> <a href="http://www.wincustomize.com" target="_Blank">WinCustomize.com</a><br></div> <div class="text1"> <br>./Lenker til venner osv.<br></div> <div class="text"><br> <a href="http://www.dalnett.org/dian" target="_Blank">Stian sin hjemmeside</a><br> <a href="http://www.home.no/husubaek" target="_Blank">Kenneth sin hjemmeside</a><br></div></center> </DIV> <div class="innehold"> <?php include("$_GET['include'].php"); ?> </div> <div class="fotter"><img src="Image4.jpg" /></div></div> </body> </html> ellers funker nå; $show=$_GET['include']; metoden!! Endret 28. juli 2004 av danweb.cjb.net
dabear Skrevet 28. juli 2004 Skrevet 28. juli 2004 eneste jeg kan komme på er å bytte ut til <?php include($_GET['include'] . '.php'); ?>
danweb.cjb.net Skrevet 28. juli 2004 Forfatter Skrevet 28. juli 2004 eneste jeg kan komme på er å bytte ut til <?php include($_GET['include'] . '.php'); ?> takker det funker som en drøm!!
???????? Skrevet 28. juli 2004 Skrevet 28. juli 2004 (endret) eneste jeg kan komme på er å bytte ut til <?php include($_GET['include'] . '.php'); ?> Det er ikke en god løsning! Tenk deg følgende, include=index (eller navnet på siden der scriptet er). Da vil serveren gå i en evig loop! Koden er korrekt, men du bude plassere filene som skal includes i en egen mappe og passe på at det ikke er med noen tegn som kan rygge en mapp tilbake! Endret 28. juli 2004 av ????????
danweb.cjb.net Skrevet 28. juli 2004 Forfatter Skrevet 28. juli 2004 (endret) er dette en bedre løsning? <?php $show=$_GET['include']; switch($show){ case "hovedsiden": include("hovedsiden.php"); break; case "meg": include("meg.php"); break; case "venner": include("venner.php"); break; case "pc": include("pc.php"); break; case "galleri": include("galleri.php"); break; default: include("hovedside.php"); } ?> virker som den fungerer helt likt som include! er litt no0b men, men en gang må man begynne å lære noe oxo EDIT; kopierte fra feil fil! fikset på det nå Endret 28. juli 2004 av danweb.cjb.net
???????? Skrevet 28. juli 2004 Skrevet 28. juli 2004 (endret) Du kan ikke bruke $_POST dersom du ikke sender variablene md HTTP post. Bruker du f.eks. en link: <a href="index.php?side=side1"> så mu du bruke $_GET. Edit: $_POST brukes f.eks. dersom du sender variabler med et skjema hvor medtod="post" Endret 28. juli 2004 av ????????
???????? Skrevet 29. juli 2004 Skrevet 29. juli 2004 EDIT; kopierte fra feil fil! fikset på det nå Bedre om du poster et svar i steden for å editere, da synes det når du har lagt til noe i tråden. En enklere løsning ville være å plassere alle filene som det skal være mulig å include i en egen mappe, f.eks. mappenavn: sider. Så sjekker du at $_GET['include'] kun inneholder bokstaver, f.eks. eregi("^[a-z]$", $_GET['include']). Dersom den ikke gjør det så includer du hovedsiden. Så sjekker du om filen eksisterer, file_exists("./sider/".$_GET['include'].".php"). Dersom den ikke eksisterer så includer du hovedsiden, men dersom den eksisterer så includer du siden. På den måten slipper du å utvide switch for hver side du legger til, og du slipper å passe på å endre den dersom du renamer noen av filene, eller fjerne fra switch dersom du sletter en side.
danweb.cjb.net Skrevet 29. juli 2004 Forfatter Skrevet 29. juli 2004 ja det virker lettere, skal prøve og se om jeg får det til! jeg veit jo egentlig at det ikke er noe avansert i det heletatt dah. så skal nokk klare å fikse det
danweb.cjb.net Skrevet 3. august 2004 Forfatter Skrevet 3. august 2004 nå har jeg sittet og mekka litt php. får til at siden i meny'en includeres når jeg trykker på linkene, men når jeg starter siden min vil jeg at hjem.php skal vises men det gjør den ikke. noen som har ett lite tips til meg php koden jeg bruker nå er <?php $filnavn = $_GET['s']; $fil = '.php'; if (eregi("^[a-z0-9]+$", $filnavn)) { @include $filnavn . $fil; } else { @include "404.php"; } ?> takker for svar
???????? Skrevet 3. august 2004 Skrevet 3. august 2004 Det er to ting du burde gjøre: 1. legg til dette under $filnavn = $_GET['s']; if(empty($filnavn)) $filnavn = "hjem"; 2. sjekk om filen eksisterer før du includer den
danweb.cjb.net Skrevet 3. august 2004 Forfatter Skrevet 3. august 2004 Det er to ting du burde gjøre:1. legg til dette under $filnavn = $_GET['s']; if(empty($filnavn)) $filnavn = "hjem"; 2. sjekk om filen eksisterer før du includer den 1. blir koden slik? <?php $filnavn = $_GET['side']; if(empty($filnavn)) $filnavn = "hjem"; $fil = '.php'; if (eregi("^[a-z0-9]+$", $filnavn)) { @include $filnavn . $fil; } else { @include "404.php"; } ?> 2. det skjønt jeg ikke kan man bruke; file_exists? hvis ja hvordan?
Lemkin Skrevet 3. august 2004 Skrevet 3. august 2004 nei, utifra det jeg leser så kommer scriptet til å vise home.php om det er satte index.php?side=home, ellers kommer 404.php. Bruk heller noe ala dette: <?php $filnavn = $_GET['s']; $fil = '.php'; if (isset($filnavn)) { if (eregi("^[a-z0-9]+$", $filnavn)) { include $filnavn . $fil; } else { include "404.php"; } } else { include "home.php" } ?>
danweb.cjb.net Skrevet 3. august 2004 Forfatter Skrevet 3. august 2004 takker nå funker det helt fint.
???????? Skrevet 3. august 2004 Skrevet 3. august 2004 Oops, overså den delen av koden. Bruk heller empty() og ikke isset() - det gjør at hovedsiden vises dersom index.php?s= og ikke en feilside. En variabel er satt dersom den er med, uavhengig om den får en verdi. Du bruker file_exists for å sjekke om filen finnes. Hvis du ikke gjør det vil den include siden selv om den ikke finnes.
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å