echo erst dann ausgeben wenn mehre typen den wert von var entsprechen

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

  • echo erst dann ausgeben wenn mehre typen den wert von var entsprechen

    [COLOR=#ff0000]
    [COLOR=#ff0000]Hallo an alle hab mal eine frage wie bekomme ich es in das wenn KNRANR und telefon falsch sind anstatt das jeweilige echo nur eins raus bekomme: (also mit nur eins meine ich dann letzteres also "BITTE ALLE ROT MARKIERTEN FELDER AUSFÜLLEN!"[/COLOR]


    [COLOR=#ff0000]<?php[/COLOR]
    [/COLOR]
    if(isset([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"Senden"[/COLOR][/COLOR]])){
    if(isset([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"KNRANR"[/COLOR][/COLOR]]) && [COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"KNRANR"[/COLOR][/COLOR]] ==[COLOR=#0000f0][COLOR=#0000f0]""[/COLOR][/COLOR]) {
    echo [COLOR=#0000f0][COLOR=#0000f0]"Bitte Kunden bzw Abonummer angeben!"[/COLOR][/COLOR];
    [COLOR=#800000][COLOR=#800000]$fehlerknranr[/COLOR][/COLOR] =[COLOR=#ff0000][COLOR=#ff0000]17[/COLOR][/COLOR];
    [COLOR=#800000][COLOR=#800000]$var[/COLOR][/COLOR] = [COLOR=#ff0000][COLOR=#ff0000]99[/COLOR][/COLOR];
    }}
    [COLOR=#ff0000][COLOR=#ff0000]?>[/COLOR][/COLOR][COLOR=#ff0000]
    [/COLOR]
    [COLOR=#ff0000][COLOR=#ff0000]<?php[/COLOR][/COLOR][COLOR=#ff0000]
    [/COLOR]
    if(isset([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"Senden"[/COLOR][/COLOR]])){
    if(isset([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"telefon"[/COLOR][/COLOR]])&& [COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"telefon"[/COLOR][/COLOR]] ==[COLOR=#0000f0][COLOR=#0000f0]""[/COLOR][/COLOR]){
    echo [COLOR=#0000f0][COLOR=#0000f0]"Bitte Telefon Nummer eingeben!"[/COLOR][/COLOR];
    [COLOR=#800000][COLOR=#800000]$fehlertelefon[/COLOR][/COLOR] =[COLOR=#ff0000][COLOR=#ff0000]18[/COLOR][/COLOR];
    [COLOR=#800000][COLOR=#800000]$var[/COLOR][/COLOR] = [COLOR=#ff0000][COLOR=#ff0000]99[/COLOR][/COLOR];
    }}[COLOR=#ff0000][COLOR=#ff0000]?>[/COLOR][/COLOR]

    [COLOR=#ff0000][COLOR=#ff0000][COLOR=#ff0000][COLOR=#ff0000]<?php[/COLOR]
    [/COLOR]
    if(isset([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"Senden"[/COLOR][/COLOR]])){if((empty ([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR])== ([COLOR=#800000][COLOR=#800000]$var[/COLOR][/COLOR] == [COLOR=#ff0000][COLOR=#ff0000]99[/COLOR][/COLOR]))==[COLOR=#0000f0][COLOR=#0000f0]""[/COLOR][/COLOR]){
    echo [COLOR=#0000f0][COLOR=#0000f0]"Bitte alle rot markiete Felder ausfüllen"[/COLOR][/COLOR];
    }}
    [COLOR=#ff0000][COLOR=#ff0000]?>[/COLOR][/COLOR][COLOR=#c0c000]
    [/COLOR]
    [/COLOR]
    [/COLOR]
    Zuletzt geändert von kleiner57990; 16.09.2009, 11:36.

  • #2
    Da hast du dir was zusammengebaut... Code Tags und Einrücken erleichtert das Lesen übrigens erheblich.

    PHP-Code:
    $errors = array();
    if (isset(
    $_POST['Senden']) {
          
    $errors['knrank'] = !isset($_POST["KNRANR"]);
          
    $errors['telefon'] = !isset($_POST["telefon"]);
    }

    if (
    count($errors) == 2) {
          echo 
    'Bitte alle rot amrkierten Felder ausfüllen';
    } else {
        if (
    $errors['knrank'])
           echo 
    'Bitte Kunden bzw Abonummer angeben!';

        if (
    $errors['telefon'])
           echo 
    'Bitte Telefon Nummer eingeben!';

    Da du eher wie ein Neuling wirkst noch eine Erläuterung dazu:
    Als erstes wird ein Array definiert welches alle Fehlerfelder beinhalten soll, denn count(isset()) kann man schlecht abfragen und count($_Post) ist auch unschön da Formulare manipulierbar sind.

    Danach wird im Array gespeichert welche Felder undefiniert sind. Per count() kann man nun die Länge des Arrays und somit die Anzahl Fehler ermitteln und Abfragen oder ggf. individuelle Fehlermeldungen ausgeben.

    Kommentar


    • #3
      Ja bin ganz neu dabei ist jetzt die erste woche die ich damit arbeite:
      ich habe nun folgendes eingegeben:

      [COLOR=#ff0000][COLOR=#ff0000]
      <?php
      [/COLOR]
      [/COLOR]
      if
      (isset([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"Senden"[/COLOR][/COLOR]])){
      [COLOR=#800000][COLOR=#800000]$errors[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]'knrank'[/COLOR][/COLOR]] = !isset([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"KNRANR"[/COLOR][/COLOR]]);
      [COLOR=#800000][COLOR=#800000]$errors[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]'telefon'[/COLOR][/COLOR]] = !isset([COLOR=#800000][COLOR=#800000]$_POST[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]"telefon"[/COLOR][/COLOR]]);
      }
      if (count(
      [COLOR=#800000][COLOR=#800000]$errors[/COLOR][/COLOR]) == [COLOR=#ff0000][COLOR=#ff0000]2[/COLOR][/COLOR]) {
      echo
      [COLOR=#0000f0][COLOR=#0000f0]'Bitte alle rot amrkierten Felder ausfüllen'[/COLOR][/COLOR];
      } else {
      if (
      [COLOR=#800000][COLOR=#800000]$errors[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]'knrank'[/COLOR][/COLOR]])
      echo
      [COLOR=#0000f0][COLOR=#0000f0]'Bitte Kunden bzw Abonummer angeben!'[/COLOR][/COLOR];
      if (
      [COLOR=#800000][COLOR=#800000]$errors[/COLOR][/COLOR][[COLOR=#0000f0][COLOR=#0000f0]'telefon'[/COLOR][/COLOR]])
      echo
      [COLOR=#0000f0][COLOR=#0000f0]'Bitte Telefon Nummer eingeben!'[/COLOR][/COLOR];
      }
      [COLOR=#800000][COLOR=#800000]$fehlertelefon[/COLOR][/COLOR] =[COLOR=#ff0000][COLOR=#ff0000]18[/COLOR][/COLOR];
      [COLOR=#800000][COLOR=#800000]$fehlerknranr[/COLOR][/COLOR] =[COLOR=#ff0000][COLOR=#ff0000]17[/COLOR][/COLOR];
      [COLOR=#ff0000][COLOR=#ff0000]?>[/COLOR][/COLOR]
      [COLOR=#ff0000][COLOR=#ff0000][/COLOR][/COLOR]
      [COLOR=#ff0000][COLOR=#ff0000][/COLOR][/COLOR]
      [COLOR=#ff0000][COLOR=#ff0000]Doch jetzt zeigt er mir telefon und KNRANR in meinem formular ob ausgefüllt oder nicht immer als rot (also falsch an)[/COLOR][/COLOR]
      [COLOR=#ff0000][COLOR=#ff0000][/COLOR][/COLOR]
      [COLOR=#ff0000][COLOR=#ff0000]PS: Da das formular länger ist habe ich ganz oben eine extra zeiele für die array angelegt.


      <?php $errors = array() ?>[/COLOR]
      [/COLOR]

      [COLOR=#ff0000][COLOR=#ff0000][/COLOR][/COLOR]
      [COLOR=#ff0000][COLOR=#ff0000]........(beginne des formular)
      [/COLOR][/COLOR]

      Kommentar


      • #4
        Kann man das vlt nicht anders machen ohne diese array den damit komme ich nicht zurecht!

        Kommentar


        • #5
          Hallo,

          mit dem Array hat das vermutlich wenig zu tun. Ich denke, dass es an diesen beiden Variablen liegt:

          Zitat von kleiner57990 Beitrag anzeigen
          [COLOR=#800000][COLOR=#800000]$fehlertelefon[/COLOR][/COLOR] =[COLOR=#ff0000][COLOR=#ff0000]18[/COLOR][/COLOR];
          [COLOR=#800000][COLOR=#800000]$fehlerknranr[/COLOR][/COLOR] =[COLOR=#ff0000][COLOR=#ff0000]17[/COLOR][/COLOR];
          Vorher wurden die im entsprechenden if-Block gesetzt, jetzt außerhalb. Daher werden die also immer belegt und sorgen vermutlich daher für die rote Kennzeichnung der Felder.

          Ist es so besser?
          PHP-Code:
          if (isset($_POST["Senden"])) {
              
          $errors['knranr'] = !isset($_POST["KNRANR"]);
              
          $errors['telefon'] = !isset($_POST["telefon"]);
          }
          if (
          count($errors) == 2) {
              echo 
          'Bitte alle rot markierten Felder ausfüllen';
              
          $fehlerknranr =17;
              
          $fehlertelefon =18;
          }
          else if (
          $errors['knranr']) {
              echo 
          'Bitte Kunden bzw Abonummer angeben!';
              
          $fehlerknranr =17;
          }
          else if (
          $errors['telefon']) {
              echo 
          'Bitte Telefon Nummer eingeben!';
              
          $fehlertelefon =18;

          Gruß,

          Amica
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            @kleiner57990: Bitte nutze die [php]-Tags zur Formatierung von PHP-Code.
            Und deine eigenen Aussagen brauchst du nicht in Fett und Rot schreiben - keine Angst, du wirst auch wenn du "normal" schreibst, nicht überlesen.
            Bitte passe deine bisherigen Beiträge vor deiner nächsten Antwort entsprechend an.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Hab es jetzt so eingetippt wie du gesagt hast Amica.

              Und ja es geht schon viel besser den jetzt erkennt er die fehler auch erst dann wenn ich auf Senden drücke was vorher nicht der fall war.

              Jedenfalls Sind egal ob ich die felder ausfülle oder nicht er sieht sie nach dem klick auf Senden trotzdem als falsch an?

              hast du vielleicht einen rat dazu?

              PS: die zwei variabeln $fehler...dienen eigentlich nur dazu das später die namen auch in der passende farbe sind ihr mal mein eingegebener code vielleicht fällt dir ja da ein fehler auf:

              <input name=[COLOR=#0000f0][COLOR=#0000f0]"telefon"[/COLOR][/COLOR] type=[COLOR=#0000f0][COLOR=#0000f0]"text"
              [/COLOR]
              [/COLOR]
              value=[COLOR=#0000f0][COLOR=#0000f0]"[/COLOR][/COLOR][COLOR=#c0c000][COLOR=#c0c000]<?php
              if (isset($_POST["telefon"])) {
              echo $_POST["telefon"];
              }
              ?>[/COLOR]
              [/COLOR]
              [COLOR=#0000f0][COLOR=#0000f0]"[/COLOR][/COLOR]>
              [COLOR=#c0c000][COLOR=#c0c000]<?if($fehlertelefon ==18){?>[/COLOR][/COLOR]<font color=[COLOR=#0000f0][COLOR=#0000f0]"red"[/COLOR][/COLOR]>[COLOR=#c0c000][COLOR=#c0c000]<?}?>
              [/COLOR]
              [/COLOR]
              <br>
              Telefon</p>
              [COLOR=#c0c000][COLOR=#c0c000]<?if($fehlertelefon ==18){?>[/COLOR][/COLOR]</font>[COLOR=#c0c000][COLOR=#c0c000]<?}?>
              [/COLOR]
              [/COLOR]

              Kommentar


              • #8
                Zitat von wahsaga Beitrag anzeigen
                @kleiner57990: Bitte nutze die [php]-Tags zur Formatierung von PHP-Code.
                Und deine eigenen Aussagen brauchst du nicht in Fett und Rot schreiben - keine Angst, du wirst auch wenn du "normal" schreibst, nicht überlesen.
                Bitte passe deine bisherigen Beiträge vor deiner nächsten Antwort entsprechend an.
                Ja mache ich kein thema.

                PS:Sorry wegen rot und dicke buchstaben ich kopiere die quellecode einfach aus PHPEDIT raus und schreibe dann weiter dann zeigt er es von allein so an war keine absicht.

                Kommentar


                • #9
                  Zitat von kleiner57990 Beitrag anzeigen
                  Hab es jetzt so eingetippt wie du gesagt hast Amica.

                  er sieht sie nach dem klick auf Senden trotzdem als falsch an?
                  Sorry, hatte den oberen Teil von Caine übernommen, ohne drüber nachzudenken. Der ergibt aber keinen Sinn bzw. kann nicht so funktionieren, wie er wahrscheinlich soll.

                  Hier nochmal überarbeitet:
                  PHP-Code:
                  $errors = array("count" => 0);
                  if (isset(
                  $_POST["Senden"])) {
                      if (!isset(
                  $_POST["KNRANR"]) || !trim($_POST["KNRANR"])) {
                          
                  $errors["count"]++;
                          
                  $errors["knranr"] = true;
                      }
                      if (!isset(
                  $_POST["telefon"]) || !trim($_POST["telefon"])) {
                          
                  $errors["count"]++;
                          
                  $errors["telefon"] = true;
                      }
                  }
                  if (
                  $errors["count"] == 2) {
                      echo 
                  'Bitte alle rot markierten Felder ausfüllen';
                      
                  $fehlerknranr =17;
                      
                  $fehlertelefon =18;
                  }
                  else if (isset(
                  $errors['knranr'])) {
                      echo 
                  'Bitte Kunden bzw Abonummer angeben!';
                      
                  $fehlerknranr =17;
                  }
                  else if (isset(
                  $errors['telefon'])) {
                      echo 
                  'Bitte Telefon Nummer eingeben!';
                      
                  $fehlertelefon =18;

                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Vielen vielen Danke Amica jetzt funktioniert es.

                    Kleine frage ist das jetzt ein großer aufwand mir grob zu erklären warum das jetzt funktioniert und der vorher nicht?

                    Den reinkopieren wie ich es gemacht habe damit es funktioniert ist ja schon möchte aber schon gerne kapieren was ich da überhaupt gemacht habe.

                    Kommentar


                    • #11
                      Das count($errors) hat immer 2 ergeben, weil der Code von Caine so funktioniert, dass er die beiden Einträge im Array immer anlegt, und dabei nur mit Wahrheitswerten unterscheidet, ob der Fehler aufgetreten ist oder nicht.

                      Ich hab es jetzt so gemacht, dass ich das in ein if gepackt habe und dadurch wird nur was ins Array eingetragen, wenn wirklich der Fehler aufgetreten ist. Außerdem reicht es nicht, nur auf Anwesenheit des Feldes zu prüfen (isset), sondern man muss auch prüfen, ob der Wert leer ist oder nur Leerzeichen enthält, daher das trim.

                      Gruß,

                      Amica
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Okey hab es ungefähr kapiert. Nochmals vielen Dank.

                        Kommentar


                        • #13
                          Privaten E-Mail-Support leiste ich nur, wenn ich es selbst und ausdrücklich anbiete.

                          Der fehler wird jetzt zwar echt dann angezeigt wenn ich auf Senden drück doch ob ich die felder ausfülle oder nicht am ende steht immer "Bitte füllen sie alle Felder aus!".

                          Hast du vielleicht eine idee wo das problem liegen könnte?
                          Du hast immer nur einen Teil des Codes gepostet. Eventuell ist da woanders noch eine Stelle, die das verursacht.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Zitat von AmicaNoctis Beitrag anzeigen
                            Das count($errors) hat immer 2 ergeben, weil der Code von Caine so funktioniert, dass er die beiden Einträge im Array immer anlegt, und dabei nur mit Wahrheitswerten unterscheidet, ob der Fehler aufgetreten ist oder nicht.

                            Ich hab es jetzt so gemacht, dass ich das in ein if gepackt habe und dadurch wird nur was ins Array eingetragen, wenn wirklich der Fehler aufgetreten ist. Außerdem reicht es nicht, nur auf Anwesenheit des Feldes zu prüfen (isset), sondern man muss auch prüfen, ob der Wert leer ist oder nur Leerzeichen enthält, daher das trim.

                            Gruß,

                            Amica
                            Jap... da hab ich gepennt... x). Da hab ich zwei mögliche Lösungsansätze in meinem Kopf miteinander vermischt.... denn eigentlich wollte ich auf $errors['wert'] true/false prüfen... oder halt alternativ nach seperaten if-abfragen nach count($errors) und das lief beides ineinander.

                            Kommentar

                            Lädt...
                            X