6

ユーザーがユーザー名とパスワードを挿入するフォームでログインを作成する必要があります。HTMLエンティティが処理されないようにする必要があります。また、一重引用符または二重引用符も処理できません。フォームに入力されたデータをエコーし​​て表示する必要があります。

htmlentitiesとstr_replaceを使用する必要があります。htmlentitiesは正しいのですが、str_replace関数を使用して、ユーザーがフォームに入力する可能性のある一重引用符と二重引用符を置き換える方法がわかりません。どんな助けでも素晴らしいでしょう。

これが私の現在のPHPです(これは動作します)

<?php
$username = htmlspecialchars($_POST['username']);
$password    = htmlspecialchars($_POST['password']);
$comment = htmlspecialchars($_POST['comment']);
?>
<html>
<body>
Your username is: <?php echo $username; ?><br />
Your password: <?php echo $password; ?><br />
Your Comment was: <?php echo $comment; ?>

4

7 に答える 7

19

私はあなたがそれをこのように望んでいると思います..、チェックしてください

$yourPostVariable = "scor\"pi'on";

//$name = str_replace(array("'", "\""), "", htmlspecialchars($yourPostVariable ) );

echo str_replace(array("'", "\"", "&quot;"), "", htmlspecialchars($yourPostVariable ) );
于 2013-02-07T05:23:20.813 に答える
5
 $keyItem = str_replace ("'","\'",$keyItem);

これにより、一重引用符が「エスケープされた」一重引用符\'に置き換えられます。

于 2015-08-25T10:34:57.887 に答える
4
$username = htmlentities(str_replace(array('"', "'"), '', $_POST['username']));
于 2013-02-07T05:22:39.627 に答える
2
$username = str_replace(array("'", "\""), "", htmlspecialchars($_POST['username']));
于 2013-02-07T04:55:55.377 に答える
0

二重引用符を置き換えるには、以下のコードを試してください

str_replace(chr(34), "replace_with", $content);

一重引用符の場合

str_replace("'", "replace_with", $content);
于 2013-02-07T04:55:48.420 に答える
0

引用符を削除するには、次を使用できます。

$search = 'cars "black" in ...';
$search = str_replace("\"", "", $search);
// result: "cars black in ..."
于 2015-04-15T17:43:06.450 に答える
0
$username_test = $_POST['username'];
$username = str_replace(array("'", "\"", "&quot;"), "",htmlspecialchars($username_test) );


//same for password :) 
于 2015-11-03T21:07:36.353 に答える