PHP - Speichern von Text in der MySQL-Datenbank
Ich habe ein Textfeld auf meiner website, und ich brauche, um zu speichern, was der Benutzer in meiner Datenbank, und rufen Sie es zu einem späteren Zeitpunkt. Ich brauche, um es zu speichern, genau wie der Benutzer eingegeben, einschließlich Sonderzeichen, Zeilenumbrüche, etc.
Welche Verfahren sollte ich verwenden in PHP, speichern Sie diese in meine Datenbank-Feld (das ist ein 'text' - Feld)? Sollte ich unter Verwendung der PHP-html_encode oder etwas ähnliches?
Danke.
Edit: ich brauche auch zu speichern, korrigieren, formatieren ich.e-tabs und mehrere Leerzeichen.
InformationsquelleAutor Tom | 2009-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte man nicht html-kodiert die Daten beim schreiben auf die datastorage - so könnten Sie Ihre Daten auch für etwas anderes (z.B. E-Mails, PDF-Dokumente und so weiter). Als Assaf schon gesagt: es ist zwingend zu vermeiden, SQL-Injektionen durch die Flucht der Eingabe oder über parametrisierte insert-Abfragen.
Sollten Sie, keine, sagen wir mal, muss jedoch html-codieren Sie Ihre Daten, wenn Sie zeigen, dass Sie es auf einer HTML-Seite! Dann rendert gefährlichen HTML-oder Javascript-code nutzlos, da die HTML-tags in den Daten vorhanden, nicht erkannt werden als HTML-tags vom browser nicht mehr.
Der Prozess ist ein wenig komplizierter, wenn Sie es den Nutzern ermöglichen, um Daten mit HTML-tags innerhalb. Sie haben dann überspringen Sie die Ausgabe-Kodierung zugunsten einer input-Desinfektion, das kann beliebig Komplex sein, je auf Ihre Bedürfnisse (erlaubten tags z.B.).
InformationsquelleAutor Stefan Gehrig
Verwenden mysql_real_escape_string():
Funktionieren sollte.
InformationsquelleAutor Calvin
Du nicht haben codieren Sie es um, um es zu speichern in einer mysql.
Werden Sie sicher, dass Sie eine parametrisierte insert-Befehl, um zu vermeiden, SQL-Injektion.
InformationsquelleAutor Assaf Lavie
Sollten die folgenden arbeiten:
Wenn Ihre Spalte ist utf8, Sie sollten nicht haben Probleme mit Sonderzeichen. Sobald Sie formatiert habe, den Inhalt richtig, Sie können es füttern, um mysql mit einem standard-insert-Methoden.
InformationsquelleAutor Jeremy Stanley
Richtig speichern der Benutzer-text zusätzlich die Formatierung, alles, was Sie haben zu tun ist, konvertieren alle Zeilenumbrüche, Brüche mit
nl2br($inputtext)
. Tun Sie dies nach dem filtern der Eingabe.InformationsquelleAutor Simi King