0
0

PHPのhtmlspecialchars

Posted at

htmlspecialcharsとは?

「HTMLコードをそのままブラウザに表示しようとすると、HTMLコードとして認識されますが、特殊な文字を別の文字列に変換することで、ブラウザにHTMLコードとしてではなく、ただの文字列として表示されるようになります。」

と記載しているので試してみる。
「index.html」送信フォームのファイル

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>ユーザー登録フォーム</h1>
    <form action="confirm.php" method="post">
        <p>名前:<input type="text" name="name"></p>
        <p>ふりがな:<input type="text" name="kana"></p>
        <p>都道府県:<input type="text" name="add1"></p>
        <p>市町村:<input type="text" name="add2"></p>
        <p>番地:<input type="text" name="add3"></p>
        <p>最寄えき<input type="text" name="station"></p>
        <input type="submit" value="確認">
    </form>
    <a href="list.php">一覧へ</a>
</body>
</html>

PHPのhtmlspecialchars.png
↑コンタクトフォームにhtmlコードを入れて確認ボタンを押し送信してみる。
「confirm.php」受信確認ファイル

    print($_POST["name"]);
    print($_POST["kana"]);
    print($_POST["add1"]);
    print($_POST["add2"]);
    print($_POST["add3"]);
    print($_POST["station"]);

PHPのhtmlspecialchars2.png

↑フォーム内に入れたpタグが反映されて送られてきた["add3"]と["station"]が改行で表示されている。

htmlspecialcharsを使う

    // var_dump($_POST);
    $name = htmlspecialchars($_POST["name"],ENT_QUOTES);
    $kana = htmlspecialchars($_POST["kana"],ENT_QUOTES);
    $add1 = htmlspecialchars($_POST["add1"],ENT_QUOTES);
    $add2 = htmlspecialchars($_POST["add2"],ENT_QUOTES);
    $add3 = htmlspecialchars($_POST["add3"],ENT_QUOTES);
    $station = htmlspecialchars($_POST["station"],ENT_QUOTES);
    print($name);
    print($kana);
    print($add1);
    print($add2);
    print($add3);
    print($station);

PHPのhtmlspecialchars3.png
↑このようにpタグが文字列に変換され表示される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0