String vergleich

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

  • String vergleich

    Hallo Leute.
    Also bei mir hängst gerade an nem scheinbar einfachen Problem. Aber ich komm einfach nicht weiter.

    Ich arbeite gerade an einem Private-Mesasge code.
    Damit niemand bsp. per F5-Drücken eine Nachricht mehrmals verschicken kann, überprüfe ich den aktuell eingegebenen Text mit einem Wert aus der DB.

    Ausgabe (im Quellcode):
    Eingabe des Nutzers:
    fdghfhfhf<br />\r\ngh<br />\r\ndf<br />\r\nhdf<br />\r\ngh<br />\r\ndfg<br />\r\nh<br />\r\ngfh<br />\r\ndf
    Aus der DB:
    fdghfhfhf<br />
    gh<br />
    df<br />

    hdf<br />
    gh<br />
    dfg<br />
    h<br />
    gfh<br />
    df
    Irgendwie hat der da "\r\n" mit im String stehen.
    Meine Funktion um den $text zu zu escapen:

    PHP-Code:
    private function checktext($text) {
    $text mysql_escape_string(nl2br(wordwrap(
    htmlentities($textENT_QUOTES), 60"<br>\n"1)));

    return 
    $text;

    Würde mich sehr über Hilfe freuen. mfg
    *blubb*

  • #2
    Re: String vergleich

    Original geschrieben von deathcakeman
    Würde mich sehr über Hilfe freuen. mfg
    hast du auch eine frage dazu?
    das f-5-problem kann man z.b. mittels header-weiterleitung umgehen. denkbar wäre auch, dass du ein eindeutiges formular-token in der session hinterlegst und nur dann den db-eintrag vornimmst, wenn es existiert.

    Kommentar


    • #3
      Ja.
      Ich würde gerne wissen, warum 2 identische Eingaben versch. interpretiert werden, bzw. warum bei dem einen String "\r\n" mit ausgegeben wird. Wenn ich die "Eingabe" aber aus der Datenbank hole, tritt dieses "Phänomen" jedoch nicht mehr auf.

      (Oben stehen ja die Ausgaben der beiden Strings)
      *blubb*

      Kommentar


      • #4
        immer schön var_dumps der daten ausgeben und über quelltextansicht des browsers vergleichen.

        Kommentar


        • #5
          var_dump() (aus der Usereingabe
          string(319)
          "sdfsdfsf<br />\r\nk<br />\r\nk<br />\r\nk<br />\r\nk
          <br />\r\nk<br />\r\nk<br />\r\nk<br />
          \r\n&auml;&auml;&ouml;&auml;&ouml<br>
          <br />\n;&auml;&ouml;&auml;&ouml;&auml;
          <br />\r\n&ouml;&auml;<br />\r\n&ouml;&auml;<br />\r
          <br><br />\n<br />\n\r<br />\n&ouml;&auml;
          br />\r\n&ouml;&auml;<br />
          \r\n##&#039;&#039;&#039;&#039;"

          var_dump() (aus der DB):

          string(289) "sdfsdfsf<br />

          k<br />
          k<br />
          k<br />
          k<br />
          k<br />
          k<br />
          k<br />
          &auml;&auml;&ouml;&auml;&ouml<br><br />
          ;&auml;&ouml;&auml;&ouml;&auml;<br />

          &ouml;&auml;<br />
          &ouml;&auml;<br />
          <br><br />
          <br />
          <br />
          &ouml;&auml;<br />
          &ouml;&auml;<br />
          ##&#039;&#039;&#039;&#039;"
          Also. Ich hab echt keine Ahnung voran das liegen könnte.

          Das ich habe mehrmals den selben Text abgeschickt. Der "abgeschickte" wird dann der UPDATE in die DB eingefügt.
          Dh.-->beide Eingaben sind 100% identisch.
          Nur bei der DB Ausgabe wurden \r und \n als Zeilenumbrücje ausgegeben.

          meine Frage jetzt. Weiß jmd woran das liegen könnte?
          (Die Funktion zum "bearbeiten" des Strings steht in meinem ersten Post)
          *blubb*

          Kommentar


          • #6
            zum einen sollte es dich nicht wundern: \r\n ist in der tat ein zeilenumbruch. wenn du die zeichenkette "backslash-r-backslash-n" benötigst, solltest du diese entsprechend escapen (evtl. sogar bei der eingabe).

            zum anderen ist dein ansatz verkehrt (unperformant und unsicher). mach es lieber auf die von 3dmax beschriebene art.

            Kommentar


            • #7
              Mkay..wenn du meinst.

              Noch eine Frage. Wieso ist dieser Ansatz unsicher?

              mfg
              *blubb*

              Kommentar


              • #8
                naja, kannst du dir denn sicher sein, dass der textvergleich auf beliebigen codierungen richtig funktioniert? oder: kannst du dir sicher sein, dass es nicht absicht war, zwei mal das gleiche zu sagen? (in diesem forum z.b. muss man vielen leuten die sachen fünf mal sagen, bis sie diese verstehen).

                Kommentar

                Lädt...
                X