danweb.cjb.net Skrevet 28. juli 2004 Del 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 Lenke til kommentar
Loomy Skrevet 28. juli 2004 Del 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 Lenke til kommentar
danweb.cjb.net Skrevet 28. juli 2004 Forfatter Del Skrevet 28. juli 2004 ok takker skal prøve det!! men noen som veit hva feilen er med include-scriptet? Lenke til kommentar
dabear Skrevet 28. juli 2004 Del Skrevet 28. juli 2004 vis os hele scriptet da, for å hjelpe deg må vi ihvertfall få vite linje 41 Lenke til kommentar
danweb.cjb.net Skrevet 28. juli 2004 Forfatter Del 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 Lenke til kommentar
dabear Skrevet 28. juli 2004 Del Skrevet 28. juli 2004 eneste jeg kan komme på er å bytte ut til <?php include($_GET['include'] . '.php'); ?> Lenke til kommentar
danweb.cjb.net Skrevet 28. juli 2004 Forfatter Del 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!! Lenke til kommentar
???????? Skrevet 28. juli 2004 Del 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 ???????? Lenke til kommentar
danweb.cjb.net Skrevet 28. juli 2004 Forfatter Del 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 Lenke til kommentar
???????? Skrevet 28. juli 2004 Del 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 ???????? Lenke til kommentar
???????? Skrevet 29. juli 2004 Del 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. Lenke til kommentar
danweb.cjb.net Skrevet 29. juli 2004 Forfatter Del 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 Lenke til kommentar
danweb.cjb.net Skrevet 3. august 2004 Forfatter Del 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 Lenke til kommentar
???????? Skrevet 3. august 2004 Del 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 Lenke til kommentar
danweb.cjb.net Skrevet 3. august 2004 Forfatter Del 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? Lenke til kommentar
Lemkin Skrevet 3. august 2004 Del 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" } ?> Lenke til kommentar
danweb.cjb.net Skrevet 3. august 2004 Forfatter Del Skrevet 3. august 2004 takker nå funker det helt fint. Lenke til kommentar
???????? Skrevet 3. august 2004 Del 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. 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å