Announcement

Collapse
No announcement yet.

per formular eingelesene Variable auf inhalt prüfen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • per formular eingelesene Variable auf inhalt prüfen

    hallo zusammen,

    ich habe eigentlich ein ziemlich einfaches problem, aber ich hocke leider schon seit über einer stunde daran und weiss einfach nciht was ich falsch mache...
    ich habe 2 variablen die aus einem formular in variablen gespeichert werden und ich will nun das wenn in nur einem der jeweiligen felder etwas eingegeben wurde eine aktion ausgeführt wird und wenn in beiden feldern etwas eingegeben wurde acuh etwas ausgeführt wird. hab 2 if varianten ausprobiert und beide fkt irgendwie nicht....

    vor dem ganzen wurde schon abgeklärt das entweder bei variable1 oder variable2 oder bei beiden etwas drin stehen muss.

    variante 1:

    PHP Code:
    if ($variable1=="")
    {
    update mit $variable2
    }
    if (
    $variable2=="")
    {
    update mit $variable1
    }
    else
    {
    update mit beiden

    PHP Code:
    if (isset($variable))
    {
    update mit $variable2
    }
    if (isset(
    $variable1))
    {
    update mit $variable1
    }
    else
    {
    update mit beiden

    is die methode zum prüfen so flasch, gibts da bessere varianten ??

    liebe grüße

  • #2
    Hallo,
    Originally posted by SuperSusi View Post
    ...is die methode zum prüfen so flasch, gibts da bessere varianten ??
    Die Prüfmethode ist solange irrelevant, wie deine grundlegende Logik falsch ist.

    In deinen beiden Varianten wird der Fall das BEIDE Variablen belegt sind immer falsch abgehandelt, da immer erst die Einzelfälle geprüft werden.
    Also zuerst prüfen ob BEIDE Variablen gesetzt sind und im ELSE-Zweig die Einzelfälle abhandeln.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      ok, versteh was du meinst. hab mal so angefangen zu testen, aber eeeyyyy!!! es klappt net mal so en einfacher scheiss wie des hier:
      PHP Code:
       if(isset($forecast)&&isset($ist))
                  {
                      echo 
      'update beide';
                  }
                  else
                  {
                      echo
      'nenen';
                  } 
      er gibt auch wenn man nur 1 feld eingibt 'update beide' aus !!!
      hab langsam echt kein bock mehr ^^

      Comment


      • #4
        Ich hab das bisher so gemacht, dass ich das HTML Formular in <form>-Element eingebettet habe mit der Methode GET oder POST und der Aktion ein Script auszuführen (Deine Abfrage). Diese könntest Du in die Selbe PHP stecken und dann sieht dein Formular in etwa so aus:

        HTML Code:
        <form action="formular.php" method="get">
          <p>Eintrag 1: 
            <input name="tf_eintrag_01" type="text" id="tf_eintrag_01">
          </p>
          <p>Eintrag 2: 
            <input name="tf_eintrag_02" type="text" id="tf_eintrag_02">
            
            <input name="bt_senden" type="submit" id="bt_senden" value="Senden">
          </p>
        </form>
        Wenn nun die Einträge überprüft werden sollen würde ich das wie folgt machen:
        PHP Code:
        <?php
        if($_GET['tf_eintrag_01'] != ""){
         echo 
        'Zeige Eintrag 1 -> Hier kannst Du dann proggen!';
        }else if(
        $_GET['tf_eintrag_01'] != "" && $_GET['tf_eintrag_02'] != ""){
         echo 
        'Zeige Eintrag 1 & 2 -> Hier kannst Du dann proggen!';
        }
        ?>
        Ich hab das jetzt nicht ausprobiert, so könnte es allerdings aussehen.
        PHP Code:
        <?php
        echo 'http://acs-it-worx.de/';
        echo 
        'http://www.youtube.com/user/ACSITWorx/'// mein YouTube Kanal
        echo '-----------------------------------------------------------------';
        echo 
        'http://www.autoservice-asberg.de/';
        ?>

        Comment


        • #5
          Originally posted by SuperSusi View Post
          ...es klappt net mal so en einfacher scheiss wie des hier:
          Vlt. solltest du dir erstmal genau durchlesen was isset() prüft, bevor du hier rummaulst!?

          Zum Verständnis und zum testen:
          PHP Code:
          <?php
          $var1 
          '';
          $var2 null;

          echo isset(
          $var1) ? 'var1 gesetzt' 'var1 fehlt';
          echo 
          '<br />';
          echo isset(
          $var2) ? 'var2 gesetzt' 'var2 fehlt';
          echo 
          '<br />';
          echo isset(
          $var3) ? 'var3 gesetzt' 'var3 fehlt';
          echo 
          '<br />';
          Ausgabe:
          Code:
          var1 gesetzt
          var2 fehlt
          var3 fehlt
          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            ja des isset() hab ich eig nur mal so ausprobiert weil des andere nicht ging, habe es gerade so geschrieben:
            PHP Code:
            if($forecast&&$ist)
                        {
                            echo 
            'update beide';
                        }
                        elseif(
            $forecast)
                        {
                            echo
            'nenen';
                        }
                        else
                        {
                            echo 
            'jajajaj';
                        } 
            die ersten beiden werden ausgeführt, aber das else leider nicht auch nicht wenn ich
            PHP Code:
            elseif($ist)
                        {
                            echo 
            'jajajaj';
                        } 
            schreibe :-(

            Comment


            • #7
              So würds ich lösen!
              Code:
              if(trim($var1) != "" && trim($var2) != "")
              {
              //In beide Formfelder wurde was eingetragen
              }
              elseif(trim($var1) != "")
              {
              //nur ins erste wurde was eingetragen
              }
              elseif(trim($var2) != "")
              {
              //nur is 2te wurde was eingetragen
              }
              else
              {
              //beide felder sind leeeeeer!
              }
              ps: trim() löscht einfach nur die leerzeichen d.h wenn jemand einfach nur ein Leerzeichen eingibt, wird es trotzdem als leer gewertet!

              Reingehaun!

              Comment


              • #8
                selbst so geht es nicht:
                PHP Code:
                if($forecast&&$ist)
                            {
                                echo 
                'update beide';
                            }
                            elseif(
                $forecast)
                            {
                                echo
                'nenen';
                            }
                            if (isset(
                $_GET["ist"]))
                            {
                                echo 
                'fdg';
                            } 

                Comment


                • #9
                  wenn ich es so eingebe:
                  PHP Code:
                   if($forecast&&$ist)
                              {
                                  echo 
                  '123';
                              }
                              elseif(
                  $forecast)
                              {
                                  echo
                  'nenen';
                              }
                              if (
                  $ist)
                              {
                                  echo 
                  'fdg';
                              } 
                  wird 123fdg ausgegeben, aber wenn ich es so ausgebe:
                  PHP Code:
                   if($forecast&&$ist)
                              {
                                  echo 
                  '123';
                              }
                              elseif(
                  $forecast)
                              {
                                  echo
                  'nenen';
                              }
                              if (
                  $ist&&$forecast=="")
                              {
                                  echo 
                  'fdg';
                              } 
                  kommt wieder nur 123

                  hab da wohl irgendwo en logikfehler drin, aber ich komm echt gar net mehr klar das ich sowas einfaches net hinkrieg, bitte helft mir :-(

                  Comment


                  • #10
                    Hab ich doch schon... einfach 3 Beiträge drüber schauen... den hast du überlesen!

                    Comment


                    • #11
                      ups ja hab ich wohl ^^ danke! probier ich gleich mal aus

                      Comment


                      • #12
                        schade, wieder des gleiche problem des letzte else if wird nicht ausgeführt...
                        vlt schrieb ich mal noch was davor noch so steht auch wenn ich mir net so ganz vorstellen kann das es daran liegt.
                        PHP Code:
                        if ($forecast&&$jahr&&$id&&$soll||$forecast&&$jahr&&$id&&$soll||$forecast&&$jahr&&$id&&$soll&&$ist)
                        {
                          if (
                        strlen($jahr)!=4)
                            {
                                echo 
                        'bitte 4-stelliges Datum eingeben';
                            }
                            else
                            {
                                include(
                        "db-connect.php");
                                
                        $query mysql_query("SELECT * FROM forecast WHERE datum ='$datum'");
                                
                        $numrows mysql_num_rows($query);
                                if (
                        $numrows!=0)
                                {
                                   if(
                        trim($ist) != "" && trim($forecast) != "")
                                {
                                echo 
                        'beide';
                                }
                                elseif(
                        trim($ist) != "")
                                {
                                echo 
                        'ist';
                                }
                                elseif(
                        trim($forecast) != "")
                                {
                                echo 
                        'forecast';
                                }

                                } 
                        das wär jetzt der ganze relevante code bis zu der stelle... vlt hilft des ja

                        Comment


                        • #13
                          Wo kommt denn die variable $forecast her ?

                          Comment


                          • #14
                            wird vorher eingelesen:
                            PHP Code:
                            $forecast htmlspecialchars($_GET["forecast"]);
                            $ist htmlspecialchars($_GET["ist"]);
                            $monat htmlspecialchars($_GET["monat"]);
                            $jahr htmlspecialchars($_GET["jahr"]);

                            //wird später vom RL veränderbar sein
                            $soll 55;
                            $id $_SESSION['userid'];
                            $datum "$monat$jahr"

                            Comment


                            • #15
                              Wird wohl keiner außer dir den Fehler finden können, da wir die Anwendung nicht testen können. Sieht doch so aus, als ob forecast eben keinen Inhalt hat.

                              Setze vor das if ein echo und gibt beide Werte aus. Oder debugge das Script.
                              Christian

                              Comment

                              Working...
                              X