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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top