login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Pagina Script

Offline Rob - 07/04/2006 20:43
Avatar van RobHTML interesse
  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. ?>

Ik vond dit script hier op Sitemasters en heb hierover een vraag.

Hoe moet je dit gebruiken? 
Zet je deze code in de pagina die je wilt includen zelf of ergens anders? Hoe sla je zo'n bestand op?

Sorry voor deze, misschien n00bachtige, vraag. Ben net begonnen met het leren van PHP.

38 antwoorden

Gesponsorde links
Offline gothmog - 07/04/2006 20:47
Avatar van gothmog Lid meestal zet je deze op de index.php

vb.
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <?php
  6. if(isset($_GET['pagina'])) {
  7. switch(strtolower($_GET['pagina'])){
  8. case "home": include "home.php"; break;
  9. default: include "error.php" ; break;
  10. }
  11. }
  12. else {
  13. include "home.php";
  14. }
  15. ?>
  16. </body>
  17. </html>


vaak zet je deze code dan in een mooie tabel
en kun je erboven bijv. een menu doen

je roept dan pagina's aan dmv. dit:
<a href="?pagina=home">Home</a>
Offline Rob - 07/04/2006 20:52
Avatar van Rob HTML interesse Ah, en als je bijvoorbeeld een pagina Nintendo hebt sla je hem op als nintendo.php en dan zet je dit in nintendo.php:

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


En dan link je als: <a href="?pagina=nintendo">Nintendo</a>
Offline Ch0coschijt - 07/04/2006 20:56 (laatste wijziging 07/04/2006 20:58)
Avatar van Ch0coschijt HTML interesse nej dat zet je in index.php en dan roep je nitendo aan met index.php?pagina=nitendo.php

als je dit in je nitendo.php zal zette en zo gebruikt -> nitendo.php?=pagina=nitendo zal hij zich zelf constant include ;)

edit: mijne ziet er zo uit ( kweenie of dit 100% veilig is )
  1. <?
  2. $pExpressie = "(http:|ftp:|shttp:|www.|.php|.pl|.cgi|.asp|index.php)";
  3. if(isset($_GET['p'])) {
  4. if(eregi($pExpressie,$_GET['p'])) {
  5. echo "Ongeldige pagina opgegeven.";
  6. }
  7. else {
  8. $p = $_GET["p"].".php";
  9. if(file_exists($p)) {
  10. include($p);
  11. }
  12. else {
  13. include("modules/nieuws/headlines.php");
  14. }
  15. }
  16. }
  17. else {
  18. include("modules/nieuws/headlines.php");
  19. }
  20. ?>
Offline gothmog - 07/04/2006 20:58
Avatar van gothmog Lid @Ch0coschijt

index.php?pagina=nitendo.php is fout.
er staat duidelijk
case "nintendo"

dus het moet zijn:
index.php?pagina=nitendo
Offline Rob - 07/04/2006 20:59 (laatste wijziging 07/04/2006 20:59)
Avatar van Rob HTML interesse Ik snap het niet echt zo goed. 

Heeft iemand een voorbeeld waar je alles neerzet etc.? 
Offline Ch0coschijt - 07/04/2006 20:59
Avatar van Ch0coschijt HTML interesse hoezo hij zegt dat hij dat stukie in nitendo.php zet inplaats van index dat klopt toch nie?
Offline Rob - 07/04/2006 21:06
Avatar van Rob HTML interesse Dat klopt omdat ik het niet echt snap. 
Offline lasdesigner - 07/04/2006 21:07 (laatste wijziging 07/04/2006 21:08)
Avatar van lasdesigner PHP beginner Dit is toch veel makkelijker, Minder veilig misschien;)
  1. <?php
  2. if(isset($_GET['pagina'])) {
  3. include($_GET['pagina'].".php");
  4. } else {
  5. include('index.php');
  6. }
  7. //Aanroepen door <a href='index.php?pagina=test'>Test</a>
  8. ?>
Offline Freaky_Davy - 07/04/2006 21:08 (laatste wijziging 07/04/2006 21:09)
Avatar van Freaky_Davy Nieuw lid ik gebruik dit pagina systeem zeer handig en het beveiligd ook tegen rechtstreeks openen.
voor het menu kunde gewoon:

<a href="?pagina=link">linknaam</a>


pagina script
  1. <? if($_GET['pagina'] == "")
  2. {
  3. include("paginas/home.php");
  4. }
  5. elseif(strstr($_GET['pagina'],"admin") || strstr($_GET['pagina'],"index") || strstr($_GET['pagina'],".."))
  6. {
  7. include("paginas/error.php");
  8. }
  9. elseif(file_exists("paginas/".$_GET['pagina'].".php"))
  10. {
  11. include("paginas/".$_GET['pagina'].".php");
  12. }
  13. elseif(file_exists("paginas/".$_GET['pagina'].""))
  14. {
  15. include("paginas/".$_GET['pagina']."");
  16. }
  17. else
  18. {
  19. include("paginas/error.php");
  20. }
  21. ?>


beveiliging
  1. <?php if(empty($_GET['pagina']))
  2. {
  3. echo "Deze pagina mag niet rechtstreeks geopend worden.";
  4. }
  5. ?>
Offline Rob - 07/04/2006 21:10
Avatar van Rob HTML interesse Freaky_Davy, waar zet je die beveiliging dan?
Offline Freaky_Davy - 07/04/2006 21:11 (laatste wijziging 07/04/2006 21:12)
Avatar van Freaky_Davy Nieuw lid bovenaan elke pagina die niet rechtstreeks geopend mag worden

wat je nog wel moet doen is:
een map paginas aanmaken en daar uw scripting inzette
behalve index.php , functies.php, style. css, ...
Offline Ch0coschijt - 07/04/2006 21:12
Avatar van Ch0coschijt HTML interesse beveiliging zou je ook defined kunnen gebruiken dus op index.php
define('by_index', 1);'

en op paginas die niet rechtstreeks mogen geopend worden
  1. <?
  2. if( !defined( 'by_index' ) )
  3. {
  4. header( 'location: ../index.php' );
  5. exit;
  6. }
  7. ?>
Offline Rob - 07/04/2006 21:18
Avatar van Rob HTML interesse Maar ik heb geen pagina's die beveiligd hoeven worden, dus dan hoef ik dat niet te gebruiken?
Offline Freaky_Davy - 07/04/2006 21:22
Avatar van Freaky_Davy Nieuw lid dat hoeft niet 
Offline Simon - 07/04/2006 22:21
Avatar van Simon PHP expert http://www.site...&id=46

zucht, ik wordt er ziek van dat leden hier gewoon een scriptje nemen en dan vragen over stellen terwijl de kennis ontbreekt, niet persoonlijk gericht, maar algemeen
leer eerst tutorials voor je scripts begint gebruiken, dat je tenminste begrijp wat erin staat
Offline Rob - 10/04/2006 17:16 (laatste wijziging 10/04/2006 17:51)
Avatar van Rob HTML interesse Ik heb even wat tuts doorgelezen, geprobeerd en nu heb ik het door. Bedankt allemaal.

EDIT: De plek waar ik dit script wil zetten include ik in alle bestanden die ik heb.

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


Dit zet ik nu neer i.p.v. <?php include("menu.php"); ?>

Als resultaat krijg ik dit: http://www.ngame.nl/site/menu.php?pagina=crew

Wat doe ik fout?
Offline Ultimatum - 10/04/2006 18:01
Avatar van Ultimatum PHP expert in de paginas die jei nclude moet alleen de tekst staan die je wil laten zien, dus je moet niet de de tekst in de layout zelf zetten en dan die hele pagina opslaan

het principe is eigelijk (als je dat niet wist ), tekst inladen in een bepaald gebied zonder gebruik te maken van iframes oid 
Offline Rob - 10/04/2006 18:30 (laatste wijziging 10/04/2006 20:09)
Avatar van Rob HTML interesse Nu krijg ik alleen een witte pagina zonder mijn layout: http://www.ngame.nl/site/menu.php?pagina=crew 

Wat doe ik fout?
Offline vinTage - 10/04/2006 20:14
Avatar van vinTage Nieuw lid Als je http://www.ngame.nl/?pagina=crew zo gaat, dan zie je dat het "pad" naar je menu.php niet goed/gevonden is.
Offline Rob - 10/04/2006 20:21
Avatar van Rob HTML interesse De copyright, linkpartners en het menu include ik allemaal. Als er iets veranderd moet worden is het makkelijker om zo te doen zonder dat ik alle pagina's moet veranderen.

Die drie bestanden staan in een map genaamd site.
De code heb ik in menu.php gezet, de links in home.php en de bestanden heb ik ook in de map site gezet.

Hoe moet ik er dan voor zorgen dat ik toch makkelijk dit script kan gebruiken?

O ja, ik heb veel verschillende mappen voor elke console (die allemaal een index.php hebben.
Offline Simon - 10/04/2006 20:26
Avatar van Simon PHP expert kun je eens de index.php code geven desnoods op pastebin als hij meer dan 50-100 lijnen is...
dan kunnen we es kijken hoe je het include
Offline Rob - 10/04/2006 20:29
Avatar van Rob HTML interesse Ik heb die code niet erin gezet op index.php (degene die je als hoofdpagina ziet), maar hier is ie:

http://www.pastebin.be/863/
Offline vinTage - 10/04/2006 20:33
Avatar van vinTage Nieuw lid Je gaat de mist in bij het includen van je menu.php

Als je een linkje aanklikt op menu.php dan opent die zichzelf...
Je moet die menu.php gewoon blank maken en hem laten includen door het script waar dit topic oorspronkelijk om begon.
Je moet dan op de plaats waar je nu die menu.php include, gewoon die linkjes zetten.
Offline Rob - 10/04/2006 20:34
Avatar van Rob HTML interesse Maar dat zou betekenen al zou er een link bijkomen, dat ik dat in alle bestanden moet gaan aanpassen?
Offline vinTage - 10/04/2006 20:35
Avatar van vinTage Nieuw lid je hoeft niet zoveel aan te passen..
Die menu.php die roep je gewoon op in het "content" gedeelte net zoals je met de rest doet.

Verder waar je menu.php nu hebt staan maak je gewoon linkjes
Offline Rob - 10/04/2006 20:47 (laatste wijziging 10/04/2006 20:48)
Avatar van Rob HTML interesse Volgens mij is het nu goed. http://www.ngame.nl

En hoe kan ik het kopje waar nu Home staat veranderen in Crew?
Offline vinTage - 10/04/2006 20:48
Avatar van vinTage Nieuw lid open je favoriete text editor.... 
Offline Rob - 10/04/2006 20:57 (laatste wijziging 10/04/2006 21:17)
Avatar van Rob HTML interesse Maar, die pagina's (crew en contact) die vul ik gewoon leeg in en dit is de code voor het kopje:

  1. <!-- Titel -->
  2. <tr>
  3. <td colspan="2" rowspan="2">
  4. <img src="images/index_20.gif" width="25" height="32" alt=""></td>
  5. <td colspan="9"><b>Home</b></td>
  6. <td colspan="2" rowspan="2">
  7. <img src="images/index_22.gif" width="32" height="32" alt=""></td>
  8. <td colspan="4" rowspan="2">
  9. <img src="images/index_23.gif" width="176" height="32" alt=""></td>
  10. <td rowspan="2">
  11. <img src="images/index_24.gif" width="22" height="32" alt=""></td>
  12. </tr>
  13. <!-- /Titel -->


Dat staat niet in crew.php en contact.php dus dan kan ik dat toch niet veranderen? 
Offline Simon - 10/04/2006 21:19
Avatar van Simon PHP expert je zou kunnen daar een variabele steken $titel

en dan if($_GET['pagina'] == "home.php") { $titel = "Home"; } elseif..
enzovoort
Offline Rob - 10/04/2006 21:55 (laatste wijziging 10/04/2006 22:44)
Avatar van Rob HTML interesse
  1. if($_GET['pagina'] == "home.php") { $titel = "Home"; } elseif($_GET['pagina'] == "crew.php") { $titel = "Crew"; } elseif($_GET['pagina'] == "contact.php") { $titel = "Contact"; }


Op die manier?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.319s