Du skal undgå at gøre ligesom Chokobear af sikkerheds grunde.
Du kan derimod gøre dette: index.php alle filder i èn fil <?php if($_GET[side] == '') { echo"Forside og html"; } if($_GET[side] == 'kontakt') { #Kontakt siden her kan du enten smide html/php koden eller include
Plejer at bruge denne: <?if (file_exists("Sider/$side.INC")) {include("Sider/$side.INC");} else { ?><?=$side;?> ikke fundet.<?}?>
Så kalder du dine side med index.phtml?side=forside så bliver Sider/forside.INC kaldt og kun sider der ligger i biblioteket Sider med endelsen INC kan kaldes.
francovid: Og hvad så hvis jeg skriver '?side=../index'? Så hopper den ud af 'Sider'.. Men den kan dogstadig kun hente .INC filer.
Mit forslag: $side=str_replace(array('\\','/','.'),'',$_GET['side']); $side_fil='./mine_sider/'.$side; if(!is_file($side_fil)) { header('Status: 404 Not Found'); echo 'Siden '.htmlentities($side).' findes ikke'; } elseif(!@include($side_fil)) { header('Status: 500 Internal Server Error'); echo 'Siden '.htmlentities($side).' indeholder programmeringsfejl'; } else { // Success: Her kunne man fx logge besøget }
francovid -> kan godt se hvad du mener. Jeg har ikke ret meget i .inc filer, men jeg foretrækker stadig at øge sikkerheden, frem for at nedsætte den. I det her tilfælde ville det jo ikke begrænse den normale bruger - kun crackere/hackere.
xyborx - Hvis du vil "øge sikkerheden" som du selv skriver, så er det vist ikke så godt at du kalder dine includefiler for .inc - kald dem .php i stedet for :) (medmindre du har sat din webserver op, så den parser .inc-filer som php.. så kan det vel være ligemeget)
Fordi at webserveren pr default ikke har adgang til .inc filer i bsd.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.