Portal > Foren > Datenbanken, Server, Betriebssysteme und sonstige Programmiersprachen > Datenbanken > mysql_escape_real_string() macht aus Umbrüchen \r\n
Antwort
 
Themen-Optionen
Alt 10.09.2005, 21:52 Nach oben    #1
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard mysql_escape_real_string() macht aus Umbrüchen \r\n

Also...
Ich habe einen Query, der sieht so aus:
PHP-Code:
<?php

$query 
"
    USE
        `{$db_name}`
    ;
"
;

?>
Ist nur einer meiner vielen Queries, bei denen das Problem auftaucht.

Jedenfalls escape ich ihn in meiner DB-Klasse mit mysql_real_escape_string().
PHP-Code:
<?php

$query 
mysql_real_escape_string($query$this->db_link);

?>
Allerdings macht die Funktion aus jeglichen Zeilenumbrüchen ein \r\n.
Bei obigem Query kommt also Folgendes raus.
Code:
string(36) "\r\n				USE\r\n					`phpext`\r\n				"
Die Tabs bleiben also erhalten. Ohne den Resource-Link und mit mysql_escape_string() passiert das selbe.

Warum? Und vor allem: Wie kann ich das umgehen?

Ich arbeite mit PHP 5.0.4 und dem Apache 2.0.53 unter WinXP SP1.
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.09.2005, 21:59 Nach oben    #2
Neuer Benutzer
 
Registriert seit: 05.09.2005
Beiträge: 21
Standard mysql_escape_real_string() macht aus Umbrüchen \r\n

Wo ist dabei denn das Problem?
Abgesehen davon dass man's nicht lesen kann... aber der Mysql-Server sollte das doch können
Grollicus ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.09.2005, 22:18 Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard mysql_escape_real_string() macht aus Umbrüchen \r\n

ich glaube, du hast die funktionsweise von mysql_escape_real_string nicht verstanden.

Es geht nicht darum, einen query zu escapen, sondern zeichenketten, die in die db geschrieben (o.ä.) werden.

PHP-Code:
<?php
$boese 
$_GET["boesevariable"];
$sql "UPDATE abc SET def = '".$boese."';"// so nicht
$sql "UPDATE abc SET def = '".mysql_escape_real_string($boese)."';"// so isses richtig
?>
die variable $boese kann der nutzer mittels eines formulars übergeben. wenn sie du aber so etwas enthält:
Code:
lalala', admin = 1, text = '
würde, ohne mysql_escape_real string, dieser code entstehen:
Code:
UPDATE abc SET def = 'lalala', admin = 1, text = '';
(vorrausgesetzt, magic_quotes ist deaktiviert)

such mal in diesem forum nach mysql injection, da war mal was zu diesem thema.
__________________
Programming today is a race between software engineers striving to build bigger and better
idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the
universe is winning.
Buhmann ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.09.2005, 22:24 Nach oben    #4
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard mysql_escape_real_string() macht aus Umbrüchen \r\n

Achso. Es werden also Werte, die in die DB geschrieben werden sollen, abgefertigt.
Im Manual wird das anhand der Beispiele zwar angedeutet, aber nicht klargestellt.
Heißen Dank
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:55 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44