0

学校の宿題では、を使用する関数を作成し、 SQLとHTMLの挿入を防ぐ必要があります。trim()htmlspecialchars()mysql_real_escape_string()

しばらく試してみましたが、うまくいきません。foreachループとextract関数を試しました。私は何か間違ったことをしている、または何かを逃しているに違いありません。

これまでのところ、私はこれを持っています:(変数が処理されているかどうかを確認するためだけに)

foreach ($_Post as $Key => $Value) { $$Key = $Value; echo $$Key."<br>"; }

しかし、それは何も返しません。

すべての変数でそれ自体でetcを使用できますtrimが、もっと簡単な方法があるはずです。

変数「 voorletters $_POST」、「tussenvoegsel」、「naam」、「adres」、「huisnummer」(数字)、「telefoon」(数字)、「postcode」、「woonplaats」、「geslacht」、「email」があります。 'および'wachtwoord'(パスワード)。

私を助けてください:(!私はphpの初心者なので、徹底的に説明してください。

4

4 に答える 4

1

これはどうですか

foreach($_POST as $key => $value) {
    echo 'Current value in $_POST["' . $key . '"] is : ' . $value . '<br>';
    $_POST[$key] = your_filter($value);
}

your_filter()トリム、htmlspecialcharsなどを呼び出す関数はどこにありますか。:

function your_filter($value) {
    $newVal = trim($value);
    $newVal = htmlspecialchars($newVal);
    $newVal = mysql_real_escape_string($newVal);
    return $newVal;
}

$_POSTではない変数名にも注意してください$_Post。ここで$$を使用する必要はありません。ループ内にキー名があり$key、配列内の値にアクセス/置換できます。$_POST[$key]

編集:現在の値を出力するためのエコーを追加しました

your_filter()EDIT2:関数の例を追加しました

于 2012-11-16T10:21:30.217 に答える
0
// $_POST = array('voorletters' => '<<', 'tussenvoegsel' => '>>', 'naam' => '<<');

foreach($_POST as &$val) //pass any post value by reference
   $val = mysql_real_escape_string(htmlspecialchars(trim($val)));


extract($_POST);
echo $voorletters;
echo $tussenvoegsel;
echo $naam;
于 2012-11-16T10:32:27.093 に答える
-1
foreach ($_POST as $Key => $Value) { 

 echo yourFunctionName($Value)."<br/>"; 

}
于 2012-11-16T10:20:51.147 に答える
-1

これを試して...

function real_escape_and_trim($value)
{
    $value = trim($value);
    $value = mysql_real_escape_string($value);
    return $value;
}

foreach($_POST as $key => $value)
{
    $_POST[$key] = real_escape_and_trim($value);
}

$field_name = $_POST['field_name'];
于 2015-11-02T12:33:22.527 に答える