1

誰かが私のためにこれを片付けてくれることを願っています。フォームの検証に関するベスト プラクティスに関する本を読んでいます。ユーザーが間違った値を入力すると、警告/エラー メッセージと共に入力したデータと共にフォームが返されます。

私がやりたいことは、ユーザーが以下をテキスト ボックスに入力するとします。

hello " there 

上記をテキストボックスに戻したい。以下のコードを使用すると、スラッシュが追加されます。

<input name="name" id="name" type="text" class="formbox"
    <?
        php if ($missing || $errors) {
            echo 'value="' . htmlentities($name) . '"';
        } 
    ?>
>

私が考えたことはこれです:

<input name="name" id="name" type="text" class="formbox"
    <?
        php if ($missing || $errors) {
            $name = stripslashes($name);
            echo 'value="' . htmlentities($name) . '"';
        } 
    ?>
>

上記は機能しますが、非効率的です。「stripslashes」だけを使用すると、「」の後のものはすべて削除されます。現在、フォームは、ユーザーが送信をクリックするとフォームがリロードされ、IF ステートメントが投稿をキャッチして、投稿があるかどうかを確認するという意味で、自己チェックを行っています。欠落しているフィールド。

SO と Google で最善の解決策を見つけることができなかったので、これがすべて理にかなっていることを願っています。

事前に助けてくれてありがとう:)

4

3 に答える 3

0

それらを組み合わせて、もう少し効率的にすることができます。

echo 'value="' . htmlentities(stripslashes($name)); . '"';
于 2013-03-02T02:15:33.383 に答える
0

関数 $mysqli->real_escape_string($value) を使用できます。mysqli クラスの関数です。

于 2013-03-02T02:17:06.993 に答える
0

私がやろうとは思わなかったことは次のとおりです。

<?php 
    if ($missing || $errors) {
        echo 'value="' . stripslashes(htmlentities($name)) . '"';
    } 
?>>

今のところ、これが最善のアプローチのようです。

于 2013-03-02T02:19:23.123 に答える