if elseif Bedingung

chrigu

chrigu

Aktives Mitglied
Thread Starter
Dabei seit
08.03.2004
Beiträge
155
Reaktionspunkte
0
Hallo

ich krieg schon auf der sechsten Zeile ein Parse error und kann mir nicht erklären warum?
PHP:
<?php
            if ($_GET['page'] == home)
            {
                if ($_GET['content'] == lebenslauf)
                {
                echo (include("navileiste"); include("tafel_main"); include("portrait"); include("lebenslauf"); include("endleiste"););
                }elseif
                {
                echo (include("navileiste"); include("tafel_main"); include("portrait"); include("endleiste"););
                }
            }
            elseif ($_GET['page'] == leistungen)
            {
            echo (include("navileiste"); include("endleiste"););
            }
            elseif ($_GET["page"] == referenz)
            {
            echo (include("navileiste"); include("endleiste"););
            }    
            elseif ($_GET['page'] == kontakt)
            {
            echo (include("navileiste"); include("endleiste"););
            }
            else 
            {
            echo (include("navileiste"); include("tafel_main"); include("portrait"); include("lebenslauf"); include("endleiste"););
            }
        ?>

Wer weiss Rat?
 
echo ( ... include("endleiste"));
schon versucht ?

oder echo "... include('endleiste')"
 
Wieso include() in ein echo() packen ? Falls das überhaupt geht .. evtl liegt da der Fehler. die include() Anweisungen ohne das echo() reichen doch aus.
 
ähm, wie hast du denn home, lebenslauf, leistungen usw. deklariert?!? das wundert mich grad etwas ; )
 
und ansonsten dieser ganze echo include-hokuspokus -> raus damit ...
 
Bei dem elseif fehlt die Bedingung, für das "if"
 
Also ohne es je ausprobiert zu haben, würde doch ein

echo("include(blabla.php); include(2.php);");

folgendes ausgeben: "include(blabla.php); include(2.php);"
Im echo() wird IMHO nicht geparst.
 
probiers mal mit
PHP:
else if ($wert1==$wert2)
{
   include("seite.php");
   include("seite2.php");
   include("...");
}
 
Naja, es ist ein bißchen unglücklich geschrieben ( ab dem 2ten elseif sollte man spätestens switch nehmen:
Code:
switch ($_GET['page'])
{
	case "homme":
		break;
	case "referenz":
		echo (include("navileiste"); include("endleiste"););
		break;
	default:
		echo "Fehlerhafter Seitenaufruf";
		exit;
}

das bringt schon mal etwas Struktur! Was soll diese Zeile tun:

echo (include("navileiste"); include("endleiste"););

Ich verstehe das nicht ganz! Zunächst ist in jedem Fall echo keine Funktion,
so daß es heissen müßte:

echo "include("navileiste"); include("endleiste");";

zum anderen geben nat. die Anweisungen im String keinen Sinn. Sollen hier Ausgaben aus anderen PHP-Dateien erscheinen? Dann tut's doch ein
Code:
include("navileiste.php");
include("endleiste.php");
Die echo/print-Anweisungen sollten dann dort enthalten sein.
 
Zuletzt bearbeitet:
Also mit der Funktion switch() hatte ich es am Anfang auch probiert nur war ich mir nicht sicher, ob man die Funktion wie die Bedingung mit if verschachteln kann. Würde gerne switch verwenden, darum nochmal mein Code mit switch(), der immer noch nicht geht, aber wir arbeiten daran :D

Ohne die integrierte switch($_GET["content") Funktion würde es funktionieren. Wie kann man switch($_GET["content") verschachteln?

PHP:
<?php
            switch($_GET['page'])
            {
                case "home" : include("navileiste"); include("tafel_main"); include("portrait"); 
                 switch($_GET["content"] 
                    {
                        case "lebenslauf" : include("lebenslauf");
                        break;
                        default : echo "";
                    }
                include("endleiste");
                break;
                case "leistungen" : include("navileiste"); include("endleiste");
                break;
                case "referenz" : include("navileiste"); include("endleiste");
                break;
                case "transfer" : include("navileiste"); include("endleiste");
                break;
                case "kontakt" : include("navileiste"); include("endleiste");
                break;
                default : include("navileiste"); include("tafel_main"); include("portrait"); include("endleiste");
            }
        ?>

Navileiste und Endleist und die anderen sind externe Dateien HTML Code.
Warum und wieso mag ich mich gerade nicht rechtfertigen.

Danke fürs Helfen!
 
du mußt dich auch nicht rechtfertigen! ; ) die endleiste.php (?) kommt doch immer vor, oder? dann pack sie doch nur 1 mal ans ende der switch-struktur als default ...
 
ist mir nicht entgangen => ; )

klappt es denn jetzt so wie du es wolltest, oder streikt noch was?
 
Hurra, Hurra !!

Es läuft jetzt, Code sieht folgendermassen aus:

PHP:
<?php
            switch($_GET['page'])
            {
                case "home" : include("navileiste"); include("tafel_main"); include("portrait"); 
                if($_GET["content"] == lebenslauf) 
                {
                     include("lebenslauf");
                }else
                {
                    echo "";
                }
                include("endleiste");
                break;
                case "leistungen" : include("navileiste"); include("endleiste");
                break;
                case "referenz" : include("navileiste"); include("endleiste");
                break;
                case "transfer" : include("navileiste"); include("endleiste");
                break;
                case "kontakt" : include("navileiste"); include("endleiste");
                break;
                default : include("navileiste"); include("tafel_main"); include("portrait"); include("endleiste");
            }
        ?>

Ist vielleicht nicht absolut sauber und so, aber es geht
 
Das sieht doch schon gut aus!

Kleiner Tipp noch:
nicht mehr als eine Anweisung je zeile also:
Code:
case "123":
	include("456.php");
	include("789.php");
	break;

hilft beim lesen und auch beim Fehler finden. PHP kennt nämlich fast immer nur "parse error at line xy"!

Die include("endleiste.php") in den case's kannst Du Dir ja jetzt sparen und das einzelne include("endleiste.php") gehört meiner Ansich nach gaaanz hinter den swicht, sprich hinter die schließende Klammer.

Gruß Karsten
 
und die includes funktioneren ohne dateierweiterung?

die include("endleiste") reicht übrigens auch nur 1x nach dem case-block!
 
Das mit den Erweiterungen wundert mich auch!
Eigentlich entscheidet doch apache an der Dateiendung ob und wer die Datei zu interpretieren hat.
 
apache? bei einem php-statement? nee ...
 
es sei denn, seine includes haben gar keine dateiendung : ]
 
OK, ich habs no e bissle optimiert:

PHP:
<?php
                include("navileiste");
            switch($_GET['page'])
            {
            case "home" : 
                include("tafel_main");
                include("portrait"); 
                if($_GET["content"] == lebenslauf) 
                {
                     include("lebenslauf");
                }else
                {
                    echo "";
                }
                break;
            case "leistungen": 
                break;
            case "referenz" :
                break;
                case "transfer" : 
                break;
                case "kontakt" :
                break;
            default :
                include("tafel_main");
                include("portrait");
            }
                include("endleiste");
        ?>
 
Zurück
Oben Unten