入力フォームを作成しデータを次の画面に送る [POSTメソッド][GETメソッド]

2016年1月12日

PHP

PHPのみに限らず、ウェブアプリケーションの基本的な仕組みは、フォームに入力されたデータに対して何らかの処理を行い、データベース等へ登録していくことです。まずは入門として、フォームを作成し、入力したデータを画面遷移させて次の画面に送ってみましょう。

 

スポンサーリンク

 

今回は、HTMLでフォーム画面(001.html)を作り、入力されたデータを次のページ(001.php)へと送り、表示させる仕組みを作ります。

 

 

フォーム画面を作成する


 

まずはHTMLでフォーム画面を作成します。  

 

001.html

 

GETメソッドとPOSTメソッド


 

ユーザがブラウザからサーバに対してデータをリクエストする場合、主にGETメソッドとPOSTメソッドの2つに分かれます

 

9〜13行目、15〜19行目の部分にそれぞれGETメソッドとPOSTメソッドによるフォーム(form)があります。method属性の部分でget及びpostを指定します。

 

以下のデモ画面のリンクを見てわかるように、GETメソッドの場合はURLの部分に入力したデータが表示されています。つまりURLを利用してデータを送っています。これはあえてデータが見えるようにするためで、URLをブックマークして保存することが可能となります(検索結果の画面など)。

 

?yourname=の後に「ウェブの葉」というワードが追記されている。

https://noumenon-th.net/programming/sample/php/001.php?yourname=ウェブの葉  

 

POSTメソッドは、住所登録や問い合わせのような一般的なフォーム画面で利用され、大量のデータを送ることができます。

 

データの送信先は、formのaction属性においてそのファイル名を指定します。今回は001.phpを指定しています。   次にそのデータを受け取る側の001.phpを作成します。  

 

001.php

 

4行目ではGETメソッドで送信された場合のリクエストを受け取っています。

 

同様に、 7行目ではPOSTメソッドで送信された場合のリクエストを受け取っています。  

 

$_GETや$_POSTはスーパーグローバル変数と呼ばれ、それぞれGET、POSTメソッドで送信されたデータを受け取ることができます。  

 

受け取ったデータは4行目の$get_yournameのように自分で変数を作成して、保存しています。保存したデータは、20行目及び23行目において出力させています。  

 

※注意

上記のコードはセキュリティー対策を行っていません。例えば、クロスサイト・スクリプティング(XSS)対策のためにPOSTやGETで受け取った文字は、HTMLで表示させる直前にhtmlspecialchars()関数を利用してエスケープしなければいけません。

 

試しに上記のデモ画面にて <h1>サンプル</h1> を入力し、送信してみて下さい。h1タグが反映されてサンプルの文字が大きく表示されてしまいます。またFireFoxブラウザでデモ画面を開き、下記のスクリプトを入力してみて下さい。画面遷移先でアラートが表示されてしまいます(ChromeやSafariはある程度対策されています)。

 

アラート

 

関連ページ

 

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー