Ankündigung

Einklappen
Keine Ankündigung bisher.

Variablen vergleichen

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

  • Variablen vergleichen

    Hallo,
    leider habe ich wieder ein Problem, dessen Lösung ich einfach nicht finde.

    Ich habe zwei Variablen die Zahlen enthalten. Diese Zahlen möchte ich verleichen und eine Action ausführen.

    erste Variable:

    $gesamtsummezumpruefen = $_SESSION["gesamtsummefuergutschein"];
    $gesamtsummezumpruefen = str_replace(".","", $gesamtsummezumpruefen );

    zweite Variable:

    $gsummepruefung = $geurobetrag;
    $gsummepruefung = sprintf('%.2f', $gsummepruefung );
    $gsummepruefung = str_replace(".","", $gsummepruefung);

    Nun der Vergleich:
    if ($gsummepruefung > $gesamtsummezumpruefen)
    {
    header ("Location: bestellung21.php?summekleiner=1");
    }

    wenn ich mir die beiden Variablen durch $Get ausgeben lasse, dann erhalte ich folgendes:

    bestellung21.php?gutscheinok=1&summe=2990&gsumme=5 000

    und in $GET, gutscheinok=1 tritt nach dem Vergleich in Kraft.

    Was mache ich denn falsch? Ich komme auf keine Lösung.

    DANKE.


  • #2
    Was ist $Get? Wo kommt $geurobetrag her? Bei gsumme steht 5000 mit einem Leerzeichen. Welcher Wert und Datentyp steht in $_SESSION["gesamtsummefuergutschein"] und warum werden da alle Punkte entfernt? Und wo steht da was von gutscheinok? Und benutz bitte den php-bbcode

    Evtl. sind $gsummepruefung und $gesamtsummezumpruefen verschiedene Datentypen..

    Kommentar


    • #3
      Zitat von xm22 Beitrag anzeigen
      Was ist $Get? Wo kommt $geurobetrag her? Bei gsumme steht 5000 mit einem Leerzeichen.
      Die Variablen halt mit übergeben. Die Summe stimmt, das Leerzeichen wird nur hier so angezeigt, warum auch immer! geurobetrag kommt aus der DB, aber das wird ja richtig angezeigt. Anscheinend passt nur der Vergleich nicht.

      Kommentar


      • #4
        Anscheinend passt nur der Vergleich nicht.
        Dann lass dir die beiden Variablen ausgeben, um nachzuschauen, warum das so ist!
        hallophp.de

        Kommentar


        • #5
          Zitat von Asipak Beitrag anzeigen
          Dann lass dir die beiden Variablen ausgeben, um nachzuschauen, warum das so ist!

          Aber das lass ich doch, in dem ich die Variablen mitschicke.

          bestellung21.php?gutscheinok=1&summe=2990&gsumme=5 000

          summe= 2990 ->
          PHP-Code:
          $gesamtsummezumpruefen $_SESSION["gesamtsummefuergutschein"];
          $gesamtsummezumpruefen str_replace(".",""$gesamtsummezumpruefen); 
          und gsumme=5000 ->
          PHP-Code:
                $gsummepruefung $geurobetrag;
                
          $gsummepruefung sprintf('%.2f'$gsummepruefung);
                
          $gsummepruefung str_replace(".",""$gsummepruefung); 
          Wenn ich die Punkte in den Variablen nicht entferne, kommt das raus:
          PHP-Code:
          bestellung21.php?gutscheinok=1&summe=29.90&gsumme=50.00 
          Also auch dann wären die Summe korrekt und der Vergleich sollte doch eigentlich funktionieren!!?!?!

          Kommentar


          • #6
            Code:
            5 000
            Sieht wie ein Leerzeichen aus!
            hallophp.de

            Kommentar


            • #7
              Zitat von Asipak Beitrag anzeigen
              Code:
              5 000
              Sieht wie ein Leerzeichen aus!
              Ich weiß nicht, warum das hier so angezeigt wird. Im Beispiel ohne die Punktersetzung wirds ja auch ohne Leerzeichen ausgegeben und im IE wird mir auch keines angezeigt, nur eben hier.

              Kommentar


              • #8
                Code:
                var_dump($gsummepruefung);
                var_dump($gesamtsummezumpruefen);
                hallophp.de

                Kommentar


                • #9
                  Zitat von Asipak Beitrag anzeigen
                  Code:
                  var_dump($gsummepruefung);
                  var_dump($gesamtsummezumpruefen);
                  Danke, wow, jetzt funktioniert es. Kannst du mir noch kurz erklären, was hier geschieht? Danke

                  Kommentar


                  • #10
                    Hä?

                    PHP: var_dump - Manual
                    hallophp.de

                    Kommentar


                    • #11
                      Tja, zwar hat der Vergleich nun funktioniert, jedoch muss ich den var_dump unterhalt meiner header anweisung schreiben, da sonst der var_dump ausgegeben wird. Außerdem werden alle vorherigen if-anweisungen komplett ignoriert.

                      Kann mir das jemand bitte erklären bzw. einen funktionierenden Tipp geben? Danke.

                      Hier nochmals der Teil-Code:

                      PHP-Code:
                       if ($gid == '')
                       {
                       
                      header ("Location: bestellung21.php?gcode=0");  
                       }
                       if (
                      $gdeaktiviert == '1')
                       {
                       
                      header ("Location: bestellung21.php?gdeak=1");  
                       }  
                       if (
                      $gempfaenger != '' and $gempfaenger != $kundendaten[kdnummer])
                       {
                       
                      header ("Location: bestellung21.php?gempf=1");  
                       }
                      _____alles bis hierher wirdseitdem var_dump ignoriert_____
                       
                      if ($gsummepruefung $gesamtsummezumpruefen)
                       {
                       
                      header ("Location: bestellung21.php?summekleiner=1"); 
                        
                      var_dump($gsummepruefung);
                       
                      var_dump($gesamtsummezumpruefen);
                       
                       } 

                      Kommentar


                      • #12
                        http://www.php.de/php-einsteiger/489...nsammlung.html

                        var_dump() wird zu Debugzwecken eingesetzt und hat keinen Einfluss auf irgendeine Funktionalität.

                        Den Link aus meinem vorherigen Posting hast du auch nicht angeklickt, oder?

                        Außerdem werden alle vorherigen if-anweisungen komplett ignoriert.
                        Heißt was? Nach einem
                        Code:
                        header("Location: ...");
                        solltest du einen
                        Code:
                        exit;
                        - Befehl ausführen lassen.
                        hallophp.de

                        Kommentar


                        • #13
                          error_reporting und ini_set('display_errors', 1) zeigen dir die Probleme, die du hast.

                          Kommentar


                          • #14
                            und in $GET, gutscheinok=1 tritt nach dem Vergleich in Kraft.
                            Ganz großes Tennis Wie wärs noch mit einer URL ?schon_bezahlt=ja, das macht den Bestellvorgang gleich viel attraktiver!

                            Mal im Ernst - Dein Code ist ein einziges Gefriemel, Bestelldaten übergibt man nicht, sondern speichert sie in der Session. Und Fehlersituationen klärt man auch nicht per location-Header. Auch heißt es weder $Get noch $GET.

                            Aus Sicht des Moderators:
                            [MOD] Bitte Codes mit BBCode auszeichnen! Bitte Fragen sorgfältig stellen, statt irgendwas hinzuschludern! Trash-Kandidat! Bitte beachten: Forenrichtlinien
                            --

                            „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

                            Lädt...
                            X