Hi,
<?php
switch ($_GET['p']) {
case 'test' : $inhalt = array('content/test.php', 'Test');
break;default : $inhalt = array('content/leer.php', 'Startseite');
}
?>
Wenn an die Seite kein Paramter "p" übergeben wird ist $\_GET['p'] selbstverständlich undefined.
Du musst also prüfen ob $\_GET['p'] gesetzt ist (mit isset()), und falls nicht in diesem Fall wohl am einfachsten einen Defaultwert zuweisen.
~~~php
<?php
// Wenn URL-Paremter "p" nicht gesetzt ist Default-Wert setzen.
if(!isset($_GET['p']){
$_GET['p'] = '';
}
switch ($_GET['p']) {
case 'test' : $inhalt = array('content/test.php', 'Test');
break;
default : $inhalt = array('content/leer.php', 'Startseite');
}
?>
Oder kürzer mit dem ternären Operator:
<?php
switch (isset($_GET['p']) ? $_GET['p'] : '') {
case 'test' : $inhalt = array('content/test.php', 'Test');
break;
default : $inhalt = array('content/leer.php', 'Startseite');
}
?>
Oder, Möglichkeit 3, falls default ausgeführt werden soll falls $_GET['p'] nicht gesetzt ist so:
<?php
// Wenn URL-Paremter "p" gesetzt ist entsprechend des Wertes Inhalt setzen.
if(isset($_GET['p']){
switch ($_GET['p']) {
case 'test' : $inhalt = array('content/test.php', 'Test');
break;
// "Seite nicht gefunden"-Seite
default : $inhalt = array('content/404.php', '404');
}
}else{
// Falls Kein URL-Parameter "p" gesetzt ist die Startseite anzeigen.
$inhalt = array('content/leer.php', 'Startseite');
}
?>
<?php
if (isset($_GET['p'])) $p = $_GET['p'];
switch ($p) {
case 'test' : $inhalt = array('content/test.php', 'Test');
break;default : $inhalt = array('content/leer.php', 'Startseite');
}
?>
>
> so nun bekommt ich aber folgende Fehlermeldung:
> Notice: Undefined variable: p in G:\xampp\htdocs\templer\content.php on line 4
$p wird ja auch nur gesetzt falls $\_GET['p'] gesetzt ist.
Gleiches Problem wie oben, nur jetzt eben mit $p.
Umkopieren von Variablen ist prinzipiell übrigens unnötig.
~dave