Hallo ChrisB, hallo dedlfix,
danke für Eure Antwort!
// Maskierende Slashes aus POST Array entfernen
if (get_magic_quotes_gpc()) { $_POST = array_map( 'stripslashes', $_POST ); }
> >
> > Wofür soll das gut sein?
>
> Es soll die Verfälschung der Daten, die durch ggf. aktiviertes magic\_quotes\_gpc entstanden ist, wieder rückgängig machen.
Ich weiß schon, dass eingeschaltetes MAGIC QUOTES zu einem Escapen führt und stripslashes das wieder rückgängig macht.
> Du siehst falsch, was aktiviertes magic\_quotes\_gpc bewirkt.
Ich meinte vielmehr, dass durch die Verwendung von Prepared Statements - zumindesht habe ich das bisher so verstanden - egal ist, was der User eingibt, weil die Eingabe von der Ausführung (oder was auch immer) getrennt ist. Also das 1:1 die Eingabe aus dem Formular eingetragen wird. Mit allen Slashes, Anführungszeichen, etc.
Bei meiner Versuchsseite sieht die Verarbeitung der Daten, die aus einem Formular kommen, so aus:
~~~php
include("connect.php");
$vorname=$_POST["vorname"];
$familienname=$_POST["familienname"];
$aktion='INSERT INTO `014_testbank` (`testbank_vorname`, `testbank_familienname`) VALUES (?, ?)';
$eintrag=$meine_datenbank->prepare($aktion );
$eintrag->bind_param('ss',$vorname,$familienname);
$eintrag->execute();
if($eintrag->affected_rows==1)
{
echo"<p>Der Datensatz \" ".htmlentities($vorname)." ".htmlentities($familienname)." \" wurde der Datenbank hinzugefügt.</p>\n";
}
else
{
echo"<p>Der Datensatz konnte der Datenbank leider nicht hinzugefügt werden.</p>\n";
}
include("disconnect.php");
Wenn jetzt MAGIC QUOTES eingeschaltet _wäre_ (das habe ich abgedreht) und ich _nicht_ ein
if (get_magic_quotes_gpc()) { $_POST = array_map( 'stripslashes', $_POST ); }
verwende, was kann dann passieren? Ich bin jetzt _sehr_ verwirrt, weil ich so oft gelesen habe, ich brauche mir bei Verwendung von mysqli und Preparede Statements keine weiteren Sorgen machen!?
MfG
Michael