login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Navigatie Script Problemen

Offline pimpslap - 08/04/2005 23:38 (laatste wijziging 09/04/2005 13:08)
Avatar van pimpslapNieuw lid Beste Sitemasters,

Ik weet niet eens zeker of dit een navigatie script is maar goed, je zal het wel begrijpen (I hope).

  1. <?php ob_start();
  2. if ($page = "home") {
  3. $load = "main.php";
  4. } elseif ($page = "laws") {
  5. $load = "laws.php";
  6. } elseif ($page = "issues") {
  7. $load = "issues.php";
  8. } elseif ($page = "perspectives") {
  9. $load = "perspectives.php";
  10. } elseif ($page = "about") {
  11. $load = "about.php";
  12. }
  13. ?>
  14.  
  15. Bla Bla Bla HTML gelul
  16.  
  17. <?php
  18. include("$load"); ?>


Bla Bla Bla HTML gelul

Op elk pagina die je daarboven ziet heb ik de naam ervan erin ge echo'd.. om te kijken of ze werkelijk geload worden maar alleen main.php word geload...

voel me nogal noob >.> Dit is het resultaat van 10 maanden lang gamen... en scripten opzij gooien 

Medewerker edit: Gebruik die code tags eens!

8 antwoorden

Gesponsorde links
Offline MechaVore - 08/04/2005 23:42 (laatste wijziging 08/04/2005 23:43)
Avatar van MechaVore Gouden medaille

PHP gevorderde
gebruik deze,
totdat ik weet is deze veilig.

  1. <?
  2. if(!$_GET['pagina'])
  3. {
  4. $_GET['pagina'] = "home";
  5. }
  6. if(file_exists($_GET['pagina'].'.php'))
  7. {
  8. include($_GET['pagina'].'.php');
  9. }
  10. else
  11. {
  12. include("error.php");
  13. }
  14. ?>
Offline MothZone - 09/04/2005 00:01 (laatste wijziging 09/04/2005 00:03)
Avatar van MothZone PHP ver gevorderde je kan beter dit doen:

  1. <?php
  2. if(isset($_GET['page'])) //Als ?page= wel gedefinieerd is
  3. {
  4. switch($_GET['page'])
  5. {
  6. case "home":
  7. $load = "main.php";
  8. break;
  9. case "laws":
  10. $load = "laws.php";
  11. break;
  12. //enzovoort
  13. default: //Dit is dus als de pagina niet in de lijst hierboven staat
  14. $load = "404.php"
  15. }
  16. }
  17. else //Als ?page= niet gedefinieerd is
  18. {
  19. $load = "main.php";
  20. }
  21. ?>
  22. ...
  23. ...
  24. <?php
  25. if(file_exists($load)) //Bestaat de pagina wel
  26. {
  27. include($load);
  28. }
  29. else
  30. {
  31. include("404.php");
  32. }
  33. ?>
Offline MechaVore - 09/04/2005 00:33 (laatste wijziging 09/04/2005 00:34)
Avatar van MechaVore Gouden medaille

PHP gevorderde
maar, waarom is dat beter dan ?

je doet namelijk precies hetzefde maar dan op een andere manier..
Offline MothZone - 09/04/2005 00:39
Avatar van MothZone PHP ver gevorderde als er op jou manier een slecht/onbeveiligde admin.php bestaat, kan je gewoon ?page=admin doen, terwijl het script dat ik postte kan je dat ook doen, maar je zal hem nooit te zien krijgen want je ziet 404.php
bij het systeem ik postte bepaalt de webmaster zélf wat er te zien kan komen, bij jouw heeft hij er geen controle over want je kan gewoon wat proberen in de url
Offline MechaVore - 09/04/2005 00:42 (laatste wijziging 09/04/2005 00:47)
Avatar van MechaVore Gouden medaille

PHP gevorderde
maaruhm, dan zou de webmaster ook zijn eigen admin.php niet kunnen zien (via de index!) het kan wel maar dan moet je eerst kijken of de gebruiker admin is en dan word bepaald welke pagina's een gebruiker mag zien.

nou ik hou het bij dat andere systeem ik werk er al lang mee en het werkt goed. (tenminste mijn admin pagina's zijn beveiligd)

[Edit]
ik snap et , maar bij mij werkt het zo ook goed. en ik wil graag de admin in de gehele site houden omdat er ook andere admin's en medewerkers zijn.
Offline MothZone - 09/04/2005 00:44
Avatar van MothZone PHP ver gevorderde ik werk meestal met een aparte pagina admin.php waarbij met sessions ingelogd word, en dan vanboven op die pagina zien of er een sessie bestaat waarin staat dat je ingelogd bent, dan zien of er een pagina gedefinieerd is, en dan het script, geen pagina gedefinieerd een lijstje van de paginas, enzovoort, dus hetzelfde systeem alleen niet in de index
Offline nemesiskoen - 09/04/2005 10:45 (laatste wijziging 09/04/2005 10:47)
Avatar van nemesiskoen Gouden medaille

PHP expert
euh, het draait niet zozeer om die admin pagina, meer om aanvallen van buitenaf

wat vind je van dit

  1. <?php
  2. $query = "DELETE * FROM leden";
  3. MySQL_query( $query ) or die( MySQL_error() );
  4. ?>


leuk scriptje... en wat doet het
het verwijderd alle leden... en als de tabel leden niet bestaat geeft hij een error dat die niet bestaat, en verander je die leden in members oid.
na een tijd heb je het wel gevonden.
Nu, dat scriptje kan helemaal geen kwaad, want jij gaat niet zo stom zijn dat te uploaden.
Maar stel ik wil u site cracken. Dan upload ik dit bestand op mijn site, onder de naam hack.

wat vind je van deze url:

http://www.jouw...n.com/hack

wat doet dit? dit laad mijn site in in jou site... leuk he??

dus of je kan met die switch werken, of je kan het iets gemakelijker maken (hier ben ikzelf ook nog maar pas achter), door dit te doen:

  1. <?php
  2. $page = addslashes( htmlspecialchars( $_GET['page'] ) );
  3. $uw_site = "http://www.jouwsite.com";
  4. $default = "default.php";
  5.  
  6. if ( file_exists( $uw_site ."/". $page .".php") ) {
  7. include($uw_site ."/". $page .".php");
  8. } else {
  9. echo "404 Error - Page Not Found";
  10. //of
  11. include($default);
  12. }
  13. ?>
Offline Thomas - 09/04/2005 13:08
Avatar van Thomas Moderator Het is inderdaad beter om een switch-statement te gebruiken.
Je oorspronkelijk "probleem" werd veroorzaakt doordat je "=" (toekenning) in plaats van "==" (vergelijking) gebruikte.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s