Mysql_real_escape_string()

hi
die funktion mysql_real_escape_string() macht ja bekanntlich einige zeichen für die mysql-befehle unschädlich. bei mir werden die slashes / aber auch in die datenbank geschrieben, was ja eigentlich nicht sein darf.
wisst ihr wie ich das verhindern kann?
an die PHP.ini komme ich ja nicht ran (da kann man das glaube ich auch einstellen).
lg
Martin

Du darfst eigentlich in die Datenbank schreiben was du willst und dass Slashes gefährlich sind, ist mir auch neu.

Meinst du vielleicht die Backslashes ("")?

ja sorry ich meinte die backslashes.
wenn in einer variable folgendes steht:

Martin sagt: “Hallo das is’n toller tag”.

dann steht in der datenbank

Martin sagt: “Hallo das is’n toller Tag”.

Die backslashes werden also nicht herausgefiltert.
lg
Martin

macht doch was es soll.
es escaped die gefählichen zeichen…

ja das ist ja auch schön. nur habe ich gelesen, dass in der datenbank diese backslashes nicht mehr vorhanden sind. wenn ich mich nicht irre, kann man das in der php.ini einstellen.

wenn das nicht der fall ist müsste ich wohl stripslashes () vor der ausgabe benutzen.

ist eventuel magic_quotes_gpc aktiviert? Das musst du deaktivieren, es ist sowieso veraltet.

das kann gut sein, aber wie kann ich das denn deaktivieren? macht man das nicht in der php.ini? da komme ich doch nicht ran oder?

war da nicht was mit ner users.ini, das hier funktioniert hat?

bau doch sowas in dein skript ein:

if(get_magic_quotes_gpc() == 1) { $str = stripslashes($str); }

das is dann universal verwendbar.

achso weil wenn magic_quotes aktiviert ist nur alle doppelten backslashes entfernt werden. habe verstanden. danke

Auf PHP.net findest du sogar ein fertiges Codestück um magic_quotes_gpc rückgängig zu machen.
php.net/manual/de/security.magic … abling.php
Performanter ist es auf jeden Fall, per .user.ini dies zu deaktivieren. Erstelle im Hauptverzeichnis eine .user.ini (Punkt am Anfang) mit dem Inhalt aus obigem Link (Beispiel 1).