b-real Skrevet 29. februar 2004 Del Skrevet 29. februar 2004 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. Har prøv dette scriptet, men linker jeg til noen som helst side så ender jeg bare opp med hovedsiden uansett hva jeg gjør. Lenke til kommentar
???????? Skrevet 29. februar 2004 Del Skrevet 29. februar 2004 Et problem kan være denne: if (isset($side)) dersom register globals er off (som den default er) så må du f.eks. bruke isset($_REQUEST['side']) Det kan ofte være lurt å bruke empty, siden den isset dersom den ikke har noen verdi, som f.eks. hvis den ligger i adresse linjen index.php?side= Bruk: if (!empty($side)) Lenke til kommentar
pgdx Skrevet 1. mars 2004 Del Skrevet 1. mars 2004 Hvis det der var en slags lær include i php-sak, så vil jeg komme med et veldig enkelt bidrag, B|Real. <?php $q = $_GET['q']; if (!$q) { $q = home; } $include = "./innhold/$q.php"; if (!file_exists($include)) { $q = 404; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="ehk.css" type="text/css"> <title>Be real ® - <?php echo($q); ?></title> </head> <body> <p>Meny: <a href="?q=home">Home</a> » <a href="?q=about">About</a> » <a href="?q=contact">Contact</a></p> <p><?php include("innhold/$q.php"); ?></p> </body> </html> Den lagrer du som index.php. Deretter lager du en mappe som du kaller "innhold". I den lagrer du følgende filer: home.php - blir den siden som blir inkludert hvis ikke annet er valgt. about.php - Skriv noe drit, og den blr inkludert med about-linken contact.php - you get the picture 404.php - Den skriver du "Kan ikke finne siden", elns, og blir inkludert hver gang noen skriver feil link etter index.php?q= Lenke til kommentar
EZAccess Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Toolshed: Scriptet ditt funker bra! Takk for hjelpen! Men, jeg har lastet ned dette php fotoalbumet. LINK Hvilke forandringer må jeg gjøre i gallery/index.php for at det skal funke optimalt. Jeg får denne feilmeldingen. Warning: fopen("links.txt", "r") - No such file or directory in .../public_html/gallery/index.php on line 19 Warning: Supplied argument is not a valid File-Handle resource in .../public_html/gallery/index.php on line 19 Warning: Supplied argument is not a valid File-Handle resource in .../public_html/gallery/index.php on line 20 Tar med koden osgå, men tror ikke feilen ligger her. Fordi, jeg får opp home.php og 404.php. I index.php <?php $q = $_GET['q']; if (!$q) { $q = index; } $include = "./gallery/$q.php"; if (!file_exists($include)) { $q = 404; } ?> <body> <p>Meny: <a href="?q=index">Home</a> » <a href="?q=index">Bilder</a> » <a href="q=contact">Contact</a></p> <p><?php include("gallery/$q.php"); ?></p> </body> I gallery/index.php 19 20 $gal = $HTTP_GET_VARS["gal"]; 21 $pic = $HTTP_GET_VARS["pic"]; Håper ikke dette ble altfor rotete. MVH EZAccess Lenke til kommentar
magikern Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Toolshed: Scriptet ditt funker bra! Takk for hjelpen! Men, jeg har lastet ned dette php fotoalbumet. LINK Hvilke forandringer må jeg gjøre i gallery/index.php for at det skal funke optimalt. Jeg får denne feilmeldingen. Warning: fopen("links.txt", "r") - No such file or directory in .../public_html/gallery/index.php on line 19 Warning: Supplied argument is not a valid File-Handle resource in .../public_html/gallery/index.php on line 19 Warning: Supplied argument is not a valid File-Handle resource in .../public_html/gallery/index.php on line 20 Tar med koden osgå, men tror ikke feilen ligger her. Fordi, jeg får opp home.php og 404.php. I index.php <?php $q = $_GET['q']; if (!$q) { $q = index; } $include = "./gallery/$q.php"; if (!file_exists($include)) { $q = 404; } ?> <body> <p>Meny: <a href="?q=index">Home</a> » <a href="?q=index">Bilder</a> » <a href="q=contact">Contact</a></p> <p><?php include("gallery/$q.php"); ?></p> </body> I gallery/index.php 19 20 $gal = $HTTP_GET_VARS["gal"]; 21 $pic = $HTTP_GET_VARS["pic"]; Håper ikke dette ble altfor rotete. MVH EZAccess hva er "chmod" på links.txt? og sånn forøvrig: eksisterer fila i det hele tatt? Lenke til kommentar
pgdx Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Fint at du fikk til scriptet, EZAccess, men som magikern sier... eksisterer /gallery/links.txt ? Og har du rettigheter til den? Lenke til kommentar
EZAccess Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 (endret) slettet. Endret 5. mars 2004 av EZAccess Lenke til kommentar
magikern Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 har du prøvd med "fullpath" til .txt fila? Lenke til kommentar
???????? Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 (endret) Forsøk å sette CHMOD på filen til 777 også. Ellers så er det mye letter å lese inn innhold med file() eller file_get_contents() Endret 4. mars 2004 av ???????? Lenke til kommentar
EZAccess Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Hei. links.txt er CHMOD'et til 777. Jeg er på jobb nå, men skal prøve med fullpath når jeg kommer hjem. Takker for interessen og hjelpen! Lenke til kommentar
???????? Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Er det en lokal server eller et webhotell? Hvis det er et webhotell kan det hende at du må lagre filen i base dir mappen for å kunne gjøre endringer på den. Lenke til kommentar
magikern Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Er det en lokal server eller et webhotell?Hvis det er et webhotell kan det hende at du må lagre filen i base dir mappen for å kunne gjøre endringer på den. han bruker home.no.net og fullpath till .txt fila er: /mnt/home2/c/ca/candyman/public_html/gallery/ men tror jeg fant feilen nå og det har med at du må bruke fullpath: når du går rett i gallery mappa finner gallery/index.php txt fila fordi vi da er i samme mappe, men når du går gjennom index fila fra mappa over gallery så er vi i en annen mappe og txt fila's plassering blir da relativ til øverste index fil (alle andre include/linker o.l. i gallery/index.php blir også dette), så lær deg å bruke fullpath overalt hvor du includerer noe... Lenke til kommentar
EZAccess Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Sidene mine ligger hos start.no Lenke til kommentar
???????? Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 (endret) basedir har ikke noe med fullpath eller noe å gjøre - det er en sikkerhetsfunksjon som begrenser hvile filer php kan røre, avhengig av hvor de er plassert. Hvis basedir er satt må filene være innenfor den mappen. "så lær deg å bruke fullpath overalt hvor du includerer noe..." - ikke ille ment i det hele tatt, men ikke gjør det! Da blir scriptet helt avhengig av hvor du bygger det og det vil ta lang tid å endre scriptet hvis du flytter det. Eventuelt kan du opprette en $dir = "/path/to/scripts/" i en config fil, men så lenge include ikke er avhengig av full path så er det ikke nødvendig - sier ikke at du ikke burde sjekke det for bugs kan finnes - men er det et problem burde du varsle webhotellet ditt slik at de oppdaterer php. Endret 4. mars 2004 av ???????? Lenke til kommentar
Cucum(r) Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Hmm.. mye respons fra B|Real.. Lenke til kommentar
EZAccess Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Eg kaste inn årene på dette her foreløpig. Har prøvd å forandre på all verdens path'er. Må nok lese litt mer om php før det blir noe futt i sakene. Takk for hjelpen folkens! Lenke til kommentar
Tafsen Skrevet 9. mars 2004 Del Skrevet 9. mars 2004 Støtter start php da? Eg hadde start før, men eg fekk ikkje php til der.... Lenke til kommentar
magikern Skrevet 9. mars 2004 Del Skrevet 9. mars 2004 Støtter start php da?Eg hadde start før, men eg fekk ikkje php til der.... de har gjort det i noen år nå... Lenke til kommentar
b-real Skrevet 9. mars 2004 Forfatter Del Skrevet 9. mars 2004 Hei folks. Har funnet en dynamic include som funker. http://www.dotgeek.org/tutorial.php?action=view&id=10 Enjoy =) 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å