【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

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

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

PHPの学習におすすめ書籍
独習PHP 第4版
総合評価
( 5 )
メリット
  • PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
  • PHPによるWebアプリ開発の基礎・基本テクニックを学べる
楽天ブックス
¥3,740 (2024/04/23 02:10時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

隠しフィールドの使い方

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

<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アクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次