Servus,
ja, ich weiß dass das nicht der erste Thread mit dieser Überschrift ist, hab aber gerade eine kleine Denkblockade.
Will meine DB vor Injections schützen, und habe dazu mal ein wenig mit mysql_escape_string und magic_quotes_gpc herumgespielt.
Im folgendem Code gibt es ein kleines Formular, das Daten an sich selbst schickt, die Daten ausgibt, sie dann in eine DB schreibt, Query wird ausgegeben, und gleich wieder ausliest.
So werden von magic_quotes nach Eingabe von " oder ' Slashes eingefügt, aber welche Funktion löscht sie beim Schreiben in die DB?
Denn in der DB sind die Slashes nicht mehr da, und auch nach der Ausgabe nicht.
Ist dies auch eine PHP Funktion die deaktiviert werden könnte, oder ist das von mysql aus?
Hier eine Probeausgabe :
Ausgabe der Roh-POST-Daten :
A \" B \' C \\ D
Ausagbe der Query :
Update test set name= ' A \" B \' C \\ D' WHERE superID=1
Ausgabe der Daten aus DB :
1 A " B ' C \ D
ja, ich weiß dass das nicht der erste Thread mit dieser Überschrift ist, hab aber gerade eine kleine Denkblockade.
Will meine DB vor Injections schützen, und habe dazu mal ein wenig mit mysql_escape_string und magic_quotes_gpc herumgespielt.
Im folgendem Code gibt es ein kleines Formular, das Daten an sich selbst schickt, die Daten ausgibt, sie dann in eine DB schreibt, Query wird ausgegeben, und gleich wieder ausliest.
So werden von magic_quotes nach Eingabe von " oder ' Slashes eingefügt, aber welche Funktion löscht sie beim Schreiben in die DB?
Denn in der DB sind die Slashes nicht mehr da, und auch nach der Ausgabe nicht.
Ist dies auch eine PHP Funktion die deaktiviert werden könnte, oder ist das von mysql aus?
Hier eine Probeausgabe :
Ausgabe der Roh-POST-Daten :
A \" B \' C \\ D
Ausagbe der Query :
Update test set name= ' A \" B \' C \\ D' WHERE superID=1
Ausgabe der Daten aus DB :
1 A " B ' C \ D
PHP-Code:
<?PHP
if($_POST['submit'])
{
echo "Ausgabe der Roh-POST-Daten :<br><br>";
echo $_POST['name']."<br><hr>";
//-- Schreiben in DB
//-- DB Verbindung aufbauen, Daten schreiben
mysql_connect("localhost","test","test");
mysql_select_db("test");
$sql="Update test set name= '".$_POST['name']."' WHERE superID=1";
echo "Ausagbe der Query :<br><br>".$sql."<br><hr>";
$query=@mysql_query($sql) or die ("Fehler beim Verbindungsaufbau Test : ".mysql_error());
//--Auslesen der Daten aus der DB
$sql="Select id, name from test";
$query=@mysql_query($sql) or die ("Fehler beim Verbindungsaufbau Test : ".mysql_error());
echo "Ausgabe der Daten aus DB :<br><br>";
while($result=mysql_fetch_object($query))
{
echo $result->name."<br><hr>";
}
}
?>
<form action="nummeric.php" method="post" name="form1" target="_parent">
<p>
<input name="name" type="text" id="name">
Testeingabe</p>
<p>
<input type="submit" name="submit" value="Abschicken">
</p>
</form>
Kommentar