Problem mit ' und $_POST

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

  • Problem mit ' und $_POST

    Hallo,

    ich habe noch ein kleines Problem mit $_POST

    Ein Textfeld wird mit Hilfe einer select Abfrage aus einer Datenbank gefüllt
    Das funzt auch einwandfrei. Schicke ich nun das formular ab und schaue mir dann das $_POST Array an, dann wurde nur ein Teil des Strings übertragen.

    String hat folgendes aussehen:
    Hallo ich bin' ein Test

    Nach dem abschicken ist im POST Array nur Hallo ich bin' enthalten.
    Kann mir jemand helfen?

    Danke für Tipps

  • #2
    Wird wohl eher an deiner Programmierung liegen. Was machst du? Wie gibst du den String aus? HTML-Quelltext geguckt, ...

    Kommentar


    • #3
      Re: Problem mit ' und $_POST

      OffTopic:
      Bei dir folgt aber auch ein "Problem" auf's andere, hm?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        gibt's du das Array mit "print_r" aus ?

        Kommentar


        • #5
          Ich lese den string aus der Datenbank aus und gebe in in dem Textfeld aus.
          Dort steht er auch komplett drin. Also Hallo ich bin' ein Test.

          Wenn ich nun das Formular abschicke erzeuge ich mir eine Variable welche den $_POSTinhalt des Feldes speichert. Also so $testwert = $_POST['teststring'];

          wenn ich mir nun mit echo die Variable $testwert anschaue, dann steht folgendes drin: Hallo ich bin'. (genau das gleiche, wie wenn ich das PostArray mit print_r anschaue)Obwohl vorher im Feld der gesamte String angezeigt wurde. Schein al ob er bei dem ' Schwierigkeiten hätte.

          Kommentar


          • #6
            Nur zur sichertheit .... : was zeigt

            print_r $_POST;

            ???

            Kommentar


            • #7
              print_r($_POST);:

              PHP-Code:
              Array
              (
                  ...
                  [
              teststring] => Hallo ich bin
                  
              ...

              Also, um mich zu verbessern, der String wird noch vor dem ' abgeschnitten.

              Es fehlt: ' ein test

              Kommentar


              • #8
                Ich lese den string aus der Datenbank aus und gebe in in dem Textfeld aus.
                Dort steht er auch komplett drin. Also Hallo ich bin' ein Test.
                Wie sieht der HTML-Quelltext aus???

                Kommentar


                • #9
                  Also, ich habe es oben nur verkürzt aufgeführt, da ich dachte, dass es hierfür eine relativ einfache Lösung gibt.

                  Tatsächliche umgebung ist folgende: Mit Hilfe des Inhalts der Datenbank setzte ich ein Selectfeld auf selected. Funktioniert folgendermassen:
                  Eine Tabelle mit allen erlaubten werten füllt das selectfeld und dieser String, um den sich alles dreht wird mit den Werten der fülltabelle verglichen. Stimmen sie überein, dann wird an dieser stelle das selected gesetzt. Das funzt auch. Nach dem Abschicken wird wie schon bekannt abgeschnitten.

                  Hab das ganze gerade mal in einem einfachen Textfeld getestet und dabei sah die ausgabe im Post_array auf Grund vom magig_Quotes_gpc folgendermassen aus: Hallo ich bin(Backslash. Zeichen funzt hier nicht)' ein Test.

                  Verstehe nun nicht warum das selectfeld nach dem abschicken nur alles vor dem Backslash enthält.

                  Funktion welche das selectfeld aufbaut:
                  PHP-Code:
                  function create_select($name,$laenge$size$fuell_array$spaltenname$array,$null)
                  {
                    echo 
                  "<select name=\"$name\" size=\"$size\" style=\"width:$laenge\">";
                    
                  $wert_aus_vergleich $array["$spaltenname"];
                    if(
                  $null==nullable)
                    {
                    if (
                  $wert_aus_vergleich=="")
                    
                  $selected="selected";
                    else 
                  $selected="";
                    echo 
                  "<option value='' $selected></option>";
                    }
                    for (
                  $i 0$i <count($fuell_array); $i++)
                    {
                       
                  $wert $fuell_array[$i];
                       if (
                  $wert_aus_vergleich==$wert)
                          
                  $selected="selected";
                       else 
                  $selected="";
                       echo 
                  "<option value='$wert$selected>$wert</option>";
                    }
                    echo 
                  "</select>";

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    Wie sieht der HTML-Quelltext aus???

                    Kommentar


                    • #11
                      Original geschrieben von galaxy2
                      Verstehe nun nicht warum das selectfeld nach dem abschicken nut alles vor dem Backslash enthält.
                      Ich schon - es ist aus deinem PHP-Code deutlich erkennbar.

                      Aber ich werde es dir nicht sagen, bevor du nicht endlich mal einen Blick in den erzeugten HTML-Quellcode wirfst, und ihn hier auf postest - wozu du jetzt schon mehrmals aufgefordert wurdest, verflixt!
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Ich schon - es ist aus deinem PHP-Code deutlich erkennbar.
                        Spätestens im HTML-Quelltext sollte es ihm eigentlich aufgefallen sein...

                        Kommentar


                        • #13
                          Schau Die mal den HMTL Source der Seite vor dem Abschicken an. Ist dort das Select richtig befüllt?
                          Anhand deines Codes kann man nun auch nicht sehen was vorher drin ist.

                          Oder Poste mal das HTML Deiner Seite vor dem POST ....

                          Kommentar


                          • #14
                            So. Hier ist der Code:
                            PHP-Code:
                            <select name="testselect" size="1" style="width:180">
                            <
                            option value='hurra' >hurra</option>
                            <
                            option value='Hallo ich bin' ein Test' selected>Hallo ich bin' ein Test</option>
                            ... 

                            Ah jetzt hab ich auch den Durchblick. Der rest wird beim übertragen ignoriert. Wie könnte ich den dieses "abschneiden" bei value vermeiden?

                            Kommentar


                            • #15
                              Ah jetzt hab ich auch den Durchblick. Der rest wird beim übertragen ignoriert. Wie könnte ich den dieses "abschneiden" bei value vermeiden?
                              mit addslashes

                              gruß
                              peter
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar

                              Lädt...
                              X