Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular kann nicht mehr als 20 Zahlen verarbeiten?

Einklappen

Neue Werbung 2019

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

  • Formular kann nicht mehr als 20 Zahlen verarbeiten?

    Moin,
    ich habe eine Anfänger Frage zu meinem Eingabefeld:

    PHP-Code:
    <?php
    session_start
    ();
    if(
    $_POST){
    unset(
    $_SESSION['success_23']);
    unset(
    $_SESSION['success_final']);
    $response = array();
    $response['success'] = 'false';
    if(!empty(
    $_POST['number'])){

    $number = (int)$_POST['number'];
    if(
    $number == 12345678912345678912 && $_POST['action'] == 23){
    $response['success'] = 'true';
    $_SESSION['success_23'] = true;
    }else if(
    $number == 12345678912345678912 && $_POST['action'] == 'final'){
    $response['success'] = 'true';
    $_SESSION['success_final'] = true;
    }else{
    $response['success'] = 'false';
    }

    $_SESSION['http_referer'] = $_SERVER['HTTP_REFERER'];
    }

    header('Content-Type: application/json');
    echo 
    json_encode($response);
    }


    Ab der 20. Zahl (12345678912345678912) funktioniert das Script nicht mehr. 19 Zahlen funktionieren. Gibt es ein $number Limit bei PHP?

    Danke und Grüße!


  • #2
    Das hängt von deinem System ab, steht aber in PHP_INT_MAX

    https://www.php.net/manual/en/reserved.constants.php

    Wenn du was größeres brauchst, nimm die BC extension

    https://www.php.net/manual/en/book.bc.php
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      PHP-Code:
      $number = (int)$_POST['number']; 
      Weil du halt auch explizit zu einen INT castest. Vom Form kommt ja mal eigentlich ein String. Der kann auch länger sein.

      Wenn du damit nicht rechnest, kannst du den String ja auch belassen?!

      MOD: Bitte für PHP-Code die entsprechenden Code-Tags nutzen. Danke!
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Habt ihr vielleicht einen Tip, wie man den Code verändern muss, um den String zu lassen?

        Kommentar


        • #5
          Entferne das (int)

          PHP-Code:
          $n '654951654165919819151651651651465198161616165165165165165165165651651651651';

          var_dump($n);
          // string(75) "654951654165919819151651651651465198161616165165165165165165165651651651651"

          var_dump( (int)$n );
          //int(9223372036854775807) 
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Super hat fkt!

            Kommentar


            • #7
              Bitte, aber wie gesagt, zum Rechnen ist das aber nicht gedacht. Siehe dazu falls nötig die Hinweise "bc" oben.
              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Zitat von rockstarhamburg Beitrag anzeigen
                Moin,
                ich habe eine Anfänger Frage zu meinem Eingabefeld:

                PHP-Code:
                <?php
                session_start
                ();
                ...

                header('Content-Type: application/json');
                echo 
                json_encode($response);
                }


                Ab der 20. Zahl (12345678912345678912) funktioniert das Script nicht mehr. 19 Zahlen funktionieren. Gibt es ein $number Limit bei PHP?

                Danke und Grüße!
                1. Achte bitte - auch auf angrenzenden fachlichen Gebieten - auf korrekte Terminologie: Es handelt sich bspw. nicht um "Zahlen", sondern um Ziffern. Als ich die Überschrift laß, dachte ich, du hast ein Formular mit 20 Input-Feldern, in die Zahlen eingegeben werden. Solche Mißverständnisse kann man durch die Verwendung der richtigen Begriffe vermeiden.

                2. Ich frage mich, wo zu diese "Zahl" gut sein soll. Falls damit wirklich gerechnet wird: Willst du einen Laserstrahl zum Mars schicken oder so etwas? Ansonsten ist eine solche Genauigkeit schlicht unsinnig. Ich denke aber, du benutzt es eh nur als Schlüssel für irgendwas, und da ist ein String ja vollkommen ausreichend.

                3. Mir sind die in Anführung geschriebenen "false" und "true" aufgefallen: Funktioniert das?

                Kommentar

                Lädt...
                X