Automatisch laden van home.php bij laden index.php (2)
Onderstaande code (met dank aan Vincent en Milo) zorgt er al voor dat vanuit een menukader de pagina's "Home"en "Contact" worden geopend op dezelfde pagina en dat bovendien bij het openen van de pagina automatisch het bestand "home.php"wordt geladen.
Code (php)
De laatste "include"zorgt echter nog steeds voor de foutmelding "Warning: include(.php) [function.include]: failed to open stream:..."
Verwijder ik deze dan is het inladen van de pagina's vanuit het menu niet meer mogelijk.
Gaat volgens mij nog om een detail, maar hoe moet de code worden aangepast zodat:
- de foutmelding verdwijnt
- het menu gewoon blijft werken
- en de situatie zo blijft dat home.php automatisch als eerste wordt geladen
Al eens geprobeerd te surfen naar
index.php?page=index ?
Wat je best doet, is een aantal toegelaten waarden in een switch zetten (eventueel in een array).
Code (php)
Wat je ook kan doen, is alle includebare pagina's in een map zetten. Dan kan je index niet zomaar proberen includen.
Gewijzigd op 30/11/2010 11:40:09 door Kris Peeters
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
# De links
echo '<a href="?page=home">Home</a> | <a href="?page=contact">Contact</a><br />';
# Weergeven de pagina + een lijn
echo 'De pagina: <br /><hr><br />';
# Pagina invoegen
if(isset($_GET['page']))
{
if(file_exists($_GET['page']))
{
include $_GET['page'].".php";
include($_GET['page'].'.php');
}
}
else
{
include "home.php";
}
?>
# De links
echo '<a href="?page=home">Home</a> | <a href="?page=contact">Contact</a><br />';
# Weergeven de pagina + een lijn
echo 'De pagina: <br /><hr><br />';
# Pagina invoegen
if(isset($_GET['page']))
{
if(file_exists($_GET['page']))
{
include $_GET['page'].".php";
include($_GET['page'].'.php');
}
}
else
{
include "home.php";
}
?>
Hiermee verdwijnt de foutmelding inderdaad en de pagina opent met home.php.
Menu werkt nu echter geheel niet.
Je bedoeld php.resourceindex.com Kris?
Toevoeging op 30/11/2010 12:18:44:
Beschouw regel 11 als weggelaten. Resultaat blijft hetzelfde.
Jij gaat er van uit dat elke php file een pagina is die je hoort te includen. Misschien is dat bij jou het geval (op index.php na uiteraard), maar dat is niet standaard.
Over het algemeen zijn er nog php files waar enkel classes of functies staan.
Werkt nu naar behoren!
Je hebt gelijk Kris. Beschouw inderdaad de php's als afzonderlijke pagina's. Beetje de frame-denkwijze misschien? Werkt voor mijn situatie tot zover prima, maar ben er al wel achter dat ik mij eens behoorlijk verder moet gaan verdiepen in php.
Bedankt tot zover.