| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

07-10-2010, 21:18
|
|
Martin204
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 5
|
|
str_replace - Problem mit HTML-Code
Hallo,
vielleicht kann mir hier jemand weiterhelfen. Ich habe mir eine Klasse erstellt die mir den SQL-Code für Insert-/Update-Anweisungen für MySQL erstellt. Jetzt wollte ich die Klasse um eine Funktion erweitern mit der ich einen über ein Textarea Feld den Code eines YouTube-Videos hinzufügen kann. Wenn ich allerdings die " durch ein \" ersetze ist $wert plötzlich leer? Hat jemand eine Idee?
PHP-Code:
function addHtmlTextValue($spalte, $wert){ $wert = str_replace('"', '\"', $wert); $this->addValue($spalte, $wert); }
Der dazgehörige HTML-Code des Beispielvideos:
HTML-Code:
<object width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/j6OixMG2vLA?fs=1&hl=de_DE"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/j6OixMG2vLA?fs=1&hl=de_DE"
type="application/x-shockwave-flash" allowscriptaccess="always"
allowfullscreen="true" width="640" height="385"></embed>
</object>
In der Variablen $wert steht der YouTube Code vor dem ersetzen definitiv drin
Geändert von Martin204 (07-10-2010 um 21:22 Uhr)
|

07-10-2010, 21:20
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Warum willst du " durch \" ersetzen?
|

07-10-2010, 21:21
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
@Martin204
Bitte brich erst mal deinen Code so um, dass man nicht kilometerweit nach rechts scrollen muss.
Danke
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

07-10-2010, 21:23
|
|
Martin204
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 5
|
|
@Kropff
Ich hoffe jetzt ists besser mit der Lesbarkeit
@h3ll
ich muss " durch \" ersetzen da sonst die Datenbank mekkert
|

07-10-2010, 21:26
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von Martin204
ich muss " durch \" ersetzen da sonst die Datenbank mekkert
|
Fürs Escaping gibt es fix fertige Funktionen, die es auch wirklich richtig machen (allein " durch \" ersetzen reicht bei Weitem nicht).
PHP: mysql_real_escape_string - Manual
Diese Funktion musst du bei jedem Wert anwenden, den du in einem Query einfügst, da sonst dein Script anfällig für die gefährlichen und häufig ausgenutzten SQL-Injections ist.
|

07-10-2010, 21:27
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Martin204
ich muss " durch \" ersetzen da sonst die Datenbank mekkert
|
Dann nutze die Funktion, die dafür vorgesehen ist - mysql_real_escape_string.
Das ist echt ein schon zigtausendfach diskutiertes Thema ...
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

07-10-2010, 21:29
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Und was ist mit mysql_real_escape_string? Außerdem wäre die Einfügeoperation auch noch interessant. Mal daran gedacht, dort mit Hochkommata zu arbeiten? Nur so ein Beispiel:
PHP-Code:
$str = '<object width="640" height="385">...</object>';
$query = 'INSERT INTO bla (blubb) VALUES (\''.$str.'\')';
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

07-10-2010, 21:35
|
|
Martin204
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 5
|
|
Danke für die schnelle Antwort, leider tritt das Problem auch mit
PHP-Code:
$wert = mysql_real_escape_string($wert);
auf, davor ist der Code enthalten, danach nicht mehr?
|

07-10-2010, 21:38
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Dann machst du wohl noch irgendwas anderes falsch, was wir aus dem gezeigten Minimalcode aber nicht erkennen können.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

07-10-2010, 21:40
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Zitat:
Zitat von Martin204
davor ist der Code enthalten, danach nicht mehr?
|
Dann zeig doch mal, wie du den Wert in die DB bekommst. Imho liegt da das Problem.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

07-10-2010, 21:47
|
|
Martin204
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 5
|
|
Endlich ich habe das Problem gefunden,
im Formular habe ich die Encrypt-Anweisung angepasst:
HTML-Code:
<form enctype="application/x-www-form-urlencoded" id="Formular" action="gallerievideo_save.php" method="post" name="Formular">
Jetzt hats geklappt, MySQL mekkert nicht mehr und der Code wird gespeichert.
Vielen Dank für Eure schnelle Hilfe
|

08-10-2010, 08:36
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
hm - bei normalen Post daten brauchst du ja den enctype gar nicht angeben .. den passt man höchstens an, wenn man file-upload einbauen möchte
__________________
Wer LESEN kann, ist klar im Vorteil!
|

08-10-2010, 10:03
|
|
Martin204
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 5
|
|
Ich hatte davor einen File-Upload für eine Video-Datei drin und hab diesen dann entfernt. Evtl. hing es damit zusammen. Nach 10 h Programmierung am Stück will ich aber auch nicht ausschliessen das ich sonst irgendeinen Blödsinn eingebaut und durch rumprobieren wieder entfernt habe.
Nochmals Danke für Eure Hilfe!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|