login  Naam:   Wachtwoord: 
Registreer je!
 Forum

$_GET['page']

Offline RickyB - 06/09/2005 17:10 (laatste wijziging 06/09/2005 17:12)
Avatar van RickyBOnbekend ik heb zo'n scrippie:
  1. <?php
  2. if (isset($_GET['page']))
  3. {
  4. if($_GET['page']=='home')
  5. {
  6. include('home.php');
  7. }
  8. elseif($_GET['page']=='link2')
  9. {
  10. include('link2.php');
  11. }
  12. elseif($_GET['page']=='link3')
  13. {
  14. include('link3.php');
  15. }
  16. else
  17. {
  18. include('404.php');
  19. }
  20. } ?>


het probleem is dat als je dan bijv. naar www.domein.nl gaat, en daar staat dit script in de index pagina, dat hij dan helemaal nix include.
dan staat er dus ook geen tekst. weet iemand hoe ik dan als je naar bijv. www.domein.nl gaat (met dit script in index.php) hoe ik dan naar
"www.domein.nl/?page=home" ga? dus automatisch..
dus ook niet home.php includen, maar dat je er echt HEEN gaat en je het in je berichtenbalk ziet staan.

13 antwoorden

Gesponsorde links
Offline cracker - 06/09/2005 17:30 (laatste wijziging 06/09/2005 17:31)
Avatar van cracker Onbekend Een switch-functie is overzichtelijker vind ik.
  1. <?php
  2. switch($_GET['page']){
  3. case home:
  4. include("home.php");
  5. break;
  6. case link2:
  7. include("link2.php");
  8. break;
  9. case link3:
  10. include("link3.php");
  11. break;
  12. case null:
  13. include("geenwaarde.php");
  14. break;
  15. default:
  16. include("404.php");
  17. }
  18. ?>


Of met een redirect:
  1. <?php
  2. switch($_GET['page']){
  3. case home:
  4. header("Location: home.php");
  5. break;
  6. case link2:
  7. header("Location: link2.php");
  8. break;
  9. case link3:
  10. header("Location: link3.php");
  11. break;
  12. case null:
  13. header("Location: geenwaarde.php");
  14. break;
  15. default:
  16. header("Location: 404.php");
  17. }
  18. ?>

Of een directe redirect voor uw homepage:
  1. <?php
  2. if($_GET['page'] == null || $_GET['page'] == ""){
  3. header("Location: index.php?page=home");
  4. }
  5. ?>
Offline RickyB - 06/09/2005 17:42
Avatar van RickyB Onbekend deze error krijg ik :

Citaat:
Warning: Cannot modify header information - headers already sent by (output started at /home/rickybnl/domains/rickybdesigns.nl/public_html/index.php:10) in /home/rickybnl/domains/rickybdesigns.nl/public_html/index.php on line 27
Offline Ontani - 06/09/2005 17:43
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
zet ob_start(); vanboven

  1. <?
  2.  
  3. // alle rest
  4.  
  5. ?>
Offline Ultimatum - 06/09/2005 17:46
Avatar van Ultimatum PHP expert maar kan je nu dan ook ?page=home doen (eerste php script dat je liet zien), want heb geprobeerd, maar doet het niet 
Offline Martijn1989 - 06/09/2005 18:09
Avatar van Martijn1989 PHP ver gevorderde Je kan ook dit script gebruiken :

  1. <?
  2. $pagina = str_replace("../","",$_GET['pagina']);
  3. if($pagina == "") {
  4. include("welkom.php"); //de pagina waar hij mee begint
  5. }
  6.  
  7. else {
  8. if(file_exists("$pagina")) {
  9. include("$pagina");
  10. }
  11. else {
  12. include("error.php"); //de pagina die tevoorschijn komt als een pagina niet bestaat
  13. }
  14. }
  15. ?>


www.website.nl/index.php?pagina=sjon(.php)  
Offline nemesiskoen - 06/09/2005 18:13 (laatste wijziging 06/09/2005 18:14)
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. <?php
  2. switch($_GET['page']){
  3. case home:
  4. include("home.php");
  5. break;
  6. case link2:
  7. include("link2.php");
  8. break;
  9. case link3:
  10. include("link3.php");
  11. break;
  12. case null:
  13. include("geenwaarde.php");
  14. break;
  15. default:
  16. include("404.php");
  17. }
  18. ?>

Dit kan veel korter/simpeler. En rond include moeten geen haakjes.
Home, link1 en link2 zijn btway geen constanten dus moeten er quotes rond.
  1. <?php
  2. switch($_GET['page']){
  3. case "home":
  4. case "link2":
  5. case "link3":
  6. require $_GET['page'] .".php";
  7. break;
  8. case null:
  9. require 'geenwaarde.php';
  10. break;
  11. default:
  12. require 'home.php';
  13. break;
  14. }
  15. ?>
Offline RickyB - 06/09/2005 18:52
Avatar van RickyB Onbekend oke.. allemaal bedankt.. het is al gelukt
Offline Ultimatum - 06/09/2005 19:04
Avatar van Ultimatum PHP expert laat ik maar geen nieuw topic starten aangezien dit bijna is wat ik zoek, zoek dus zoiets als de codes hierboven, alleen werkt het bij mij niet met ?page=home en ik wil graag dat die de extencies .php EN .htm herkent, is dat mogelijk 
Offline nemesiskoen - 06/09/2005 19:06
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. switch($_GET['page']){
  2. case "home":
  3. case "ietsAnders":
  4. case "nogIetsAnders":
  5. if(file_exists($_GET['page'] .".php")) {
  6. require $_GET['page'] .".php";
  7. } elseif(file_exists($_GET['page'] .".htm")) {
  8. require $_GET['page'] .".php";
  9. }
  10. break;
  11. }
Offline Ultimatum - 06/09/2005 19:31
Avatar van Ultimatum PHP expert thanx, hij doet het alleen je was de default pagina vergete, weet nie of je ut express deed , en als je invoert dat hij .htm moet gebruike als .php niet bestaat, heb je de extensie .php neergezet ipv .htm, dus dit is de goeie versie ;)

  1. <?php
  2. switch($_GET['page']){
  3. case "home":
  4. case "link1":
  5. case "link2":
  6. if(file_exists($_GET['page'] .".php")) {
  7. require $_GET['page'] .".php";
  8. } elseif(file_exists($_GET['page'] .".htm")) {
  9. require $_GET['page'] .".htm";
  10. }
  11. break;
  12. default:
  13. require 'home.php';
  14. break;
  15. }
  16. ?>
Offline nemesiskoen - 06/09/2005 19:50
Avatar van nemesiskoen Gouden medaille

PHP expert
Was om aan te tonen van hoe je php of html include. Ik vergat dus "bewust" die default. Eigenlijk moet dit ook niet. Omdat je beter eerste controleert of $_GET['page'] is geset, (zoneen: home includen) zoja dan ga je alles af. Als ze met de header knoeien dan kunnen ook geen pagina verwachten.
Offline Ultimatum - 06/09/2005 20:03
Avatar van Ultimatum PHP expert snap het niet, moet ik nou wel of niet de default invoege, want als ik dat doe dan staat er geen text zodra je de site bezoekt:o
Offline nemesiskoen - 06/09/2005 20:58
Avatar van nemesiskoen Gouden medaille

PHP expert
Ikzelf vind het beter zo:
  1. <?php
  2. if(isSet($_GET['page'])) {
  3. switch($_GET['page']) {
  4. case "home": case "iets": case "nogiets": require $_GET['page'] .".php"; break;
  5. }
  6. } else {
  7. require 'home.php';
  8. }
  9. ?>


Ik vind niet dat je de moeite moet nemen om sukkels die met de header te spelen te zeggen dat ze dit niet moeten doen. Je kan natuurlijk wel gaan loggen, en na 10x spelen met hetzelfde IP -> Bannen (zie wel dat je jezelf niet bant, als je nog aant testen bent en je doet een typ fout).
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.406s