login  Naam:   Wachtwoord: 
Registreer je!
 Forum

pagina systeem!

Offline biertie - 28/09/2004 18:51 (laatste wijziging 28/09/2004 18:51)
Avatar van biertieOnbekend euhm, ik heb een vraagje 
is het mogelijk, om een error pagina te gebruiken als je het volgende systeem gebruikt:
  1. <?
  2. switch(strtolower($_GET['pagina']))
  3. {
  4. case "tutorials": $page="tutorials.php";break;
  5.  
  6. default: $page="nieuws.php";break;
  7. }
  8. ?>

12 antwoorden

Gesponsorde links
Offline BigTeddy - 28/09/2004 19:00
Avatar van BigTeddy Gouden medaille

PHP gevorderde
Wel moet de switch functie wordt er gekeken naar de case en indien deze erniet bij staat, wordt de default gebruikt. Er zal dus nooit een pagina opgeroepen worden die niet in de switch staat omdat deze dan altijd de default gebruikt. Daar staat het dan ook juist weer voor hé, default het woord zegt het eigenlijk zelf.

Met dat systee kan je dus geen error pagina gebruiken.
Indien je zou werken met file_exsist() & include ivp switch is het wel makkelijk te doen. Gewoon een error include als de pagina niet bestaat. 
Offline twopeak - 28/09/2004 19:23
Avatar van twopeak Gouden medaille

PHP ver gevorderde
met een functie kun je dit wel doen (en je kunt je include ineens ook in die functie zetten als je zouw illen!

<?
switch(strtolower($_GET['pagina']))
{
case "tutorials": $page=bestand_controle("tutorials.php");break;

default: $page="nieuws.php";break;
}
function bestand_controle($bestand){
if !file_exists($bestand)
return foutpagina.html;
return $bestand;
}
?>
Offline biertie - 28/09/2004 19:45
Avatar van biertie Onbekend ach, bedankt, net wat ik nodig had :d
Offline BigTeddy - 28/09/2004 20:08
Avatar van BigTeddy Gouden medaille

PHP gevorderde
juist twopeak,
dat kan je natuurlijk doen hé
ik was enkel aan het denken aan de mogelijkheden die in de switch funtcie zitten
Offline Maarten - 28/09/2004 21:20
Avatar van Maarten Erelid ik werk met een wreed simpel ding
  1. <?php if(file_exists("$pagina.php")) {
  2. include("$pagina.php");
  3. } else {
  4. header("Location: index.php?pagina=error&error=404&url=".$_SERVER['REQUEST_URI']."");
  5. }?>

En het werkt ook 
Offline numlockrond - 28/09/2004 21:29 (laatste wijziging 28/09/2004 21:33)
Avatar van numlockrond Onbekend @murfy: probeer eens index.php?pagina=index ...

Zoiets moet toch ook kunnen:
  1. <?php
  2.  
  3. switch(strtolower($_GET['pagina'])){
  4.  
  5. case "tutorials": $page = "tutorials.php"; break;
  6.  
  7. //andere pagina's
  8.  
  9. //als er geen pagina is opgegeven include je de standaard pagina
  10. case "": $page = "nieuws.php"; break;
  11.  
  12. //in alle andere gevallen is er een ongeldige pagina opgegeven
  13. default: "404error.php"; break;
  14.  
  15. }
  16.  
  17. ?>
Offline DRUNK - 28/09/2004 23:57 (laatste wijziging 29/09/2004 00:01)
Avatar van DRUNK PHP gevorderde @numlockrond: wel een leuke oplossing, maar ik vind hem nou niet zo netjes.

Als je met een switch werkt is het ook niet nodig om te kijken of er geen slechte bestanden ge- include(...) worden? het kijkt alleen maar naar de case '...' waarden en gaat d'r na indien geen overeenkopmst naar default. Als je met file_exists(...) enz...werkt kan ik nog wel snappen dat je een error pagina gebruikt, maar anders niet zo nodig volgens mij....
Offline biertie - 29/09/2004 07:28
Avatar van biertie Onbekend @murfy: voor sommige site's gebruik ik dat systeem ook 
maar euhm, bij de site die ik nu maak, is het niet zo handig door al zijn submappen enzovoort.
Offline Thomas - 29/09/2004 07:31 (laatste wijziging 29/09/2004 07:32)
Avatar van Thomas Moderator De oplossing van numlockrond kan misschien nog wat beter:

  1. <?php
  2. if(isset($_GET['pagina'])) {
  3. // er staat een pagina in de URL, kijk of we deze kennen
  4. switch($_GET['pagina']) {
  5. case "news": $page = "nieuws"; break;
  6. case "tutorials": $page = "tutorials"; break;
  7. // et cetera
  8. ...
  9. // er is geen geschikte pagina gevonden
  10. default: $page = "404"; break;
  11. }
  12. } else {
  13. // geen pagina ingesteld via de URL, pak de default pagina
  14. $page = "nieuws"; break;
  15. }
  16. require($page.".php");
  17. ?>


Je kan natuurlijk ook een .htaccess bestand aanmaken met hierin een ErrorDocument.
Offline tomk - 29/09/2004 07:47 (laatste wijziging 29/09/2004 07:48)
Avatar van tomk ASP interesse Ik ga zo te werk:
  1. <?
  2. switch(strtolower($_GET['pagina'])) {
  3.  
  4. case "fotoalbum": $page="fotoalbum.php";break;
  5. case "contact": $page="contact.php";break;
  6. case "links": $page="links.php";break;
  7. case "webmaster": $page="webmaster.php";break;
  8.  
  9.  
  10.  
  11. default: $page="nieuws.php";break;
  12. }
  13. include($page);
  14. ?>
Offline biertie - 29/09/2004 13:03
Avatar van biertie Onbekend lol, tomk, dat is alles behalve het antwoord op mijn vraag hé ;)
Offline tjerkie - 29/09/2004 17:13
Avatar van tjerkie HTML interesse als je in je .htaccess bestand bijv.
http://www.jesite.nl/index.php?pagina=404
invoert

en je
  1. case "404": $page="404.php";break;

toevoegt..
dan lukt da wel^^
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.248s