alex100 Skrevet 21. november 2003 Del Skrevet 21. november 2003 Hei. Er helt ny på PHP, og driver og mekker med en side, og når jeg først har fått inn PHP så tenkte jeg at jeg kunne utnytte de mulighetene jeg har. Så til spørsmålet: Hvordan fungerer egentlig disse "side.php?=noe" linkene? Jeg ser det på noen sider, f.eks. her. Har ikke skjønt hvordan de fungerer og hadde satt stor pris på om noen kunne forklare meg... Takk på forhånd. Lenke til kommentar
Even. Skrevet 21. november 2003 Del Skrevet 21. november 2003 (endret) de bruker noe som heter include script sånn som på siden min her dette limer du inn der siden skal "inkluderes" skjønner? det ser slik ut <?php if($_GET["side"] == "index") { include "hovedside/index.php"; } else if($_GET["side"] == "news") { include "news/index.php"; } else if($_GET["side"] == "kontakt") { include "kontakt/index.php"; } else { include "hovedside/index.php"; } ?> Endret 21. november 2003 av gatebiler.tk Lenke til kommentar
alex100 Skrevet 21. november 2003 Forfatter Del Skrevet 21. november 2003 Skjønte ikke det helt nei... Jeg har hørt om et script som gjør at du ikke trenger å skrive om siden din når du skifter design i PHP. Er dette det? Lenke til kommentar
Even. Skrevet 21. november 2003 Del Skrevet 21. november 2003 if($_GET["side"] == "index") { include "hovedside/index.php"; } dette betyr at når du skriver index.php?side=index så inkluderes hovedside/index.php der hvor scriptet ditt står slik at designet rundt blir som det er Lenke til kommentar
alex100 Skrevet 21. november 2003 Forfatter Del Skrevet 21. november 2003 if($_GET["side"] == "index"){ include "hovedside/index.php"; } dette betyr at når du skriver index.php?side=index så inkluderes hovedside/index.php der hvor scriptet ditt står slik at designet rundt blir som det er aaah! think I got it. Thanks. Lenke til kommentar
Ernie Skrevet 21. november 2003 Del Skrevet 21. november 2003 (endret) Får vel gjøre et forsøk (det er litt videreføring av innlegget til gatebiler.tk): Hvis du vil ha index.php?side=et_eller_annet <?php if($_GET["side"] == "index") { include "hovedside/index.php"; } else if($_GET["side"] == "news") { include "news/index.php"; } else if($_GET["side"] == "kontakt") { include "kontakt/index.php"; } else { include "hovedside/index.php"; } ?> Altså, hvis linken er index.php?side=news inkluderes news/index.php der hvor kodesnutten er lagt inn. Er linken index.php?side=kontakt er det kontakt/index.php som inkluderes. Her kan du i det hele tatt fritt endre på alt som står mellom " og " Bedre nå? Edit: det kom vist noen innlegg før meg gitt... Edit#2: rette på noen skrivefeil, begynner vist å bli litt sent nå Endret 21. november 2003 av ernie85 Lenke til kommentar
alex100 Skrevet 21. november 2003 Forfatter Del Skrevet 21. november 2003 Ernie: Takk for svar Lenke til kommentar
Bluebeans Skrevet 21. november 2003 Del Skrevet 21. november 2003 Kopiert rett fra www.raweb.net's versjon: Kopier dette scriptet inn der du skal ha menyen: <!--meny--> <?php $MenuPath = "./inc_filer/meny.inc"; include("$MenuPath"); ?> <!--/meny--> Du trenger bare å forandre denne linjen: $MenuPath = "./inc_filer/meny.inc"; Du må bare forandre teksten mellom gåsetegnene. Her skal du angi banen/stien til INC-filen som skal fungere som meny relativt til index.php. Menyen lagres som en separat inc-fil slik at den korresponderer med verdien for $MenuPath. Linkene i meny.inc må angis slik: <a href="index.php?side=hoved">Hovedsiden</a> <a href="index.php?side=neste">Neste Side</a> Teksten etter likhetstegnet må tilsvare filnavnet på en inc-fil i inc_mappe (eller hva du nå enn kaller den). index.php vil da kalles opp på nytt og sette inn denne filen der scriptet nedenfor ligger. ******************************************************************************** Kopier dette scriptet inn der du skal ha teksten som inkluderes: <!--innhold--> <?php $IncludeDir = "./inc_filer"; $DefaultPath = "./inc_filer/hoved.inc"; $FileExtension = ".inc"; if (isset($side)) { $side = stripslashes(strip_tags($side)); $Forbidden1 = ereg("\.\./", $side); $Forbidden2 = ereg("/", $side); $IncludePath = $IncludeDir . "/" . $side . $FileExtension; if ($Forbidden1 OR $Forbidden2) { echo "<h1>Advarsel</h1>\n"; echo "<p>Forespørsler på tvers av definerte \n"; echo "områder er ikke tillatt.</p>\n"; } else { if (@fopen("$IncludePath", "r")) { include ("$IncludePath"); } elseif (!(@fopen("$IncludePath", "r"))) { echo "<h1>Server Error 404</h1>\n"; echo "<p>Finner ikke den forespurte siden.</p>\n"; } } } else { include("$DefaultPath"); } ?> <!--/innhold--> De tre verdiene du trenger å forandre på, er disse: $IncludeDir = "./inc_filer"; $DefaultPath = "./inc_filer/hoved.inc"; $FileExtension = ".inc"; Du må bare forandre teksten mellom gåsetegnene. I $IncludeDir angir du mappen hvor INC-filene befinner seg relativt til index.php. I $DefaultPath angir du banen/stien til den INC-filen som skal fungere som hovedside. I $FileExtension angir du hvilken filendelse du vil ha på filene som skal inkluderes. Husk også at du eventuelt må forandre filnavnet på hovedsiden i $DefaultPath samt filnavnet på menyen i $MenuPath tilsvarende. NB! HVIS INCLUDE-FILENE DINE SKAL INNEHOLDE PHP-SCRIPTS SOM DU IKKE ØNSKER AT ANDRE SKAL FÅ INNSYN I, SÅ BØR DU BRUKE FILENDELSEN .php. GRUNNEN TIL DETTE ER AT .inc-FILER OG .txt-FILER BEHANDLES SOM VANLIGE TEKSTDOKUMENTER SOM KAN ÅPNES I EN NETTLESER. MED .php-ENDELSE VIL SCRIPTET I INCLUDE-FILEN KJØRES OG GI EN OUTPUT. $Forbidden1 og $Forbidden2 vil forhidre at de besøkende inkluderer filer fra andre områder eller foldere enn den du har angitt i $IncludeDir. Lenke til kommentar
DanielP Skrevet 21. november 2003 Del Skrevet 21. november 2003 (endret) Synes disse includene var litt "backvendte"... Prøv heller dette: <?php if(IsSet($_GET['section']) && file_exists($_GET['section']."_include.php")) { include($_GET['section']."_include.php"); } else { include("main_include.php"); } ?> Denne koden legger du der du vil siden skal vises. Og kaller hver side for: dinside_include.php bare skift på "dinside".... Linkene lager du sånn som dette: <a href="index.php?section=dinside">Link</a> Husk å ha en side som heter main_include.php da dette vil være "default" siden..... Spørr hvis det var noe du lurte på DanielP Endret 22. november 2003 av DanielP Lenke til kommentar
Smidt Skrevet 22. november 2003 Del Skrevet 22. november 2003 okei, henger nesten med nå, men: > må alle sidene ligge i en mappe som heter f.eks. "section" eller "sider" siden det er med i linken? > og jeg har foreløpig ikke klart å installere apache på maskinen min så jeg har ikke mulighet til å frohåndsvise php script. og i dreamwaver får jeg bare opp et php ikon når jeg setter in en php kode. hvordan kan jeg da sette inn den teksten jeg vil ha i de forskjellige tabellene?? Lenke til kommentar
DanielP Skrevet 22. november 2003 Del Skrevet 22. november 2003 >Nei, viss du ser på koden, så står det GET section.... vet helt ærlig ikke hvorfor, men det bare er sånn. Hehe en som er bedre på PHP får forklare Så de trenger ikke å være i egen mappe > Jeg greier heller ikke å forhåndsvise. men det du jør er å legge den kodesnutten der du vil at alt skal vise. Så skriver du d som skal vises i egne filer. altså dinside_include.php. Viss jeg ikke svarte på spørsmålet ditt, så får jeg beklage. DanielP Lenke til kommentar
Smidt Skrevet 22. november 2003 Del Skrevet 22. november 2003 >Nei, viss du ser på koden, så står det GET section.... vet helt ærlig ikke hvorfor, men det bare er sånn. Hehe en som er bedre på PHP får forklare Så de trenger ikke å være i egen mappe > Jeg greier heller ikke å forhåndsvise. men det du jør er å legge den kodesnutten der du vil at alt skal vise. Så skriver du d som skal vises i egne filer. altså dinside_include.php. Viss jeg ikke svarte på spørsmålet ditt, så får jeg beklage. DanielP joda, fikk delvis svar, men lurer på hvordan jeg kan velge hvilken tabeller teksten fra f.eks. nyheter skal inn i. Lenke til kommentar
alex100 Skrevet 22. november 2003 Forfatter Del Skrevet 22. november 2003 men lurer på hvordan jeg kan velge hvilken tabeller teksten fra f.eks. nyheter skal inn i. der du setter inn scriptet nevnt over. Lenke til kommentar
magikern Skrevet 22. november 2003 Del Skrevet 22. november 2003 skrev egentlig dette i en annen post, men ålreit: index.php?page=/aboutme/photos/photo1.html <-- sånn skriver du da linken til fil i "subdir" index.php?about <-- den skal fungere også, men bare på enkelt inkludering, altså du kan ikke bruke flere sånne i samme script... bruker en fil for selve scriptet og så inkluderer du det i f.eks index fila di: dynamic.php <?php error_reporting(E_ALL ^ E_NOTICE); $basepath = '/apache2/htdocs/dynamic2/'; function fixpath($file) { $file = preg_replace('/\.{2,}/', '', $file); return $file; } function dynamic($inc_dir='', $inc_ext='', $var_name='', $default_page, $error_msg='') { global $basepath; if (!empty($_POST[$var_name])) { $var = fixpath($_POST[$var_name]); } elseif (!empty($_GET[$var_name])) { $var = fixpath($_GET[$var_name]); //}elseif (!empty($_SERVER['QUERY_STRING'])) { // $var = fixpath($_SERVER['QUERY_STRING']); } else { $var = $default_page; } $file = $inc_dir.$var.$inc_ext; // echo "<h2>$file</h2>"; if (file_exists($file)) { if (!include_once($file)) { echo $error_msg; } } else { echo $error_msg; } } ?> nå kommer all koden i funksjoner så man kan inkludere flere ganger på denne måten kalles funksjon: dynamic([includes_dir], [includes_ext], [var_name], [default_page], [error_msg]); <?php include_once('dynamic.php'); ?> <html> <head> <title>Test Page</title> </head> <body> <div id="news"> <?php dynamic('news/', '.html', 'id', 'index', 'File does not exist!'); ?> </div> <div id="content"> <?php dynamic('files/', '.html', 'page', 'welcome', 'File does not exist!'); ?> </div> </body> </html> spør hvis du lurer på noe... Lenke til kommentar
Svendsen Skrevet 27. november 2003 Del Skrevet 27. november 2003 Et lite ekstra spm her $_GET["side"] Er dette funksjonen for å hente alt som står etter f.eks: index.php?side= ? Så hvis det står index.php?side=riktig så henter den ut riktig? Lenke til kommentar
magikern Skrevet 27. november 2003 Del Skrevet 27. november 2003 ja det stemmer... Lenke til kommentar
Smidt Skrevet 28. november 2003 Del Skrevet 28. november 2003 greit, men la oss si at jeg har en index.php side( som er malen som skal inkluderes). så vil jeg legge innhold inn i denne malen slik at jeg kan får opp den ferdige siden, men så kommer problemet mitt; jeg vil legge innholdet i en tabell som allerede er i index.php filen. hvordan gjør jeg dette? Lenke til kommentar
Torbjørn Skrevet 28. november 2003 Del Skrevet 28. november 2003 midt i tabellkoden, må du kjøre include. include er egentlig barnslig enkelt. den setter inn php-kode der du sier at den skal gjøre det. så er det bare å tenke seg om hvordan man skal angi hvilken fil man skal sette inn, og hvor i dokumentet man vil sette det inn. hvis man har et ferdig rammeverk som man vil fylle med innhold f.eks (som alle gjør), så er include en fin ting. Lenke til kommentar
Ohord Skrevet 28. november 2003 Del Skrevet 28. november 2003 Hvordan lager man sånn med 404 side ? Lenke til kommentar
Even. Skrevet 29. november 2003 Del Skrevet 29. november 2003 du finner en tutorial til 404 på datadyret.monror.com 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å