1

件名が言うように、$_POSTすべてのスラッシュを取り除く必要があるデータがいくつかあります。ただし、1つが残り、フォームにエラーがある場合は、投稿データがユーザーに出力されるため、ユーザーは再入力する必要がありません。彼らが再びページを提出するとき、スラッシュの数はエラーで提出するたびにかなり増加します。私が持っているコードは単純で、を使用してstripslashes($_POST['first'])からエラーを返します。str_replace私も最後のものを取り除くことを試みまし\ たが、これはうまくいきません。何か案は?

コード編集--------

   $first =  stripslashes($_POST[f_name]); 
   $first = str_replace('\\' , '', $_POST[f_name]);
4

5 に答える 5

4

stripslashes()バックスラッシュはバックスラッシュをエスケープするために使用されるため、最初の連続するバックスラッシュのみを取り除きます (それらが連続している場合)。

使用する必要がありますstr_replace("\\", "", $_POST['first']);

削除しようとしているフロント スラッシュの場合は更新し、使用しますstr_replace("/", "", $_POST['first']);

于 2012-01-13T00:05:16.110 に答える
2

magic_quotes を有効にしていますか? ストリップスラッシュは、文字をエスケープするために使用された \ のみを削除します。したがって、テキストに \ が必要な場合は、\ を 2 つ使用してエスケープする必要があります。この場合、2 つの \ はストリップスラッシュで 1 つの \ に変換されます。処理を行う前に print_r($_POST) を実行して、実際に何が POST に含まれているかを確認してください。

于 2012-01-13T01:22:43.643 に答える
1

マジック クォートを無効にすると、問題が解決するはずです。

于 2012-01-13T01:32:44.367 に答える