Ik heb een probleempje,, kben nog beginnner in php en ben beseig met een nieuwe site. Ik wil dat als je intypt
index.php?pagina=maaktnietuit.php dat hij maaktnietuit.php opent. Ik heb dit script daarvoor geschreven.
<table width="778" border="0" cellspacing="0" cellpadding="0" background="achtergrondtabel.GIF">
<tr>
<td background="kop.JPG" colspan="2" width="778" height="187">
</td></tr>
<tr><td td width="205" valign="top">
<?php
include('menu.php');
?>
</td>
<td width="573" valign="top">
<?php
switch (strtolower($_GET['pagina']))
{
case " . $_GET['pagina'] . ":
include(" . $_GET['pagina'] . ");
break;
default:
include("hoofd.php");
break;
}
?>

</td>
</tr>
<tr>
<td colspan="2" background="onder.GIF" width="778" height="95"><b>
<br><br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href='index?pagina=contact.php'>Contact</a> | <a href='index?pagina=links/aaanmelden.php'>Partner worden</a> | <a href='index?pagina=info.php'>Info</a>
<br></font></div>
</td>
</tr>
</table>
Maar hij geeft deze fout:


Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /usr/export/www/hosting/sebasjuh/website/index.php on line 19

Wie kan mij helpen??
Het gaat verkeerd bij de cases in je switch, hieronder heb ik je script wat verbeterd:

<?php
// PHP geeft nu alle errors op het scherm
error_reporting(E_ALL);

include 'menu.php';
?>
</td>
<td width="573" valign="top">
<?php

$sPagina = ( ( isset($_GET['pagina']) ) ? strtolower($_GET['pagina']) . '.php' : 'hoofd.php' );

// Bestaat de pagina wel, anders maken we van de pagina de hoofd pagina
if( !file_exists($sPagina) )
{
$sPagina = 'hoofd.php';
}

switch( $sPagina )
{
case 'maaktnietuit.php':
include 'maaktnietuit.php';
break;

default:
include 'hoofd.php';
}
?>
tnx,, en als ik nu naar
index.php?pagina=ietsanders
ga opent hij dan ietsanders.php
??
Dan moet je wel een extra case maken, je kunt het ook zo maken dat het script kijkt of "ietsanders" bestaat en dan opent, alleen dan kan iedereen een bestand openen, niet de bedoeling lijkt mij.

Je maakt dus in je switch het volgende:

<?php
case 'ietsanders.php':
include 'ietsanders.php';
break;
?>

Trouwens die 's' in $sPagina staat voor string, zo kun je makkelijk zien van wat voor type de variabele is.
jah,, dat snap k nog net wel:) maar ik bedoel datb als je achter index.php?pagina= iets willekeurigs typt,, hij dat opent... hoe moet ik dat doen?
Het is jou feestje, ik heb je gewaarschuwd ;D....

<?php
$sPagina = ( ( isset($_GET['pagina']) ) ? strtolower($_GET['pagina']) . '.php' : 'hoofd.php' );

// Bestaat de pagina wel, anders maken we van de pagina de hoofd pagina
if( file_exists($sPagina) )
{
include $sPagina;
}
else
{
include 'hoofd.php';
}
?>
tnx,, :D:D
Hopelijk doetie het:D
1000 X bedankt

Reageren