AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP & MySQL] Daten von Textfeld in DB speicher
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP & MySQL] Daten von Textfeld in DB speicher

Ein Thema von Yheeky · begonnen am 12. Jan 2009 · letzter Beitrag vom 12. Jan 2009
Antwort Antwort
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

[PHP & MySQL] Daten von Textfeld in DB speicher

  Alt 12. Jan 2009, 22:29
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"?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

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

  Alt 12. Jan 2009, 22:31
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
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#3

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

  Alt 12. Jan 2009, 22:53
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
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#4

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

  Alt 12. Jan 2009, 22:58
Ich mache das über Post.

Zitat von jfheins:
Wahrscheinlich suchst du urldecode() siehe auch Wikipedia
Jetzt werden die Plus-Zeichen lediglich in %2B umgewandelt.

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?
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#5

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

  Alt 12. Jan 2009, 23:05
Zitat von Yheeky:
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 von Yheeky:
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
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#6

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

  Alt 12. Jan 2009, 23:11
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz