login  Naam:   Wachtwoord: 
Registreer je!
 Forum

?page adres

Offline Stefan14 - 28/10/2005 23:15 (laatste wijziging 28/10/2005 23:15)
Avatar van Stefan14PHP gevorderde na veel proberen en zoeken wil het me maar niet lukken om een adres te krijgen zoals http://www.domein.nl/?page=.......

ik heb nu de volgende code in een bestandje staan wat ik steeds include op elke pagina

  1. <?php
  2. $page = $_GET['page'];
  3.  
  4. $includedpage=$page.'.php';
  5.  
  6. if ($page == '') {
  7. $includedpage = 'index.php';
  8. }
  9. ?>


voor de rest include ik met de volgende code op iedere pagina dan ook de opgevraagde pagina.

  1. <?php
  2. include($includedpage);
  3. ?>


wat is hier fout aan, en wat moet er verbeterd worden om het wel te laten werken?

12 antwoorden

Gesponsorde links
Offline Ibrahim - 28/10/2005 23:28 (laatste wijziging 28/10/2005 23:32)
Avatar van Ibrahim PHP expert switch kun je ook gebruiken...

http://nl2.php.net/switch

of ifjes
  1. <?php
  2. if(isset($_GET['page']))
  3. {
  4. if($_GET['page'] == 'home')
  5. {
  6. //voeg home toe
  7. }
  8. }

enz.
maar dat is veel meer tikwerk dan switch 
Offline Thomas - 28/10/2005 23:32
Avatar van Thomas Moderator Met dat script is het ook mogelijk om externe bestanden te includen, wat mij niet de bedoeling lijkt.

Maak een lijst van page-waarden die toegestaan zijn, en koppel daar php-bestanden aan.

Het onderstaande "sjabloon" (want zo kun je het onderhand wel noemen) is TIG keer voorbij gekomen op dit forum en is ook te vinden onder de scripts als je enige moeite zou hebben genomen om er naar te zoeken:

  1. <?php
  2. // is $_GET['page'] geset?
  3. if(isset($_GET['page'])) {
  4. // kijk of er een geldige pagina is opgegeven
  5. switch($_GET['page']) {
  6. case "news":
  7. $page = "news";
  8. break;
  9. case "home":
  10. $page = "home";
  11. break;
  12. // default, voor als er onzin is ingevuld
  13. default:
  14. $page = "home";
  15. }
  16. } else {
  17. // voor het geval $_GET['page'] niet bestond
  18. $page = "home";
  19. }
  20.  
  21. include($page.".php");
  22. ?>


Op bovenstaande manier houd je zelf de controle over welke bestanden er ge-include kunnen worden.
Offline Stefan14 - 29/10/2005 00:00
Avatar van Stefan14 PHP gevorderde dat script werkt niet om de een of andere reden. ik heb uit de scripts sectie dit script:

  1. <?php
  2. if(isset($_GET['page'])) {
  3. switch(strtolower($_GET['page'])){
  4. case "index": include "index.php"; break;
  5. case "login": include "login.php"; break;
  6. case "loguit": include "loguit.php"; break;
  7. case "admin/index": include "admin/index.php"; break;
  8. case "admin/users": include "admin/users.php"; break;
  9. case "admin/voegtoe": include "admin/voegtoe.php"; break;
  10. case "admin/wijzig": include "admin/wijzig.php"; break;
  11. default: include "index.php"; break;
  12. }
  13. }
  14. else {
  15. include "index.php";
  16. }
  17. ?>


de aparte pagina waar deze code in staat include ik aan het begin van de pagina. maar ook deze code werkt al niet, voer ik de pagina's verkeerd in? of ligt het aan mijn hosting oid?

als ik de index pagina probeer te laden, dan komt hij na lang laden met een error 500 (internal server error)
Offline Ibrahim - 29/10/2005 00:03
Avatar van Ibrahim PHP expert gebruik het script dat FangorN heeft gemaakt voor je...
Maar om deze script te gebruiken heb je ook de paginas die er staan nodig. Dus ze moeten op je server staan 

Offline Stefan14 - 29/10/2005 00:06
Avatar van Stefan14 PHP gevorderde ze staan ook op de server, het enige wat misschien wel het probleem zou kunnen veroorzaken is dat dat bestandje zelf in een map staat.

dus:
home
- include
-bestand

en de index staat gewoon:
home
- index

kan dit het probleem verklaren?
Offline Ibrahim - 29/10/2005 00:09
Avatar van Ibrahim PHP expert heb je dit:

  1. <?php
  2. if(isset($_GET['page'])) {
  3. switch(strtolower($_GET['page'])){
  4. case "index": include "index.php"; break;
  5. case "login": include "login.php"; break;
  6. case "loguit": include "loguit.php"; break;
  7. case "admin/index": include "admin/index.php"; break;
  8. case "admin/users": include "admin/users.php"; break;
  9. case "admin/voegtoe": include "admin/voegtoe.php"; break;
  10. case "admin/wijzig": include "admin/wijzig.php"; break;
  11. default: include "index.php"; break;
  12. }
  13. }
  14. else {
  15. include "index.php";
  16. }
  17. ?>


aangepast aan je eigen paginas of dit gewoon gekopieerd en geplakt?
Offline Stefan14 - 29/10/2005 00:11 (laatste wijziging 29/10/2005 00:12)
Avatar van Stefan14 PHP gevorderde ik heb uiteraard aangepast aan eigen pagina's

dit was het origineel

  1. <?php
  2. if(isset($_GET['pagina'])) {
  3. switch(strtolower($_GET['pagina'])){
  4. case "home": include "home.php"; break;
  5. default: include "error.php" ; break;
  6. }
  7. }
  8. else {
  9. include "home.php";
  10. }
  11. ?>


http://www.site...amp;id=309

als ik dat stuk code weghaal, dan laadt de index pagina trouwens wel normaal, dus het moet ergens in dat script zitten waardoor hij enorm traag laadt, en op een gegeven moment alsnog met niks komt.
Offline Michiel_G - 29/10/2005 00:16
Avatar van Michiel_G Nieuw lid kan het dan niet zijn dat hij ergens ne cycle creëert of zo, dus files die andere files includen?
Offline Ibrahim - 29/10/2005 00:19 (laatste wijziging 29/10/2005 00:20)
Avatar van Ibrahim PHP expert geef eens het adres dan kan ik het met eigen ogen zien.

  1. <?php
  2. if(isset($_GET['page']))
  3. {
  4. switch(strtolower($_GET['page']))
  5. {
  6. case "index":
  7. include "index.php";
  8. break;
  9.  
  10. case "login":
  11. include "login.php";
  12. break;
  13.  
  14. case "loguit":
  15. include "loguit.php";
  16. break;
  17.  
  18. case "admin/index":
  19. include "admin/index.php";
  20. break;
  21.  
  22. case "admin/users":
  23. include "admin/users.php";
  24. break;
  25.  
  26. case "admin/voegtoe":
  27. include "admin/voegtoe.php";
  28. break;
  29.  
  30. case "admin/wijzig":
  31. include "admin/wijzig.php";
  32. break;
  33.  
  34. default:
  35. include "index.php";
  36. break;
  37. }
  38. }
  39. else
  40. {
  41. include "index.php";
  42. }
  43. ?>
Offline Ultimatum - 29/10/2005 00:20
Avatar van Ultimatum PHP expert alsje nou eens gwoon zoiets als silicom14 gebruikt

dit gebruik ik zelf :
  1. $_GET['page'] = "home";
  2.  
  3. if(file_exists($_GET['page'].'.php')) {
  4. include($_GET['page'].'.php');
  5. } else {
  6. include("404.php");
  7. }
  8. ?>
Offline Stefan14 - 29/10/2005 00:21 (laatste wijziging 29/10/2005 00:24)
Avatar van Stefan14 PHP gevorderde ik heb de lijst ingekort om het wat makkelijker te maken, maar dat haalt de foutmelding nog niet weg, het is nu dus het volgende lijstje

  1. <?php
  2. if(isset($_GET['page'])) {
  3. switch(strtolower($_GET['page'])){
  4. case "index": include "index.php"; break;
  5. case "login": include "login.php"; break;
  6. case "loguit": include "loguit.php"; break;
  7. default: include "index.php"; break;
  8. }
  9. }
  10. else {
  11. include "index.php";
  12. }
  13. ?>


geinclude pagina's
index.php - config.php
login.php - config.php
loguit.php - config.php

in die config.php staat dus dit stukje code.

EDIT: het adres is http://www.uploadarchief.com/voetballife/index.php
(is een site voor iemand anders, ik ben geen liefhebber van voetbal)
Offline Ibrahim - 29/10/2005 00:52
Avatar van Ibrahim PHP expert ***opgelost***

Ik heb hem even toegevoegd op msn en ik kwam erachter dat hij het script toevoegde op elke pagina.

Ik heb hem de opdracht gegeven om het script in een bestand te zetten en het index.php te noemen. En nu werkt het 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.306s