Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP & MySQL] Daten von Textfeld in DB speicher (https://www.delphipraxis.net/127408-%5Bphp-mysql%5D-daten-von-textfeld-db-speicher.html)

Yheeky 12. Jan 2009 22:29


[PHP & MySQL] Daten von Textfeld in DB speicher
 
Hi,

ich habe ein Gästebuchformular erstellt und möchte die Daten in einer Datenbank speichern. Das funktioniert auch soweit, doch wenn ich in dem Textfeld (textarea) den Text "Das ist ein Test" speichern möchte, kommt "Das+ist+ein+Test" heraus. Ich verwende zwecks SQL Injection die Funktion mysql_real_escape_string.
Wie kann ich den Text "normal" abspeichern ohne dass ich die +-Zeichen beim Ausgeben durch " " ersetzen muss? Gibt es da keine "Rückwärtsfunktion"?

jfheins 12. Jan 2009 22:31

Re: [PHP & MySQL] Daten von Textfeld in DB speicher
 
Du verwendest GET?

Wahrscheinlich suchst du urldecode() siehe auch Wikipedia

Je nach Einstellung kann vor dem mysql_real_escape() noch ein stripslashes() hilfreich sein ;)

Edits: Hervorgehoben/Rechtschreibung :)

Valle 12. Jan 2009 22:53

Re: [PHP & MySQL] Daten von Textfeld in DB speicher
 
Zitat:

Zitat von jfheins
Du verwendest GET?

Du solltest sowas immer per POST machen!
Siehe: http://de.wikipedia.org/wiki/XSRF
Edit:// Ok, also die Sache mit dem POST steht zurecht unter "Unzulängliche Abwehrmaßnahmen". Da ich aber denke, dass du kein Shared-Secret System eingebaut hast und das auch vorerst nicht vor hast, würde ich trotzdem zu Post raten. Es gibt auch noch andere Gründe, z.B. die Begrenzung der URL-Länge oder dass GET-Daten in den Server-Logs stehen, wo sie nichts zu suchen haben usw...

Ansonsten: $_POST['key'] und $_GET['key'] geben alle die Daten bereits dekodiert
zurück. Wie machst du das?

Und wegen mysql_real_esacpe_string: Informiere dich mal über Magic Quotes und stripslashes. Die meisten Server wenden vorher bereits eine ähnliche Funktion auf alle Elemente im $_POST-, $_GET- usw. -Array an. Dann muss man Magic Quotes entweder ausschalten (bessere Idee) oder vorher nochmal mit stripslashes drüber gehen. (schlechtere Idee)

Mit freundlichen Grüßen,

Valle

Yheeky 12. Jan 2009 22:58

Re: [PHP & MySQL] Daten von Textfeld in DB speicher
 
Ich mache das über Post.

Zitat:

Zitat von jfheins
Wahrscheinlich suchst du urldecode() siehe auch Wikipedia

Jetzt werden die Plus-Zeichen lediglich in %2B umgewandelt.

Zitat:

Zitat von jfheins
Je nach Einstellung kann vor dem mysql_real_escape() noch ein stripslashes() hilfreich sein ;)

Inwiefern muss da noch ein stripslashes() rein? Reicht mysql_real_escape() nicht aus?

Valle 12. Jan 2009 23:05

Re: [PHP & MySQL] Daten von Textfeld in DB speicher
 
Zitat:

Zitat von Yheeky
Zitat:

Zitat von jfheins
Wahrscheinlich suchst du urldecode() siehe auch Wikipedia

Jetzt werden die Plus-Zeichen lediglich in %2B umgewandelt.

Wie kommst du an die Daten von POST? Einfach per $_POST? Ich glaube, dass wir da einige Zeilen Code brauchen. Das Problem muss wohl woanders liegen. Normal wendet man keine weiteren Funktionen auf diese Daten an, damit diese unkodiert bei dir ankommen.

Zitat:

Zitat von Yheeky
Zitat:

Zitat von jfheins
Je nach Einstellung kann vor dem mysql_real_escape() noch ein stripslashes() hilfreich sein ;)

Inwiefern muss da noch ein stripslashes() rein? Reicht mysql_real_escape() nicht aus?

Schau dir mal meinen Post an, ich habe das noch etwas genauer beschrieben. Stichwort dabei ist eben "Magic Quotes". Ich denke dazu müsste einiges zu finden sein, auch auf Wikipedia. Ich denke aber auch, dass dies ein anderes Problem ist und mit den +-Zeichen nichts zu tun hat.

Mit freundlichen Grüßen,

Valle

Yheeky 12. Jan 2009 23:11

Re: [PHP & MySQL] Daten von Textfeld in DB speicher
 
Ah, jetzt funktionierts...hatte noch ein urlencode drin, was die Plus-Zeichen reingemacht hat :-)
Okay, danke für die Begriffe, ich les mich da gleich mal in Wiki ein ;-)

Danke für die Hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz