kostenloser Webspace werbefrei: lima-city


$_POST[] wird nicht immer übertragen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    javaphp

    Kostenloser Webspace von javaphp

    javaphp hat kostenlosen Webspace.

    Hallo,
    im Moment habe ich ein ganz merkwürdiges Problem.

    Folgender Code ist gegeben:
    print_r($_POST);
    
    $codebl = 0;
    while(isset($_POST['codeblock'.$codebl])){
      print_r(htmlentities($_POST['codeblock'.$codebl]));
      $codebl++;
    }


    im ersten print_r wird das gesamte Post Array ausgegeben!

    Aber in der While-Schleife wird der 3. Block nicht ausgegeben (von 5 Durchläufen)??


    Wisst ihr, wie ich das debugen kann? Irgendwie komm ich da nicht weiter...
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Probiers mal mit var_dump statt print_r.
    Btw kannst du auch Feldnamen wie codeblock[0] und codeblock[1] nutzen. Die konvertiert PHP in ein Array.
  4. Das liegt vermutlich daran, dass htmlentities den einen String schluckt, wegen Problemen mit der Zeichenkodierung.
    Um diese Vermutung zu überprüfen, kannst du den Code einmal testweise umbauen:
    print_r($_POST);
    
    $codebl = 0;
    while(isset($_POST['codeblock'.$codebl])){
      print_r(bin2hex($_POST['codeblock'.$codebl]));
      echo "<br>";
      $codebl++;
    }
    Die Funktion bin2hex stellt die Strings hexadezimal dar, sodass ich genau nachvollziehen kann, was dein Programm empfängt und in welcher Kodierung die Strings vorliegen. Wenn du diese Ausgabe dann hier veröffentlichst, schau ich mal nach, ob es daran liegt.

    Um das Problem dann zu beheben, musst du überall die gleiche Zeichenkodierung verwenden. Die Seite, von der du die Daten wegschickst, ist hier wohl das Problem.

    Edit: Ich habe gerade diesen Beitrag von czibere wieder gefunden. Da steht ausführlich, was man alles auf utf-8 einstellen muss.

    Beitrag zuletzt geändert: 12.8.2016 20:16:06 von fuerderer
  5. Autor dieses Themas

    javaphp

    Kostenloser Webspace von javaphp

    javaphp hat kostenlosen Webspace.

    Super danke euch beiden.
    Das htmlentities hat tatsächlich einen leerstring erzeugt.
    Der Grund wird wahrscheinlich ein ä gewesen sein. Dieses ist genau im besagten fehlerhaften Block vorgekommen.

    Ich hab auf der Seite wo ich das Formular absende folgendes eingefügt.
    <meta charset="utf-8">


    Jetzt wird es plötzlich ordentlich übertragen.

    Nochmal danke :)
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!