Hallo dedl,
Du hast aber ein generelles Ablauf-Problem. Du müsstest die Slahes gleich bei der Eingabe der Daten wegwerfen und sie nicht erst bis zur Datenbank gelangen lassen.
Das ist ja der Punkt- das wollte ich eigentlich, aber da wurde es richtig "verrückt". Ich versuchs mal kurz zu machen.
Das ist die Funktion in der Formulardatei:
function array_stripslashes(&$var) {
if(is_string($var)) {
$var = stripslashes($var);
}
else {
if(is_array($var)) {
foreach($var AS $key => $value) {
array_stripslashes($var[$key]);
}
}
}
}
if(get_magic_quotes_gpc()) {
array_stripslashes($_REQUEST);
}
Das ist das Formularfeld:
name="name" value="<?php if (isset($_POST['name'])) echo htmlentities($_REQUEST['name']); ?>"
Dann folgen diverse Abfragen und der Eintrag in die Datenbank:
$send = "";
if(isset($_POST['send'])) {
$send = key($_POST['send']);
}
switch ($send) {
case 'ok': if (isset($_POST["name"])) {
$namski = $_POST["name"];
Das funktioniert soweit. Dies slashes werden im formularfeld auch gestript, nur nicht beim Eintrag in die Datenbank. Dazu wollte ich die Funktion so ergänzen:
if(get_magic_quotes_gpc()) {
array_stripslashes($_REQUEST);
array_stripslashes($_POST);
}
Aber dann wird meine switch-Schleife plötzlich nicht mehr durchlaufen. Ich hab schon alle möglichen Varianten probiert, aber mit diesem Zusatz von $_POST in der Funktion wills irgendwie nicht funktionuckeln.
Gruß,
Onkel Schnitzel