PHP include, wat doe ik fout?
Ik had mijn site eerst met behulp van frames gemaakt, maar nu heb ik hem omgezet naar divs. Daarbij wil ik gebruik maken van php include om te zorgen dat de links van mijn menu leiden tot het openen van een pagina in de contentdiv. Zoals vroeger een druk op een link zorgde voor het openen van een pagina in een iframe.
Nu heb ik op het internet al het een en ander opgezocht en dat uitgeprobeerd. Inmiddels is het met gelukt om de home pagina te includen, maar bij de andere links uit mijn menu lukt dat nog niet (ik heb alleen even de tweede link geprobeerd zoals jullie zien, maar die werkt dus niet).
Wat doe ik fout??
Hieronder heb ik de scripts van mn menu en mn content geplakt.
Ik hoop dat iemand mij kan helpen!
Mvg, Connie
Script menu:
<div id="menu">
<ul>
<li class="current_page_item"><a href="index.php?pagina=home">Home</a></li>
<div align="right"></div>
<li><a href="index.php?pagina=stichting">Kindervreugd Afrika</a></li>
<li><a href="projecten.html" target="rechts">Projecten</a></li>
<li><a href="nieuws.html"target="rechts">Nieuwsberichten</a></li>
<li><a href="foto.html" target="rechts">Foto's</a></li>
<li><a href="filmpjes2.html" target="rechts">Videos</a></li>
<li><a href="contact.html" target="rechts">Contact</a></li>
</ul>
</div>
Script content:
<div id="content">
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
/****** INSTELLINGEN ******/
$path = 'bestanden/'; // zet een slash achter de naam van de map
$default_page = 'home'; // zonder extensie
$page = isset( $_GET['page'] ) ? $_GET['page'] : $default_page;
$notallowed = array( '.', '\\', '/' );
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) and strpos( $page, '../' ) === false and strpos( $page, '..\\'
) === false )
{
include( $path . $page . '.php' );
}
else
{
include( $path . $default_page . '.php' );
}?>
/****** INSTELLINGEN ******/
$path = 'bestanden/'; // zet een slash achter de naam van de map
$default_page = 'home'; // zonder extensie
$page = isset( $_GET['page'] ) ? $_GET['page'] : $default_page;
$notallowed = array( '.', '\\', '/' );
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) and strpos( $page, '../' ) === false and strpos( $page, '..\\'
) === false )
{
include( $path . $page . '.php' );
}
else
{
include( $path . $default_page . '.php' );
}?>
</div>
En zet error_reporting() eens op E_ALL, ook display_errors in ini_set op 1 zetten is erg handig.
Als ik op de tweede link klik, laadt ie ook de home pagina.
Waarschijnlijk omdat ie die andere pagina niet kan vinden denk ik dan?
Maar ik ben maar een beginner en heb het php script ergens van het internet geplukt, dus ik begrijp nog niet helemaal wat je bedoelt met error reporting en display_errors. Kun je uitleggen waar dat moet komen te staan?
Het kan wel kloppen wat je zegt. verander de 2de include eens in echo 'Pagina niet gevonden.'; of iets in die richting. Het is een beetje misleidend op deze manier.
Dit: <a href="index.php?pagina=stichting"> geeft natuurlijk nooit $_GET['page'], maar $_GET['pagina'].
Waarom doe je niet in één keer je hele menu includen?
home.php
menu.in.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<a href="home.htm" class="knop alignmiddle"><b>Home</b></a>
<a href="inloggen.htm" class="knop"><b>Inloggen</b></a>
<a href="inloggen.htm" class="knop"><b>Curriculum vitae</b></a>
<a href="inloggen.htm" class="knop"><b>Sollicitatiebrief</b></a>
<a href="inloggen.htm" class="knop"><b>Spelletjes</b></a>
<a href="inloggen.htm" class="knop"><b>Gastenboek</b></a>
<a href="inloggen.htm" class="knop"><b>Contact</b></a>
<a href="inloggen.htm" class="knop"><b>Inloggen</b></a>
<a href="inloggen.htm" class="knop"><b>Curriculum vitae</b></a>
<a href="inloggen.htm" class="knop"><b>Sollicitatiebrief</b></a>
<a href="inloggen.htm" class="knop"><b>Spelletjes</b></a>
<a href="inloggen.htm" class="knop"><b>Gastenboek</b></a>
<a href="inloggen.htm" class="knop"><b>Contact</b></a>
In mijn stylesheet heb ik de menu gestyled!
Moet je sowieso niet .inc.php gebruiken? Want dat zie ik bij jou niet terug komen. Ik ben sowieso nieuw hier en ik programmeer pas 3-4 weken. Dus als ik dingen verkeerd zeg laat het me aub weten.
Groetjes Sven
Het was inderdaad dat het page moest zijn in plaats van pagina, domme fout! Super dat je het hebt opgemerkt Santhe!
Hij doet het nu!
Bedankt allemaal!
Waarom doe je het niet op mijn manier? Of gaat dat niet?
Sven b op 01/06/2011 23:34:41:
Waarom doe je het niet op mijn manier? Of gaat dat niet?
Dat was zijn vraag toch niet.
Ik wil er graag wat meer van leren.
Het is wel sneller en makkelijker maar als hij dat niet wil doet hij dat niet.
Ik ben trouwens een meisje, dus gelieve "zij" te gebruiken.
Met hij bedoelde ik de TS (TopicStarter)
Maarten Buijs op 02/06/2011 11:50:17:
Met hij bedoelde ik de TS (TopicStarter)
en toevallig is ZIJ de topicstarter.. -.-'
Gewijzigd op 02/06/2011 11:59:26 door Jason van der Zeeuw
sorry fout van mij excuus
Sowieso een leuke uitdaging.. Dus je wilde dat de links terug naar home.php verwees, maar dan een andere content includen ..
Groetjes sven