links und include - Problem

testarrow

Mitglied
Hallo

erstmal: ich bin in Sachen PHP noch ein Anfänger.

habe auf einer Homepage verschiedene Links die so aussehen:

Code:
<? {echo '<a href="'.$PHP_SELF.'?asd1=1">.asd1</a>';}?>

und

Code:
<? {echo '<a href="'.$PHP_SELF.'?asd2=1">.asd2</a>';}?>

und in dem Hauptbereich habe ich den folgenden Code:

Code:
<? 
if($_GET['asd2'] == 1 )
{
include 'asd2.php';
}

if($_GET['asd1'] == 1 ) 
{
include 'asd1.php';
}

else 
{
echo'<font>Bitte wähle einen Unterbereich aus!</font>';
} 
?>

Mein Problem ist, dass am Anfang zwar das Richtige angezeigt wird ( Bitte wähle... ), doch wenn man auf "asd2" klickt wird asd2+echo angezeigt. asd1 funktioniert.

Wo liegt das Problem?
Warum reagiert "erkennt" "else" nicht das schon "include 'asd2.php';" schon aktiv ist ?

Sorry wenn es das thema schonmal gab. Habe nichts gefunden.

greetz

rec
 
Weil du zwei verschiedene Abfragen hast. Du überprüfst zunächst einmal, ob asd2 gesetzt ist. Wenn ja, includet er das entsprechende File. Dann machst du eine – von der ersten Abfrage völlig unabhängige – Fallunterscheidung: Wenn asd1 gesetzt ist, include asd1.php. In jedem anderen Fall (also auch, wenn asd2 gesetzt ist), gib das echo aus.

Besser würde es wohl so funktionieren:
PHP:
<?
if ($_GET['asd1'] == 1) {
    include('asd1.php');
} elseif ($_GET['asd2'] == 1) {
    include('asd2.php');
} else {
    echo '<font>Bitte wähle einen Unterbereich aus!</font>';
}
?>
Übrigens ist mir recht schleierhaft, was der leere font-Tag bewirken soll.
 
SilentWarrior hat gesagt.:
Besser würde es wohl so funktionieren:
PHP:
<?
if ($_GET['asd1'] == 1) {
    include('asd1.php');
} elseif ($_GET['asd2'] == 1) {
    include('asd2.php');
} else {
    echo '<font>Bitte wähle einen Unterbereich aus!</font>';
}
?>
Übrigens ist mir recht schleierhaft, was der leere font-Tag bewirken soll.

Vielen Dank SilentWarrior.
Das hat mein Problem gelöst. Habe es auch verstanden.

Der leere font-Tag soll da direkt nichgts bewirken. Doch ich hatte font in einer externen css definiert. Habe es oben einfach vergessen rauszunehmen.
 
Zurück