Frank: fehler mit switch anweisungen

hallo!!

mal ne frage !
hab mir ne seite in php erstellt !
natürlich mit switch anweisung !!

aber ich bekomme jetzt immer folgende fehlermeldung:
Notice: Undefined index: weiter in f:\apache\rt\htm\seite.php on line 9

line 9: switch($_GET['weiter'])
{   // und hier gehts dann halt so weiter
case "":
echo ...
break;

case "teil2":
echo ...
break;
}

weis einer woran das liegene kann ?

wieso kommt immer diese Fehlermeldung ??
kann mir da jemand helfen ?? das ist lästig, wenn das mit in dem text steht !

  1. Hallo,

    [...]

    aber ich bekomme jetzt immer folgende fehlermeldung:
    Notice: Undefined index: weiter in f:\apache\rt\htm\seite.php on line 9

    line 9: switch($_GET['weiter'])
    {   // und hier gehts dann halt so weiter
    case "":
    echo ...
    break;

    Ich glaube, dass das case keinen leeren String enthalten darf.
    Falls Du auf

    $_GET['weiter'] == ""

    reagieren willst, dann setze ans Ende von Switch den default Zweig

    switch(..){
    case "sdflj" : ... break;
    default : doit(); break;
    }

    Auf diese Weise kannst Du das Case "" auch umgehen.

    Grüße
    Michael

    1. hm, leider war es das acuh nicht !
      der fehler bleibt immer noch !!

      weis jemand einen anderen rat ??

  2. Hallo Frank,

    aber ich bekomme jetzt immer folgende fehlermeldung:
    Notice: Undefined index: weiter in f:\apache\rt\htm\seite.php on line 9

    line 9: switch($_GET['weiter'])

    das liegt nicht an der switch-Anweisung, sondern an deinen Variablenwert. Im Array $_GET exisiert kein Eintrag mit der "weiter"

    Abhilfe:

    $meinWeiter = "";

    if (isset($_GET['weiter'])) $meinWeiter = $_GET['weiter'];

    switch($meinWeiter) ....

    Viele Grüße

    Antje

    1. das liegt nicht an der switch-Anweisung, sondern an deinen Variablenwert. Im Array $_GET exisiert kein Eintrag mit der "weiter"

      Abhilfe:

      $meinWeiter = "";

      if (isset($_GET['weiter'])) $meinWeiter = $_GET['weiter'];

      switch($meinWeiter) ....

      muss sagen, das hat es leider auch nicht gebracht !!
      da kommt dann immer die fehlermeldung !!
      aber nur wenn ich auf die erste Seite klicke, die aufgehen soll, also
      case = "":

      usw..

      wenn ich auf ne andere seite springe, funst es, dann kommt der Fehler net !
      aber wenn ich dann wieder auf die case "":
      zurückspringe, ist er wieder da!

  3. Hallo Frank,

    Notice: Undefined index: weiter in f:\apache\rt\htm\seite.php on line 9
    line 9: switch($_GET['weiter'])

    php meckert, dass der Schlüssel 'weiter' im Array $_GET nicht existiert. Du kannst entweder mit error_reporting() php etwas "toleranter" einstellen, oder, besser, erst mit prüfen, ob $_GET['weiter'] gesetzt ist, z.B. so:

    $weiter = isset($_GET['weiter'])?$_GET['weiter']:'';

    Wenn $_GET['weiter'] gesetzt ist, steht in $weiter dieser Wert drin, wenn nicht, wird $weiter ein Leersting zugewiesen. (siehe http://www.php.net/language.operators.comparison) Wenn du dann $weiter in switch einsetzt, sollte es keine Meldung mehr geben.

    {   // und hier gehts dann halt so weiter
    case "":

    warum schreibst du das nicht in den default-Block?

    kann mir da jemand helfen ?? das ist lästig, wenn das mit in dem text steht !

    nochwas am Rande: du plenkst.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. ok, danke sehr !

      Hatt sehr gut geklappt!