Undefined Variable - mit isset prüfen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Undefined Variable - mit isset prüfen

    Hallo,

    habe mal eine allgemeine Frage.
    Ich hab ein Form gebastelt, aus dem nachher Variablen per POST übergeben werden.

    Das ganze ist in einer function.

    Später wird die Variable $action geprüft und es passiert irgendwas, jenachdem, was im form übergeben wird.

    Funktioniert so eigentlich ganz gut.

    Wenn ich E_ALL anmache, jammert er aber erstmal, daß meine Variable nicht definiert ist.

    Ich rufe eine weitere Funktion auf, sobald isset($action).
    Wenn !isset($action), kommt nur ein echo" blabla";.

    Meine Frage also:
    Muß ich mit der Fehlermeldung

    Undefined variable: action in .....\inboxwrite.php on line 96

    leben solange noch nichts passiert ist im Script
    und einfach E_ALL ausschalten?
    Die Variable DARF am Anfang ja nicht gesetzt sein!
    Oder kann man die irgendwie vordefinieren?

    Danke schonmal,
    Coniaric
    Gruß, Coni
    ~~ codito ergo sum - ich code, also bin ich! ~~

  • #2
    Bei Zeile 96 greifst du jedoch ungeprüft auf die Var zu. Darum die notice
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      du musst so programmieren, dass bei error_reporting(E_ALL) nichts gemeldet wird. Wie, das ist dir überlassen. Mit isset zu prüfen ist nicht gerade falsch oder zu aufwändig

      Kommentar


      • #4
        Äh...ja, wie bereits erwähnt will ich es dem Server aber recht machen und die Notice verschwinden lassen.
        Gruß, Coni
        ~~ codito ergo sum - ich code, also bin ich! ~~

        Kommentar


        • #5
          Original geschrieben von asp2php
          du musst so programmieren, dass bei error_reporting(E_ALL) nichts gemeldet wird. Wie, das ist dir überlassen. Mit isset zu prüfen ist nicht gerade falsch oder zu aufwändig

          Das ist doch gerade mein Problem - wie soll ich eine Variable, die ich ja auf gestzt / nicht gesetzt überprüfen will so definieren, daß E_ALL damit zufrieden ist?
          Das geht doch überhaupt nicht, oder? Dann wäre isset ja unnötig!
          Gruß, Coni
          ~~ codito ergo sum - ich code, also bin ich! ~~

          Kommentar


          • #6
            Original geschrieben von Coniaric
            Das ist doch gerade mein Problem - wie soll ich eine Variable, die ich ja auf gestzt / nicht gesetzt überprüfen will so definieren, daß E_ALL damit zufrieden ist?
            Das geht doch überhaupt nicht, oder? Dann wäre isset ja unnötig!
            anscheinend hast du nicht ganz verstanden, was ich geschrieben habe, Bsp.

            PHP-Code:
            ...
            if (isset(
            $_POST['bla']))

               
            // hier: Variable ist besetzt
            }
            else

               
            // start zum 1. mal

            Kommentar


            • #7
              Hm, das würde bedeuten, daß mein ganzes restliches Script in die Else-Klammer kommt, oder?
              Und bei 10 Variablen wäre das...
              *seufz*

              Na gut, wenn das sauberer ist, mach ich das eben so.
              Gruß, Coni
              ~~ codito ergo sum - ich code, also bin ich! ~~

              Kommentar


              • #8
                Poste bitte mal deine Zeile 96 !
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Original geschrieben von Coniaric
                  Hm, das würde bedeuten, daß mein ganzes restliches Script in die Else-Klammer kommt, oder?
                  Und bei 10 Variablen wäre das...
                  *seufz*

                  Na gut, wenn das sauberer ist, mach ich das eben so.
                  der bester Weg ist immer der, dass du nur den Sende-Button in der If-Bedingung prüfst, alles andere erst beim Gebrauch, dann sieht das Script übersichtlicher aus.

                  Kommentar


                  • #10
                    Original geschrieben von Coniaric
                    Hm, das würde bedeuten, daß mein ganzes restliches Script in die Else-Klammer kommt, oder?
                    Und bei 10 Variablen wäre das...
                    *seufz*

                    Na gut, wenn das sauberer ist, mach ich das eben so.
                    Ja das kann schon ein heftiges if-elseif-else Gewürm werden..
                    Milderung bringt das MVC Design Pattern, da verteilt sich der Entscheidungsbaum über die Controller.

                    Das macht die Teilbereiche erheblich übersichtlicher..

                    ps:
                    dass du nur den Sende-Button in der If-Bedingung prüfst
                    Der kommt auch nicht immer(so wie erwartet)
                    z.B. wenn das Formular mit Enter abgeschickt wurde
                    oder der Gestalter auf image Buttons umstellt
                    Zuletzt geändert von combie; 05.01.2007, 13:12.
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      Original geschrieben von combie
                      Der kommt auch nicht immer
                      z.B. wenn das Formular mit Enter abgeschickt wurde
                      oder der Gestalter auf image Buttons umstellt
                      das stimmt, aber mit JS kann man solcher Fälle schon abfangen ausserdem war nur ein Bsp. , man kann natürlich irgendwas anderes dafür nehmen, man musst aber nicht die ganze Latte von Formularfelder für diesen Zweck nehmen, sondern nur das, was unbedingt belegt sein muss.

                      Kommentar


                      • #12
                        einfach an geigneter stelle:

                        if(!isset(meine,vars))
                        die('unerwarteter Fehler');

                        was das formularabsenden angeht, einfach auf $_POST prüfen aber mitg empty().

                        Kommentar

                        Lädt...
                        X