PHP

【PHP】隠しフィールドの使い方と注意点

本記事では、PHPで隠しフィールドの使う方と注意点について解説しています。

PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!

本書情報
著者谷藤 賢一
発売日2017/3/6
ページ数331ページ
Kindle版
レビュー
(Amazon)
(168件)

参考書が苦手な人はUdemyの動画がおすすめ
ちゃんと学ぶ、PHP+MySQL(MariaDB)入門講座

動画情報
作成者たにぐち まこと
学習時間11時間
受講者数24,526人
レビュー (4,518件)
動画の詳細はこちら

隠しフィールドの使い方

隠しフィールドの使い方は以下のとおりです。

<input type="hidden" name="" value="">

隠しフィールドを使うには送信されたデータを取得するために必要なname属性と、それに紐付ける値をvalue属性に設定する必要があります。

送信されたデータを取得するには、通常のフォームから送信されたデータを取得する方法と全く同じで、設定したname属性を連想配列のkeyとします。

$post = $_POST['key']; // POSTメソッド使用の場合
$post = $_GET['key']; // GETメソッド使用の場合

隠しフィールドを使用したサンプル

下記のサンプルコードは、テキストフォームに金額を入力すると消費税(10%)を上乗せした金額を表示します。

<form action="sample.php" method="POST">
    <div>
        <input type="text" name="price" placeholder="計算したい金額を入力">
    </div>
    <div>
        消費税:10%
        <input type="hidden" name="tax" value="10">
    </div>
    <div>
        <button type="submit">計算する</button>
    </div>
</form>
<?php 
    $price = $_POST['price'];
    $tax = $_POST['tax'];
    $sum = $price + ($price * ($tax / 100));
    echo '合計金額:' . round($sum) . '円';
?>
表示結果
表示結果
実行結果
実行結果

テキストフォームに3000と入力した状態で、計算するボタンをクリックした表示結果を確認すると正しく消費税が上乗せされた金額3300円が表示されていることが確認出来ます。

隠しフィールドの注意点

実は隠しフィールドは、ページ上には表示されていませんが検証ツールで確認するとHTMLタグが存在することが確認出来ます。つまり、ユーザー側でvalue値などを改ざんすることによって送信されるデータを意図的に変更することが出来てしまいます。

先ほど紹介した消費税率を計算するサンプルコードで実際に改ざんして実行結果を確認してみましょう。

検証ツールで値の改ざん
検証ツールで値の改ざん

検証ツールからvalue値に設定されている値(消費税率)を、10→30に変更しテキストフォームに1000を入力して計算するボタンをクリックします。

実行結果
実行結果

すると、本来であれば1000円の10%上乗せされた金額は1100円なのに対し、実行結果は1300円と30%上乗せされた金額が表示されています。このように意図的に変更されてしまう恐れがあるため、隠しフィールドを使用する際は、改ざんされても問題ない値を使用するようにしましょう。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村