×
×

PHP スーパーグローバル変数-$_POST

今回は、システム開発では必要不可欠なスーパーグローバル変数について解説したいと思います。

この記事の著者 ->S.E; です。

普段は、システム開発に必要なヒアリング、システムの要件定義、設計からプログラマとしてWebサイトやWebアプリケーションの開発、WordPressでのブログの執筆やサーバー運用・管理を行っています。

このページは「未経験の為のプログラミング講座 ゼロから始めるPHPプログラミング〜初級から実践編までを網羅〜」としてPHPの基本的な部分を【初級編】【中級編】【上級編】に分けて解説しています。最終的には簡単なフォームやシステム開発をフルスクラッチで行うことを目的としています。また、参考になる書籍なども紹介しています。

スーパーグローバル変数とは

スーパーグローバル変数とは、ユーザーが定義する必要がなく、あらかじめ用意された変数のことを指します。

スーパーグローバル変数の特徴として、「global命令」を利用することなく関数内、関数外どのスコープからでもアクセス可能な変数です。
スコープに関しては「変数のスコープ(参照できる有効範囲)」を参照してください。

スーパーグローバル変数の種類

スーパーグローバル変数は主に下記の5種類があります。
※厳密にはこれ以外にもありますがWebサイトやWebアプリケーションを開発時主に利用する変数のみ記載しました。

変数名内容
$_POST<form></form>内の値をPOST形式で送信されたデータ
$_GET<form></form>内の値をGET形式で送信、またはリンク記載されたクエリ情報(文字列)
$_FILES<form></form>に設置された<input type=”file”>から送信された情報
$_SERVERリクエストヘッダー
$_COOKIEクッキーを経由して送信された情報
$_SESSIONセッションを経由して送信された情報

スーパーグローバル変数 $_POST

フォームからPOST形式で送信される情報を取得するコードを確認して見ます。

以下のフォームがPOST形式でデータを送信するHTMLです。

注意点としては<input type=”checkbox”>のname属性の値が「data03[]」と記述している部分です。
チェックボックスはラジオボタンとは違い複数の選択が可能です。その為送信するデータは配列にする必要があります。下記のようにnameの値を個別に指定しても同様の動作はしますが、データの受け渡しの記述が煩雑になります。

PHPでPOSTデータを受け取る

フォームからポスト形式でデータが送信され、PHPでそれを受け取る場合、name属性の値が $_POST[‘****‘]の「****」に入ります。

例)<input type=”text” name=”data01“> の場合は $_POST[‘data01‘] でデータを受け取ることができます。
例)<input type=”checkbox”>のname属性の値「data03[]」は受け取り時に配列となっている為「[]」は不要となり、$_POST[‘data03‘]でデータを受け取ることができます。

上記のフォームからPOST形式でデータを送信し表示した結果の例が以下となります。

では、チェックボックスのnameの値を個別に与えた場合のPHPはどのようになるのでしょうか?

記述するコードが無駄に多くなります。

フォームでデータを送信する際の注意点

フォームからデータを送信する際は、不正な文字や文字列を受け付けなくする必要があります。
詳しくは「PHP セキュリティー フォームから送信したデータをエスケープする」を参照してください。

$_POSTは必ず習得

$_POSTはWebのシステム開発において、利用しないことはほぼないと思います。
メールフォームやアンケートシステム、管理画面などでの情報の登録・更新・削除など全てこの「$_POST」を利用します。

created by Rinker
PHP7の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得! PHPプログラミングの標準教科書『独習PHP』が、最新のPHP7に対応。PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、PHPの基本構文から、クラス、データベース連携、セキュリティまで、詳細かつ丁寧に解説します。
created by Rinker
時間がなくたって、プログラミングは学べます。学習を躊躇していた人たちに、既存の入門書で挫折した人たちに、「これならできる!」の最短カリキュラムを、土日の14時間で提供。まったくのプログラミング初心者が簡単なWebデータベースアプリを構築できるまでの成長コースを、手取り足取り、導きます。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)