PHP til menu og ny side

Tags:    php

<< < 12 > >>
Jeg har forgæves prøvet at hjælpe mig selv, jeg er elendig til php.

En af mine venner har prøvet at hjælpe, men han har ikke så meget tid.

Det hele drejer sig om min hjemmeside http://qill.net/ , hvor jeg bruger php til at skifte side / vise indholdet på hver side, da jeg finder det lettest. Jeg har dog det problem at min vens "avancerede" (imo) kode er besværlig at finde rundt i, og han har muligvis også lavet fejl et sted, da den ikke fungerer ordentligt.

Hvis man går ind på qill.net og trykker på artwork, kan det ses tydeligt at den rent faktisk åbner artwork.php, men den tilføjer også "main.php" i bunden af den, som er default til forsiden. De andre punkter dur tilsyneladende ikke, den viser kun main.php der.

PHP:

Fold kodeboks ind/udKode 


----------------------------
Navigation:

Fold kodeboks ind/udKode 





12 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
<?php
$page = htmlspecialchars(trim($_GET['page'])); // just the filename, for example: "main.php" or "about.php" and so on plus some safety functions
$dir = "php"; // directory of files including
$def = "main.php"; // your default page
$ext = ".php"; // file extension.

$arr = array ("artwork.php", "photography.php", "webdesign.php", "resources.php", "about.php", "contact.php"); // array of files that are available
if(!empty($_GET['page'])&&file_exists($dir."/".$page . $ext))
include_once($dir . "/" . $rez);
else include_once($dir . "/" . $def);

?>



Fejl 1: htmlspecialchars skal ikke bruges, da stien ikke skal udskrives med indkluderes.

Fejl 2: endelsen .php bliver lagt til hver gang i foreach-løkken

Optimering: in_array kan bruges i stedet for foreach til at skabe sikkerhed.

Andet: Brug require i stedet for include_once, da den inkluderende fil ikke er en class eller function, og da php ikke skal fortsætte ved fejl.

Fold kodeboks ind/udKode 





Så skriver den:

Warning: main(php/): failed to open stream: Success in /mounted-storage/home16a/sub002/sc18474-ITWI/www/index.php on line 38

Warning: main(): Failed opening 'php/' for inclusion (include_path='.:/usr/local/lib/php') in /mounted-storage/home16a/sub002/sc18474-ITWI/www/index.php on line 38

Linje 38:

Fold kodeboks ind/udKode 




Fold kodeboks ind/udKode 




Tak skal I have, nu dur det i hvert fald :)

Men nu mangler jeg bare en sidste ting, det glemte jeg at skrive i starten.

Det skal være sådan at når jeg fx går ind på About, så skal "About" i menuen være highlighted, så man kan se det er den der er aktiv - Det kan jeg sagtens gøre når det er alm. html osv., men det er endnu ikke lykkes for mig med php.



Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 01.07.2006 17:54 af Bruger #5620
Parse error: syntax error, unexpected '=' in /mounted-storage/home16a/sub002/sc18474-ITWI/www/index.php on line 34

ckey=(in_array($page,$arr))?$page:'home';




Fold kodeboks ind/udKode 




Jeg forstår virkelig ikke det her php :)

Fold kodeboks ind/udKode 


Er hvad jeg har nu, men nu viser den min menu i toppen af det hele, og den viser stadig ikke hvilken side jeg er inde på.



du skal indlysende nok sætte den kode in hbor du har din menu nu mellem <ul> </ul>. Hvis du ikke forstår det må du nok vise koden for din den fil din menu er i, er lidt svært at kode i blinde.



<< < 12 > >>
t