Ankündigung

Einklappen
Keine Ankündigung bisher.

Wenn zwei Variablen gleich, dann

Einklappen

Neue Werbung 2019

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

  • Wenn zwei Variablen gleich, dann

    Ich habe folgenden code:
    PHP-Code:
    ...
    function 
    getNum() { return $this->num; }
    ...
    $n = new Numberrand(1000,9999) );
    $zahl $n->getNum();
    $zahleing $_POST['4_letters_code']; 
    Nun soll eine Nachricht ausgegeben werden wenn Die Variablen nicht gleich sind:
    PHP-Code:
    echo "Stimmt nicht überein" 
    bzw. etwas anderes getan werden wenn sie gleich sind.
    Ich mache das bisher so:
    PHP-Code:
    if($zahl !== $zahleing)  
      {
         echo 
    "Stimmt nicht überein"
      
    }
     else
     {
          echo 
    "jetzt klappts, Email wird versendet";
     } 
    Irgendwie klappts aber nicht. Was mache ich falsch??


  • #2
    php-de.github.io/#debugging

    Kommentar


    • #3
      „geht nicht / funktioniert nicht...“ ist keine sinnvolle Fehlerbeschreibung! PHP.de Wiki | Debugging:Leitfaden
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Den ganzen Code, zusammenhängend zu sehen wäre bei der Fehlersuche ja zu einfach...

        PHP-Code:
        if($zahl !== $zahleing)  
          {
             echo 
        "Stimmt nicht überein"
          
        }
         else
         {
        var_dump($zahleing);
        var_dump($zahl);
              echo 
        "jetzt klappts, Email wird versendet";
         } 

        Oder, was man vielleicht zuerst klären sollte..
        Irgendwie klappts aber nicht.
        Was "klappt nicht"? Wird ein Fehler geworfen? Wird ein unerwartetes Ergebnis zurückgegeben? Fängt der Server an zu qualmen wenn das Script durchläuft?
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar


        • #5
          Sicher, dass
          PHP-Code:
          $zahl !== $zahleing 
          an der Stelle funktionieren kann und nicht eines int, eines string ist?

          Kommentar


          • #6
            jo VPh, nur dass die var_dumps wohl nie aufgerufen werden, es sei denn die werte sind immer identisch; monolith got it.

            Kommentar


            • #7
              Ich sehe es ja ein. Fehlerbeschreibung mangelhaft.
              Folgendes: Ich lasse den Inhalt der Variablen auch per echo auf dem Bildschirm ausgeben. Sie sind definitiv gleich. Trotzdem wird IMMER "Stimmt nicht überein" ausgegeben...

              Kommentar


              • #8
                Danke erstmal. Ich setze mich morgen wieder dran und poste dann auch den kompletten Code..

                Kommentar


                • #9
                  Dann nimm nicht echo, sondern var_dump.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Zitat von moma Beitrag anzeigen
                    jo VPh, nur dass die var_dumps wohl nie aufgerufen werden, es sei denn die werte sind immer identisch; monolith got it.
                    Ja, darum ging es mir.
                    Ich bin davon ausgegangen, dass
                    PHP-Code:
                    echo "Stimmt nicht überein" 
                    die Erwartungshaltung ist und, dass das "klappt nicht" bedeutet, er springt immer ins else.
                    Aber der Ansatz lässt sich ja je nach tatsächlicher Erwartung anpassen, hab einfach geraten wo das rein sollte...
                    Relax, you're doing fine.
                    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                    Kommentar


                    • #11
                      !== bzw. === enthält eine implizite Typenprüfung. Daten aus GPC sind immer vom Typ String, während diese Klasse wohl einen integer vorhält (Ergebnis von rand()).
                      Ein = weniger und "es funzt"
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar


                      • #12
                        Tatsächlich sind die beiden Variablen von unterschiedlichem Typ wie ich jetzt per var_dump() herausbekommen habe:
                        Die eine ist int(8141), die andere string(4) "8141"
                        Erstere stammt aus der rand() funktion, zweitere aus dem Formularfeld.
                        Was ich nun möchte ist folgendes:
                        Wenn die beiden Werte nicht übereinstimmen soll der Nutzer nach abschicken des Formulars darauf hingewiesen werden. Das mache ich bisher so:
                        PHP-Code:
                        if(isset($_POST['submit']))
                        {
                        if(
                        $zahl != $zahleing)  
                          {
                            echo 
                        "This is the wrong number";
                             echo 
                        $zahl;
                             echo 
                        $zahleing;
                          }
                         else
                         {
                        echo 
                        "jetzt klappts, Email wird versendet";
                              
                            
                        //send the email
                            
                        $to "meine.adresse@gmail.com";
                            
                        $subject="New form submission";
                            
                        $from $your_email;
                            
                        $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
                             
                            
                        $body "A user  $name submitted the contact form:n".
                            
                        "Name: $namen".
                            
                        "Email: $visitor_email n".
                            
                        "Message: n ".
                            
                        "$user_messagen".
                            
                        "IP: $ipn";  
                             
                            
                        $headers "From: $from rn";
                            
                        $headers .= "Reply-To: $visitor_email rn";
                             
                            
                        mail($to$subject$body,$headers);
                             
                            
                        header('Location: thank-you.html');

                        Warum bloß wird auch bei falscher Eingabe (ungleichen Werten der Variablen) das Email verschickt?
                        Und warum wird auch bei richtiger Eingabe (gleichen Werten der Variablen) der Text "This is the wrong number" ausgegeben?
                        Wie schreibt man sowas richtig?

                        Kommentar


                        • #13
                          Ich glaube da fehlt uns ein wichtiger Teil des Codes!
                          http://hallophp.de

                          Kommentar


                          • #14
                            Was ich nun möchte ist folgendes:
                            Jetzt denkst Du bitte mal selbst nach. Alles Relevante wurde bereits geschrieben.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              Ich bin Anfänger und denke schon seit zwei Tagen darüber nach. Daher bat ich hier um Hilfe.

                              Kommentar

                              Lädt...
                              X