Pagina script.
Dit is een verkorte versie, voor als je veel pagina's hebt
Gesponsorde koppelingen
Inhoudsopgave
27 reacties op 'Pagina script.'
Gesponsorde koppelingen
@Sebastiaan
Ik wou net zeggen, ik doe dit bewust zo. En zoals ik al aangaf heb ik deze tut gemaakt, omdat ik in die andere tutorials over dit onderwerp alleen maar SWITCH, CASE oplossingen zag. Deze oplossing doet in principe precies hetzelfde, maar is een stuk korter wanneer iemand met een groot aantal verschillende "interne" pagina's voor zijn website heeft. (zie nb. stukje aan het eind van de tut.)
@Boaz
In het formulier werk je dan op deze manier (zal ik ook ff toevoegen aan de tut).
@Jip
Ik weet dat er met OOP ook een mooie (en korte) oplossing is. Maar niet iedereen kan OOP, ook niet iedereen wil de tijd nemen om dat te leren (ben ik zelf een voorbeeld van, maar bij ons op school hoeven BI'ers (Bedrijfskundige Informatici) geen OOP te leren, ook niet met PHP, terwijl de HI'ers (Hogere Informatici) en TI'ers (Technische Informatici) dat wel leren.
En wat dat van controle betreft, ik controleer wel degelijk, je kan alleen toegestane pagina's includen, net als met de SWITCH methode.
@PurpleMadness
Dat was ook wat ik eerst deed, maar door ff logisch na te denken, kom je al vrij gauw tot een kortere oplossing en ik kwam toevallig met deze.
Ik wou net zeggen, ik doe dit bewust zo. En zoals ik al aangaf heb ik deze tut gemaakt, omdat ik in die andere tutorials over dit onderwerp alleen maar SWITCH, CASE oplossingen zag. Deze oplossing doet in principe precies hetzelfde, maar is een stuk korter wanneer iemand met een groot aantal verschillende "interne" pagina's voor zijn website heeft. (zie nb. stukje aan het eind van de tut.)
@Boaz
In het formulier werk je dan op deze manier (zal ik ook ff toevoegen aan de tut).
Code (php)
1
2
3
2
3
<?php
echo '<form name="naam" action="pagina.php?pagina='.$pagina.'" method="post">';
?>
echo '<form name="naam" action="pagina.php?pagina='.$pagina.'" method="post">';
?>
@Jip
Ik weet dat er met OOP ook een mooie (en korte) oplossing is. Maar niet iedereen kan OOP, ook niet iedereen wil de tijd nemen om dat te leren (ben ik zelf een voorbeeld van, maar bij ons op school hoeven BI'ers (Bedrijfskundige Informatici) geen OOP te leren, ook niet met PHP, terwijl de HI'ers (Hogere Informatici) en TI'ers (Technische Informatici) dat wel leren.
En wat dat van controle betreft, ik controleer wel degelijk, je kan alleen toegestane pagina's includen, net als met de SWITCH methode.
@PurpleMadness
Dat was ook wat ik eerst deed, maar door ff logisch na te denken, kom je al vrij gauw tot een kortere oplossing en ik kwam toevallig met deze.
ik heb hiervoor een class gemaakt die gewoon checkt of de pagina bestaat, niet op de blacklist staat, en ook geen ../ in zich heeft, dan hoef je die array er ook niet meer in te stoppen, en hoef je dus niet bij iedere nieuwe pagina je include scriptje aan te passen. (dit stukje code uit je tutorial heb ik wel een paar keer als voorbeeld gebruikt in het forum, maar dat was voordat ik die class maakte ^^)
Tjah, misschien was het wel slim geweest om er ook ff een check in te bouwen dat die kijkt of de pagina bestaat. Ik gebruik het zelf ook wel eens als voorbeeld, maar zoals ik al zei ken ik geen OOP (en dat is volgens mij precies waar je mee bezig bent als je die class maakt) en is dit ook meer een script voor mijn mede niet-OOP-ers. ;)
Is dat zo? Als je nu met google werkt, kom je gewoon op je hoofdpagina uit hoor. (als je bijv pagina.php?pagina=pagina1 zou intikken, laadt die alles, dus ook je header en footer) en je ziet niet elke keer een andere pagina naam (bijv pagina.php --> nieuws.php --> gastenboek.php)
Verder heb je wel een beetje gelijk, alleen gaat het zo ook wel goed ;) Maar google vindt ook links als pagina.php?id=2131 bijvoorbeeld, dus pakt die dit ook wel. (zoek maar eens op php include met google en zie de link naar het 7e gevonden item) Ja, die mensen bij google zijn echt goed ;)
Verder heb je wel een beetje gelijk, alleen gaat het zo ook wel goed ;) Maar google vindt ook links als pagina.php?id=2131 bijvoorbeeld, dus pakt die dit ook wel. (zoek maar eens op php include met google en zie de link naar het 7e gevonden item) Ja, die mensen bij google zijn echt goed ;)
@Thijs: Dit script helpt je om het gedeelte rondom de eigenlijke content in 1 bestand te houden. Denk hierbij aan het logo, het navigatiemenu, de footer met disclaimer, etc. Bij gebruik van dit script hoef je deze code niet voor elke pagina apart te kopi?ren (en te wijzigen, mocht een aanpassing nodig zijn).
Hoi,
Bedankt voor deze tut. Ik heb alleen 1 vraagje.
Als ik gewoon naar http://localhost/test ga dan opend ie gewoon index.php en krijg ik een foutmelding.
Notice: Undefined variable: pagina in D:\server\Apache2\htdocs\test\menu_var.php on line 13
Alles wordt goed weergegeven, maar tussen me buttons en me tekst van default.php staat die foutmelding.
Als ik http://localhost/test/index.php?page=default doe. dan krijg ik hem wel gewoon weergegeven zonder foutmelding. Moet ik nog ergens aangeven dat me gewone index.php me home pagina is??
hier is me menu_var.php
Ik heb 'index' er later bijgezet dus dat is het niet.
en hier is me index.php
<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>
<BODY>
<TABLE WIDTH="90%" BGCOLOR="#EEEEEE">
<TR>
<TD>
</TD>
</TR>
<TR>
<TD>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
k snap er niets van. Kan iemand mij helpen
BTW. Ik heb menu_var.php gemaakt en deze geinclude in me index.php (zou moeten werken toch.
De links doen het trouwens ook gewoon. Het is alleen die foutmelding die ik krijg.
Bedankt voor deze tut. Ik heb alleen 1 vraagje.
Als ik gewoon naar http://localhost/test ga dan opend ie gewoon index.php en krijg ik een foutmelding.
Notice: Undefined variable: pagina in D:\server\Apache2\htdocs\test\menu_var.php on line 13
Alles wordt goed weergegeven, maar tussen me buttons en me tekst van default.php staat die foutmelding.
Als ik http://localhost/test/index.php?page=default doe. dan krijg ik hem wel gewoon weergegeven zonder foutmelding. Moet ik nog ergens aangeven dat me gewone index.php me home pagina is??
hier is me menu_var.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
// toegestane pagina's in een array zetten
$authorised = array("login","upload","register","index");
// controleren of er een pagina is meegegeven)
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $authorised))
{
// wanneer die toegestaan is includen
include($pagina.".php");
}
else
{
// wanneer die niet toegestaan is standaard pagina includen.
include("home.php");
}
?>
// toegestane pagina's in een array zetten
$authorised = array("login","upload","register","index");
// controleren of er een pagina is meegegeven)
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $authorised))
{
// wanneer die toegestaan is includen
include($pagina.".php");
}
else
{
// wanneer die niet toegestaan is standaard pagina includen.
include("home.php");
}
?>
Ik heb 'index' er later bijgezet dus dat is het niet.
en hier is me index.php
<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>
<BODY>
<TABLE WIDTH="90%" BGCOLOR="#EEEEEE">
<TR>
<TD>
</TD>
</TR>
<TR>
<TD>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
k snap er niets van. Kan iemand mij helpen
BTW. Ik heb menu_var.php gemaakt en deze geinclude in me index.php (zou moeten werken toch.
De links doen het trouwens ook gewoon. Het is alleen die foutmelding die ik krijg.
Dat komt omdat $_GET['page'] dan nog leeg is.
Zit hierin:
En kan je oplossen door bovenstaande te vervangen door onderstaande:
Je kan die error ook negeren (het is dan ook geen error, maar een notice).
Zit hierin:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
?>
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
?>
En kan je oplossen door bovenstaande te vervangen door onderstaande:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
} else {
$pagina = 'default'; // of index
}
?>
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
} else {
$pagina = 'default'; // of index
}
?>
Je kan die error ook negeren (het is dan ook geen error, maar een notice).
Het foutje is opgelost.
@Kasper Bedankt, maar dat was dus niet de fout.
Ik heb het scriptje niet goed gecopieerd. Ik had:
Maar als ik hier kijk zie ik dat er 2 keer achter elkaar if staat.
1e
// controleren of er een pagina is meegegeven)
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
2e
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $authorised))
{
// wanneer die toegestaan is includen
include($pagina.".php");
}
Toen keek ik (na al 10 keer te hebben gekeken) nog een keer de tut na of ik iets fout had gedaan en zag dat
Een appart stukje PHP was. Ik heb de ?php gesloten en daarna weer geopend.
Ziet er nu zo uit en het werkt;
@Kasper Bedankt, maar dat was dus niet de fout.
Ik heb het scriptje niet goed gecopieerd. Ik had:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
// toegestane pagina's in een array zetten
$authorised = array("login","upload","register","index");
// controleren of er een pagina is meegegeven)
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $authorised))
{
// wanneer die toegestaan is includen
include($pagina.".php");
}
else
{
// wanneer die niet toegestaan is standaard pagina includen.
include("home.php");
}
?>
// toegestane pagina's in een array zetten
$authorised = array("login","upload","register","index");
// controleren of er een pagina is meegegeven)
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $authorised))
{
// wanneer die toegestaan is includen
include($pagina.".php");
}
else
{
// wanneer die niet toegestaan is standaard pagina includen.
include("home.php");
}
?>
Maar als ik hier kijk zie ik dat er 2 keer achter elkaar if staat.
1e
// controleren of er een pagina is meegegeven)
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
2e
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $authorised))
{
// wanneer die toegestaan is includen
include($pagina.".php");
}
Toen keek ik (na al 10 keer te hebben gekeken) nog een keer de tut na of ik iets fout had gedaan en zag dat
Code (php)
1
2
3
4
2
3
4
<?php
// toegestane pagina's in een array zetten
$authorised = array("login","upload","register","index");
?>
// toegestane pagina's in een array zetten
$authorised = array("login","upload","register","index");
?>
Een appart stukje PHP was. Ik heb de ?php gesloten en daarna weer geopend.
Ziet er nu zo uit en het werkt;
Code (php)
1
2
3
4
2
3
4
<?php
// toegestane pagina's in een array zetten
$authorised = array("login","upload","register");
?>
// toegestane pagina's in een array zetten
$authorised = array("login","upload","register");
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// controleren of er een pagina is meegegeven)
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $authorised))
{
// wanneer die toegestaan is includen
include($pagina.".php");
}
else
{
// wanneer die niet toegestaan is standaard pagina includen.
include('home.php');
}
?>
// controleren of er een pagina is meegegeven)
if (isset($_GET['page']))
{
// de binnengehaalde variabele omzetten naar kleine letters
$pagina = strtolower($_GET['page']);
}
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $authorised))
{
// wanneer die toegestaan is includen
include($pagina.".php");
}
else
{
// wanneer die niet toegestaan is standaard pagina includen.
include('home.php');
}
?>
Heb je een foutmelding voor ons dus dit:
erboven zetten.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
// Zo begin je met een nieuw script !!!
ini_set ('display_errors', 1);
error_reporting (E_ALL);
?>
// Zo begin je met een nieuw script !!!
ini_set ('display_errors', 1);
error_reporting (E_ALL);
?>
erboven zetten.
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Robert Deiman- 8 jaar geleden
- 2.094 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP tutorials opties
- Overig
- Nieuwste PHP tutorials
- PHP tutorial toevoegen


PHP hulp
0 seconden vanaf nu