Lehre zitiert Apostrophe
Frage
Ich bin mit Doctrine ORM für PHP und Zend MVC. Ich habe eine MySQL-Datenbank. Als ich in die Datenbank einzufügen ist es Anführungszeichen zu entkommen. Mit anderen Worten, wenn-ich eingeben
<input name="customer_name" value="Test'ed user"> ...
in meine Form und weist auf eine Lehre Objekt und speichern.
Wenn ich mir die Datenbank über die mysql-Befehlszeile ich
Test\'ed user
Gibt es eine Möglichkeit, dies zu deaktivieren, oder muss ich stripslashes()
auf jede Variable verlangen?
Lösung
Nach magic_quotes_gpc
aktiviert werden, entweder indem php.ini suchen oder Laufen get_magic_quotes_gpc()
.
Wenn Sie den Zugriff auf die Datei php.ini haben, dann deaktivieren. Andernfalls müssen Sie die Schrägstriche in Ihren Skripten stripslashes()
entfernen.
Andere Tipps
Sie können die magic_quotes_gpc
Pest ganz vermeiden, indem so etwas zu Anfang Ihrer Seiten hinzufügen:
if(get_magic_quotes_gpc()) {
if(!function_exists('stripishlashes_all')) {
function stripslashes_all(&$data) {
foreach($data as &$_value) {
if(is_array($_value)) {
stripslashes_all($_value);
}
else {
$_value = stripslashes($_value);
}
}
}
}
stripslashes_all($_REQUEST);
}
Sehr nützlich, wenn Sie Ihren Code auf einem Server ausgeführt wird, müssen Sie nicht die vollständige Kontrolle über, oder wenn Sie planen, es zu verteilen.