0

以下のコードは、ユーザー名のHTMLタグを削除しないように指定したにもかかわらず、ページソースをチェックすると出力を表示します。<p>下部のタグを削除しecho、PHP関数Login()自体を使用して機能strip_tagsしますが、ストリップタグの値をHTMLに出力しようとすると、失敗します。

PHPコード:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
<?php

function Login() {
    $username = $_POST['username'];
    $password = $_POST['password'];

    $username = strip_tags($username);
    $password = strip_tags($password);
    $username = trim($username);
    $password = trim($password);
?>


<?php echo "<p>" . $username . "</p>" ?></p>
<?php echo "<p>" . $password . "</p>" ?></p> 
</body>
</html>

エコーされたテキスト$usernameと$passwordがタグ付きで表示されている理由についての洞察をいただければ幸いです。

4

1 に答える 1

3

Login()この例では関数を呼び出しておらず}、関数宣言の後にaがありません。さらに、可変スコープはオフです。次のことを考慮してください:)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
<?php

function Login() {
    $username = strip_tags(trim($_POST['username']));
    $password = strip_tags(trim($_POST['password']));
    echo '<p>', $username, '</p><p>', $password, '</p>';
}

if (!empty($_POST)) Login();
?>
</body>
</html>
于 2012-10-02T17:58:27.960 に答える