login  Naam:   Wachtwoord: 
Registreer je!
 Forum

index php?page=

Offline arievdonk - 25/04/2005 18:31 (laatste wijziging 25/04/2005 18:48)
Avatar van arievdonkNieuw lid Ik heb een script gebruikt...namelijk het volgende

  1. <?php
  2. switch ($_GET["page"]) {
  3. case "contact":
  4. require "contact.php";
  5. break;
  6. case "fotos":
  7. require "album/Albumlist.php";
  8. break;
  9. case "filmpjes":
  10. require "filmpjes.php";
  11. break;
  12. case "statistieken":
  13. require "statistieken/count.php";
  14. break;
  15. case "route":
  16. require "route.php";
  17. break;
  18. default:
  19. require "nieuws/index.php";
  20. }
  21. ?>

Alleen het lijkt wel of hij elke keer de hele pagina ververst..
En nu was ik benieuwd hoe ze het op sitemasters.be hebben gedaan omdat dat hier niet gebeurd maar alleen de betreffende cel.

Edit voor de 1000ste keer door Mokka: CODE TAGS!

21 antwoorden

Gesponsorde links
Offline XenoX - 25/04/2005 18:53
Avatar van XenoX Gouden medailleGouden medaille

PHP expert
Dat gebeurd op sitemasters toch ook?

Misschien is de hosting van sitemasters gewoon sneller zodat je het niet ziet?
Offline zwobbel - 25/04/2005 18:57 (laatste wijziging 25/04/2005 18:58)
Avatar van zwobbel PHP gevorderde Ik zou als ik van jouw was deze code gebruike ik gebruik die ook:
  1. <?php
  2. if ($_GET['a'] == "index") //Als de pagina gelijk is waar dat dit script staat word de hoofdpagina geinclude
  3. {
  4. include("main.php"); //Als de pagina gelijk is aan index dan de hoofdpagina weergeven dit voor error te voorkomen.
  5. } else {
  6. if ($_GET['a'])
  7. {
  8. if (file_exists ($_GET['a'].".php") )
  9. {
  10. include($_GET['a'].".php"); //Pagina includen die opegvraagd is in de link.
  11. } else {
  12. include("error.php"); //De error pagina opvragen indien de pagina die opgevraagd is niet bestaat.
  13. }
  14. } else {
  15. include("main.php"); //De hoofdpagina weergeven indien er geen pagina is opgevraagd.
  16. }
  17. }
  18. ?>


Je plaatst deze code op de plaats waar elke pagina moet verschijnen en als vb noemt dit bestand even index.php.
Als je nu een link wilt gebruiken doe je dit zo:
<a href='index.php?a=contact'>Ga naar contact</a>
de pagina zelf infeite noemt dan contact.php

Dit systeem vind ik persoonlijk beter omdat ge niet telkens als je een nieuwe pagina aanmaakt je die pagina bij zette in eht script ;)
Offline arievdonk - 25/04/2005 18:59
Avatar van arievdonk Nieuw lid Hmmzz
Is lycos dan zow traag...(betaalde versie)
Had ik niet verwacht dat het verschil zow erg kon zijn.

www(.)arievdonk(.)nl
Offline legende - 25/04/2005 19:07
Avatar van legende Onbekend Tip: gebruik include() i.p.v. require()
Offline Gerard - 26/04/2005 00:28
Avatar van Gerard Ouwe rakker
Citaat:
Zwobbel
Je plaatst deze code op de plaats waar elke pagina moet verschijnen en als vb noemt dit bestand even index.php.
Als je nu een link wilt gebruiken doe je dit zo:
<a href='index.php?a=contact'>Ga naar contact</a>
de pagina zelf infeite noemt dan contact.php


arievdonk, negeer deze post van Zwobbel als je een kleine website draait. Hoewel hij wel gelijk heeft dat het een stuk handiger is om zo de navigatie te regelen is je huidige script een stuk veiliger.
Offline xSc - 26/04/2005 10:33
Avatar van xSc Onbekend Nog beter zou nummerieke commando's zijn.
Offline nathanael - 26/04/2005 13:42
Avatar van nathanael Gouden medaille

HTML gevorderde
Waarom nummeriek, dan moet je alle nummers onthouden...
Offline Thomas - 26/04/2005 13:54
Avatar van Thomas Moderator Het is inderdaad veiliger om zelf (precies die) pagina's te definiëren die je script dient te laden. Een wat nettere variant zou zijn (er vanuit gaande dan $_GET['page'] de paginanaam bevat die geladen dient te worden):

  1. <?php
  2. if(isset($_GET['page'])) {
  3. // $_GET['page] heeft een waarde
  4. switch($_GET['page']) {
  5. case "news":
  6. $page = "news/index.php";
  7. break;
  8. case "forum":
  9. $page = "forum/index.php";
  10. break;
  11. // et cetera
  12. default:
  13. // $_GET['page'] bevatte blijkbaar onzin - pak default
  14. $page = "news/index.php";
  15. break;
  16. }
  17. } else {
  18. // $_GET['page'] heeft geen waarde - pak default
  19. $page = "news/index.php";
  20. }
  21.  
  22. // include deze pagina
  23. require($page);
  24. ?>
Offline Scott - 26/04/2005 14:01
Avatar van Scott Gouden medaille

PHP ver gevorderde
Of je doet het zo, das nog korter:

  1. <?php
  2.  
  3. $mogelijke_paginas = array('news' => 'news/index.php', 'news/index.php'); // Voeg hier alle pagina's toe
  4.  
  5. if (isset($mogelijke_paginas[$_GET['page']])) {
  6.  
  7. include($mogelijke_paginas[$_GET['page']]);
  8.  
  9. }
  10. ?>
Offline SvenP - 26/04/2005 15:34 (laatste wijziging 26/04/2005 15:35)
Avatar van SvenP PHP interesse kan toch ook gewoon zo?
  1. <?
  2. include( ((isset($_GET['p']))&&file_exists("php/{$_GET['p']}.php"))?str_replace('..','',"php/{$_GET['p']}.php"):'php/home.php');
  3. ?>


verander de $_GET['p'] in dat wat jij wilt gebruiken (page, x, id, whatever)
en de php/home.php is de pagina waar hij naartoe gaat als je alleen index.php hebt zonder ?p=bla.. ;)
Offline riekele - 26/04/2005 16:20
Avatar van riekele PHP beginner ehm ooit gehoort van netjes scripten?:s
Offline Scott - 26/04/2005 16:22 (laatste wijziging 26/04/2005 16:22)
Avatar van Scott Gouden medaille

PHP ver gevorderde
@ SvenP: Nou, laat ik dan maar eens de config includen, of, nog leuker, de admin 

;-)
Offline webbiexl - 26/04/2005 16:23 (laatste wijziging 26/04/2005 16:43)
Avatar van webbiexl PHP interesse dat gaat niet met knippen en plakken hoe vaak dat bij mji al is voorgekomen gezeik altijd en denk nou is aan die gvd-de code tags maja wat is nou 1000 keer op 10.000.000 reacties

vinTage edit : Das 1000 keer in een maand tijd, door EEN crewlid..
Offline ikkedikke - 26/04/2005 18:39 (laatste wijziging 26/04/2005 18:39)
Avatar van ikkedikke PHP expert
  1. <?php
  2. $aIncludes = array(
  3. 'index',
  4. 'pagina2',
  5. 'pagina3',
  6. 'map1/pagina2'
  7. );
  8. if(isset($_GET['inc']) && in_array($_GET['inc'],$aIncludes))
  9. {
  10. include('includes/'.$_GET['inc'].'.php');
  11. }
  12. else
  13. {
  14. include('includes/start.php');
  15. }
  16. ?>
en dan nog een .htacces in includes/ zodat niemand zomaar bij je paginas kan
Offline zwobbel - 26/04/2005 19:05
Avatar van zwobbel PHP gevorderde pff ik krijg het van die htacces ik probeer maar in mijn telent een passwoord in te geven en krijg altijd de melding verbinding verbroken 
Offline nemesiskoen - 26/04/2005 19:11
Avatar van nemesiskoen Gouden medaille

PHP expert
er zijn veel manieren
je kan alles in een switch gooien, je kan die switch dan nog vergemakelijken. Je kan ook 1x include ($_GET['pagina'] .".php") doen, maar dan op een veilige manier

even om te demonsteren hoe je een switch kan vereenvoudigen

  1. <?php
  2.  
  3. if( isSet( $_GET['pagina'] ) ) {
  4. $pagina = $_GET['pagina'];
  5. }
  6. else {
  7. $pagina = "home";
  8. }
  9.  
  10. switch( $pagina ) {
  11.  
  12. case "home" :
  13. case "forum" :
  14. case "map/pagina" :
  15. case "pagina" :
  16. require $_GET['pagina'] .".php";
  17. break;
  18. default : require $_GET['pagina'] .".php"; break;
  19.  
  20. }
  21. ?>


zoals je zet zet ik nergens een break behalve bij de 2 laatste... het is verdomd logisch maar heb er pas net achter gekomen dat het mogelijk is

nu kan je natuurlijk de korste (plus in mijn ogen veilig) doen:

  1. <?php
  2. $jouwsite = "http://www.jouwsite.com";
  3.  
  4. if( file_exists( $jouwsite . "/" . $_GET['pagina'] . ".php" ) ) {
  5. require $_GET['pagina'] . ".php";
  6. }
  7. else {
  8. require '404.php';
  9. }
  10.  
  11. ?>


dit lijkt onveilig, omdat ik gebruik maak van file_exists... maar het werkt, en ik geraak er niet in vanuit een andere site
Offline SvenP - 26/04/2005 20:39 (laatste wijziging 26/04/2005 20:40)
Avatar van SvenP PHP interesse @scott, net als ik:
een andere else:
if($_GET['p'] == admin){
de include voor admin
}else{
de huidige include
}
Offline Scott - 26/04/2005 21:04
Avatar van Scott Gouden medaille

PHP ver gevorderde
Ja, maar als je zo een aantal van die pagina's hebt moet je allemaal if's toevoegen, dan kun je beter die van mij nemen...
Offline nemesiskoen - 26/04/2005 21:24 (laatste wijziging 26/04/2005 21:27)
Avatar van nemesiskoen Gouden medaille

PHP expert
edit
ik zeg niets
had die isset nie gezien 
Offline xSc - 26/04/2005 21:27
Avatar van xSc Onbekend Wat doen jullie toch allemaal moeilijk. Geef mij maar normale bestanden:

dus contact.php ipv index.php?pagina=contact.

Dus liever SEO-vriendelijke URL's.
Offline p4u - 27/04/2005 01:01
Avatar van p4u Lid Als je site geen 10tallen pagina's bevat zou ik inderdaad net als Henri gewoon .php overal op eind, dan nog kan je bijvoorbeeld het menu includen hé zodat dat in 1x gewijzigd kan zijn. (waarvoor de meesten toch het index.php?pagina= principe voor gebruiken)

Rick
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.26s