Pagina Script
Rob - 07/04/2006 20:43
HTML interesse
<?php
if(isset($_GET['pagina'])) {
switch(strtolower($_GET['pagina'])){
case "home": include "home.php"; break;
default: include "error.php" ; break;
}
}
else {
include "home.php";
}
?>
<?php
if ( isset ( $_GET [ 'pagina' ] ) ) { case "home" : include "home.php" ; break ;
default : include "error.php" ; break ;
}
}
else {
include "home.php" ;
}
?>
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
gothmog - 07/04/2006 20:47
Lid
meestal zet je deze op de index.php
vb.
<html>
<head>
</head>
<body>
<?php
if(isset($_GET['pagina'])) {
switch(strtolower($_GET['pagina'])){
case "home": include "home.php"; break;
default: include "error.php" ; break;
}
}
else {
include "home.php";
}
?>
</body>
</html>
<html>
<head>
</head>
<body>
<?php
if ( isset ( $_GET [ 'pagina' ] ) ) { case "home" : include "home.php" ; break ;
default : include "error.php" ; break ;
}
}
else {
include "home.php" ;
}
?>
</body>
</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>
Rob - 07/04/2006 20:52
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:
<?php
if(isset($_GET['pagina'])) {
switch(strtolower($_GET['pagina'])){
case "nintendo": include "nintendo.php"; break;
default: include "error.php" ; break;
}
}
else {
include "nintendo.php";
}
?>
<?php
if ( isset ( $_GET [ 'pagina' ] ) ) { case "nintendo" : include "nintendo.php" ; break ;
default : include "error.php" ; break ;
}
}
else {
include "nintendo.php" ;
}
?>
En dan link je als: <a href="?pagina=nintendo">Nintendo</a>
Ch0coschijt - 07/04/2006 20:56 (laatste wijziging 07/04/2006 20:58)
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 )
<?
$pExpressie = "(http:|ftp:|shttp:|www.|.php|.pl|.cgi|.asp|index.php)";
if(isset($_GET['p'])) {
if(eregi($pExpressie,$_GET['p'])) {
echo "Ongeldige pagina opgegeven.";
}
else {
$p = $_GET["p"].".php";
if(file_exists($p)) {
include($p);
}
else {
include("modules/nieuws/headlines.php");
}
}
}
else {
include("modules/nieuws/headlines.php");
}
?>
<?
$pExpressie = "(http:|ftp:|shttp:|www.|.php|.pl|.cgi|.asp|index.php)" ;
if ( eregi ( $pExpressie , $_GET [ 'p' ] ) ) { echo "Ongeldige pagina opgegeven." ; }
else {
$p = $_GET [ "p" ] . ".php" ;
include ( $p ) ;
}
else {
include ( "modules/nieuws/headlines.php" ) ;
}
}
}
else {
include ( "modules/nieuws/headlines.php" ) ;
}
?>
gothmog - 07/04/2006 20:58
Lid
@Ch0coschijt
index.php?pagina=nitendo.php is fout.
er staat duidelijk
case "nintendo"
dus het moet zijn:
index.php?pagina=nitendo
Ch0coschijt - 07/04/2006 20:59
HTML interesse
hoezo hij zegt dat hij dat stukie in nitendo.php zet inplaats van index dat klopt toch nie?
lasdesigner - 07/04/2006 21:07 (laatste wijziging 07/04/2006 21:08)
PHP beginner
Dit is toch veel makkelijker, Minder veilig misschien;)
<?php
if(isset($_GET['pagina'])) {
include($_GET['pagina'].".php");
} else {
include('index.php');
}
//Aanroepen door <a href='index.php?pagina=test'>Test</a>
?>
<?php
if ( isset ( $_GET [ 'pagina' ] ) ) { include ( $_GET [ 'pagina' ] . ".php" ) ;
} else {
include ( 'index.php' ) ;
}
//Aanroepen door <a href='index.php?pagina=test'>Test</a>
?>
Freaky_Davy - 07/04/2006 21:08 (laatste wijziging 07/04/2006 21:09)
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
<? if($_GET['pagina'] == "")
{
include("paginas/home.php");
}
elseif(strstr($_GET['pagina'],"admin") || strstr($_GET['pagina'],"index") || strstr($_GET['pagina'],".."))
{
include("paginas/error.php");
}
elseif(file_exists("paginas/".$_GET['pagina'].".php"))
{
include("paginas/".$_GET['pagina'].".php");
}
elseif(file_exists("paginas/".$_GET['pagina'].""))
{
include("paginas/".$_GET['pagina']."");
}
else
{
include("paginas/error.php");
}
?>
<? if ( $_GET [ 'pagina' ] == "" )
{
include ( "paginas/home.php" ) ;
}
elseif ( strstr ( $_GET [ 'pagina' ] , "admin" ) || strstr ( $_GET [ 'pagina' ] , "index" ) || strstr ( $_GET [ 'pagina' ] , ".." ) ) {
include ( "paginas/error.php" ) ;
}
{
include ( "paginas/" . $_GET [ 'pagina' ] . ".php" ) ;
}
{
include ( "paginas/" . $_GET [ 'pagina' ] . "" ) ;
}
else
{
include ( "paginas/error.php" ) ;
}
?>
beveiliging
<?php if(empty($_GET['pagina']))
{
echo "Deze pagina mag niet rechtstreeks geopend worden.";
exit;
}
?>
<?php if ( empty ( $_GET [ 'pagina' ] ) ) {
echo "Deze pagina mag niet rechtstreeks geopend worden." ; }
?>
Rob - 07/04/2006 21:10
HTML interesse
Freaky_Davy, waar zet je die beveiliging dan?
Freaky_Davy - 07/04/2006 21:11 (laatste wijziging 07/04/2006 21:12)
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, ...
Ch0coschijt - 07/04/2006 21:12
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
<?
if( !defined( 'by_index' ) )
{
header( 'location: ../index.php' );
exit;
}
?>
<?
{
header ( 'location: ../index.php' ) ; }
?>
Rob - 07/04/2006 21:18
HTML interesse
Maar ik heb geen pagina's die beveiligd hoeven worden, dus dan hoef ik dat niet te gebruiken?
Simon - 07/04/2006 22:21
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
Rob - 10/04/2006 17:16 (laatste wijziging 10/04/2006 17:51)
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.
<?php
if(isset($_GET['pagina'])) {
switch(strtolower($_GET['pagina'])){
case "home": include "../site/home.php"; break;
case "games": include "../nintendo/gamesa.php"; break;
case "crew": include "../site/crew.php"; break;
case "contact": include "../site/contact.php"; break;
default: include "../site/error.php" ; break;
}
}
else {
include "home.php";
}
?>
<?php
if ( isset ( $_GET [ 'pagina' ] ) ) { case "home" : include "../site/home.php" ; break ;
case "games" : include "../nintendo/gamesa.php" ; break ;
case "crew" : include "../site/crew.php" ; break ;
case "contact" : include "../site/contact.php" ; break ;
default : include "../site/error.php" ; break ;
}
}
else {
include "home.php" ;
}
?>
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?
Rob - 10/04/2006 20:21
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.
Simon - 10/04/2006 20:26
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
Rob - 10/04/2006 20:29
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 /
vinTage - 10/04/2006 20:33
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.
Rob - 10/04/2006 20:34
HTML interesse
Maar dat zou betekenen al zou er een link bijkomen, dat ik dat in alle bestanden moet gaan aanpassen?
vinTage - 10/04/2006 20:35
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
Rob - 10/04/2006 20:47 (laatste wijziging 10/04/2006 20:48)
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?
Rob - 10/04/2006 20:57 (laatste wijziging 10/04/2006 21:17)
HTML interesse
Maar, die pagina's (crew en contact) die vul ik gewoon leeg in en dit is de code voor het kopje:
<!-- Titel -->
<tr>
<td colspan="2" rowspan="2">
<img src="images/index_20.gif" width="25" height="32" alt=""></td>
<td colspan="9"><b>Home</b></td>
<td colspan="2" rowspan="2">
<img src="images/index_22.gif" width="32" height="32" alt=""></td>
<td colspan="4" rowspan="2">
<img src="images/index_23.gif" width="176" height="32" alt=""></td>
<td rowspan="2">
<img src="images/index_24.gif" width="22" height="32" alt=""></td>
</tr>
<!-- /Titel -->
<!-- Titel -->
< tr>
< td colspan= "2" rowspan= "2" >
< img src= "images/index_20.gif" width= "25" height= "32" alt= "" ></ td>
< td colspan= "9" >< b> Home</ b></ td>
< td colspan= "2" rowspan= "2" >
< img src= "images/index_22.gif" width= "32" height= "32" alt= "" ></ td>
< td colspan= "4" rowspan= "2" >
< img src= "images/index_23.gif" width= "176" height= "32" alt= "" ></ td>
< td rowspan= "2" >
< img src= "images/index_24.gif" width= "22" height= "32" alt= "" ></ td>
</ tr>
<!-- / Titel -->
Dat staat niet in crew.php en contact.php dus dan kan ik dat toch niet veranderen?
Simon - 10/04/2006 21:19
PHP expert
je zou kunnen daar een variabele steken $titel
en dan if($_GET['pagina'] == "home.php") { $titel = "Home"; } elseif..
enzovoort
Rob - 10/04/2006 21:55 (laatste wijziging 10/04/2006 22:44)
HTML interesse
if($_GET['pagina'] == "home.php") { $titel = "Home"; } elseif($_GET['pagina'] == "crew.php") { $titel = "Crew"; } elseif($_GET['pagina'] == "contact.php") { $titel = "Contact"; }
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 .