login  Naam:   Wachtwoord: 
Registreer je!
 Forum

pagina script mag geen index php laden

Offline gert - 18/07/2007 20:47
Avatar van gertNieuw lid hallo,
hoe kan ik voorkomen dat onderstaand pagina script, index.php of andere bestanden include?
  1. <?php
  2.  
  3. if (file_exists($_GET['pagina'] . '.php'))
  4. # Haalt de variabele uit de URL, plakt er .php aanvast en kijkt of dit bestand bestaat
  5. {
  6. include $_GET['pagina'] . '.php';
  7. }
  8.  
  9. elseif (empty($_GET['pagina'])) // Als de variabele pagina leeg is
  10. {
  11. include 'welkom.php';
  12. }
  13. else // Als hij niet bestaat, en ook niet leeg is
  14. {
  15. include 'error.php';
  16. }
  17.  
  18. ?>

8 antwoorden

Gesponsorde links
Offline Rens - 18/07/2007 20:48
Avatar van Rens Gouden medaille

Crew algemeen
http://www.site...mp;id=1192
Offline gert - 18/07/2007 21:32
Avatar van gert Nieuw lid bedankt,
ik ben nieuw met php
hoe kan ik het bestaande script aanpassen zodat index.php
zichzelf niet laad en bepaalde andere pagina's?

nu moet je elke keer de toegestane pagina's toevoegen aan paginas.php



Offline marten - 18/07/2007 21:36
Avatar van marten Beheerder
  1. <?php
  2. //Hier zet je dus alle pagina's die wel mogen!! Dus je eigen bovenstaande script weggooien. Reden: onveilig! en dit in de plaats
  3. $aPagina[] = "nieuws/archief";
  4. $aPagina[] = "nieuws/reactie";
  5. $aPagina[] = "forum/index";
  6.  
  7.  
  8. // vervolgens gaan we kijken of er een pagina geset is, en of die niet gelijk is aan begin
  9. if(isset($_GET['pagina']) && $_GET['pagina'] != "begin")
  10. {
  11. // dat is dus zo
  12. // kijken of het een toegestane pagina is
  13. if(In_Array($_GET['pagina'], $aPagina))
  14. {
  15. // dat is ook zo
  16. // de pagina mag dus gewoon bekeken worden
  17.  
  18. // die zetten we even in een variabele !! ZONDER !! .php er achter
  19. // dit vind ik persoonlijk makkelijker, vooral als je een template systeem gebruikt
  20. // nu hoef je er alleen maar .tpl of .php achter te zetten, en klaar
  21. $sPagina = $_GET['pagina'];
  22. } else
  23. {
  24. // de pagina mag niet bekeken worden of bestaat niet
  25. // we stellen nu de error pagina in
  26. $sPagina = "errors/404";
  27. }
  28. } else
  29. {
  30. // nu nog even de pagina instellen die weergeven word als er geen pagina in de url staat
  31. // of als hetgene wat in de url staat gelijk is aan begin
  32. $sPagina = "nieuws/index";
  33. }
  34.  
  35. // de pagina includen
  36. // hier zetten we het .php er achter zoals je ziet
  37. include $sPagina.".php";
  38. ?>
Offline gert - 18/07/2007 21:49
Avatar van gert Nieuw lid bedankt maar dit is hetzelfde antwoord als wat Rens gaf.  

mijn bedoeling is om het bestaande script van aan te passen
zodat mijn index.php pagina niet zichzelf kan includen of andere bepaalde php bestanden.
Offline Tienizz - 18/07/2007 22:41
Avatar van Tienizz Nieuw lid index.php
  1. <?php
  2. include("pagina.php");
  3. if (isset($_GET["pagina"]) && isset($pagina[$_GET["pagina"]]))
  4. { include($pagina[$_GET["pagina"]]); }
  5. else
  6. { include($pagina["home.php"]); }
  7. ?>


de pagina die je include om je
pagina.php
  1. <?php
  2. $pagina = array(
  3. // snelkoppeling => plaats en naam van bestand
  4. "home.php" => "pagina/home.php",
  5. "home" => "pagina/home.php",
  6. "trek_je_rot.txt" => "pagina/home.php",
  7. );
  8. ?>


Bij dit script kan hij alleen maar de pagina's includen die zijn opgegeven.

link van zo'n pagina is dan index.php?pagina=home.php

mocht je dit nog niet bedoelen moet je je vraag beter uitleggen
Offline gert - 18/07/2007 23:14
Avatar van gert Nieuw lid Ik heb het volgende script in mijn index.php pagina staan.

  1. <?php
  2.  
  3. if (file_exists($_GET['pagina'] . '.php'))
  4. # Haalt de variabele uit de URL, plakt er .php aanvast en kijkt of dit bestand bestaat
  5. {
  6. include $_GET['pagina'] . '.php';
  7. }
  8.  
  9. elseif (empty($_GET['pagina'])) // Als de variabele pagina leeg is
  10. {
  11. include 'welkom.php';
  12. }
  13. else // Als hij niet bestaat, en ook niet leeg is
  14. {
  15. include 'error.php';
  16. }
  17.  
  18. ?>



een link ziet er b.v. als volgt uit:
www.mijnpagina.nl/index.php?pagina=contact

maar als iemand in de adresbalk
www.mijnpagina.nl/index.php?pagina=index in typt word index.php in index.php geincluded, wat niet de bedoeling is.

Ik wil dus bepaalde pagina's niet includen en mijn vraag is of dit script aangepast kan worden zodat hij deze pagina's niet laad maar een foutpagina weergeeft.

Ik hoop dat ik het nu duidelijk heb uitgelegd.
Offline zointer - 18/07/2007 23:44
Avatar van zointer HTML gevorderde test deze eens
  1. <?php
  2.  
  3. if(isset($_GET['nav']) && file_exists($_GET['nav'].".php"))
  4. {
  5.  
  6. if($_GET['nav'] == 'index')//hier controleren op index toevoeging
  7. {
  8.  
  9. include 'error.php';
  10.  
  11. }
  12. else
  13. {
  14. include($_GET['nav'].".php");
  15. }
  16.  
  17. }
  18. else if(isset($_GET['nav']) && isset($_GET['m']) && file_exists($_GET['m']."/".$_GET['nav'].".php"))
  19. {
  20.  
  21. include ($_GET['m']."/".$_GET['nav'].".php");
  22.  
  23. }
  24. else if (empty($_GET['nav']))
  25. {
  26. include("home.php");
  27. }
  28. else
  29. {
  30.  
  31. include 'error.php';
  32.  
  33. }
  34. ?>
Offline gert - 19/07/2007 18:21 (laatste wijziging 19/07/2007 18:25)
Avatar van gert Nieuw lid zointer, bedankt dit werkt!

alleen begrijp ik deze regel niet:
  1. else if(isset($_GET['pagina']) && isset($_GET['m']) && file_exists($_GET['m']."/".$_GET['pagina'].".php"))
  2. { include ($_GET['m']."/".$_GET['pagina'].".php");

wat doet 'm' in ($_GET['m'] ?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.245s