Hendrik: Viele elseif-Funktionen, aber nur eine Anweisung???

Hallo!

Ich wollte fragen, ob das geht. Also viele elseif-Funktionen zu notieren, aber nur eine Anweisung zu schreiben, da ich bei einer Änderung nicht alle Anweisungen einzeln ändern möchte!

Meine Scipts:

1. So klappt's:

<?
$hey = $_POST['hey'];
$gut ="gut";
$dumm ="dumm";

if    ($hey==$gut)include("ja.php");
elseif($hey==$dumm)include("ja.php");
?>

<!--Hier das Eingabeformular. Nur wenn "gut" oder "dumm" eingegeben wurde, wird "ja.php" eingecludet!-->

2. So möcht ich es haben:

<?
$hey = $_POST['hey'];
$gut ="gut";
$dumm ="dumm";

$include=

if    ($hey==$gut)......
elseif($hey==$dumm).....

//hier irgentwie das include-Kommando per Variable oder so einbinden!

Ich hoffe, ich konnte mein Problem ausreichend beschreiben und warte auf baldige Hilfe.

Hendrik

  1. hi,

    Ich hoffe, ich konnte mein Problem ausreichend beschreiben

    Ich kann nur raten, was du meinst.

    Möchtest du vielleicht switch() verwenden, und für mehrere cases die gleiche Aktion angeben? Then do so.

    Oder möchtest du vielleicht mehrere Bedingungen mit einem logischen ODER verknüpft in einem IF überprüfen? Then do so.

    Otherwise explain mal verständlich bitte.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hey warsaga!!!

      Ich wollte dir danken. Tausend dank für diesen Rat. Entschuldige, dass ich mich etwas unverständlich ausgedrückt habe. Du konntest mir trotzdem helfen. Jetzt klappt alles so gut wie nie zuvor!!!!!!!

      DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!DANKE!

      1. Hallo!

        Naja, zu früh gefreut. Ich wollte nämlich eigentlich zwei Variablennamen notieren und überprüfen, ob die eingegebenen Werte zusammen stimmen.

        So klappts:

        <?
        $nachricht = $_POST['nachricht'];

        $nachricht1_ok="Hallo";
        $nachricht2_ok="Morgen";
        $nachricht3_ok="Abend";

        switch ($nachricht){
        case $nachricht1_ok:
        case $nachricht2_ok:
        case $nachricht3_ok: include("richtig.php");
        break;
        ?>

        So möchte ich es haben (nur soll es dann auch noch klappen):

        <?
        $nachricht0 = $_POST['nachricht1'];
        $nachricht1 = $_POST['nachricht2'];

        $nachricht01_ok="Hallo";
        $nachricht02_ok="Morgen";
        $nachricht03_ok="Abend";

        $nachricht11_ok="Gut";
        $nachricht12_ok="Dumm";
        $nachricht13_ok="Schlau";

        switch ($nachricht0 && $nachricht1){
        case $nachricht01_ok && $nachricht11_ok:
        case $nachricht02_ok && $nachricht12_ok:
        case $nachricht03_ok && $nachricht13_ok: include("richtig.php");
        break;
        ?>

        Ich wollte also bei 2 Eingabefeldern überprüfen, ob sie zusammengenommen richtig sind.
        Wenn nur eine der beiden Eingaben richtig waren, soll nichts eingecludet werden!

        Ich hoffe, endlich konnte ich mich gut ausdrücken, sodass es auch jemand versteht, was ich meine!

        Hendrik

  2. Ich rate auch mal mit: Du willst das include() nur ausführen, wenn "gut" oder "dumm" übergeben wurde. Du willst dann die Liste von "erlaubten" Übergaben erweitern, also z.B. um "doof" oder "klasse", und dabei möglichst wenig Code verändern. Das geht z.B. so:

    $hey = $_POST['hey'];
    $erlaubt = array("gut", "dumm", "doof", "klasse");

    if (in_array($hey, $erlaubt)) include("ja.php");

    -- Simon