PHP入門

フォームを扱う3–GETとPOST

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
フォームの送信方法には「GET」と「POST」の2種類があります。それぞれの特徴を紹介していきましょう。
講師:
11:47

字幕

ここでは「フォームを扱う」の3つ目としましてget と post というものをやっていきます。これまでフォームの method 属性にはget というのを指定してきました。ですが、もう1つ post というのがあるというのも前にご紹介しています。post というのはどのように使うのかget とどう違うのかという所をご紹介していきたいと思います。ではまずは1つフォームの例を作っていきましょう。MAMP のアップロードのフォルダーMAMP フォルダーの htdocs フォルダーの中に1つフォルダーを作成します。ここでは、lessson02-05 とします。この中にテンプレートとなるHTML を作っていきます。そして、index.html をDreamWeaver で編集してタイトルに1つ適当な文章を入れていきましょう。そして、こちらの content の中にフォームを作っていきます。ではフォームで action ですね、method をまずは get にしてみます。そしてここにはですね、label ということでご意見ということでテキストエリアを1つ入れていきましょう。まずは、message というname 属性にしてcols を 50rows を 5 ですね、これが高さになります。 そして、これで p タグを閉じまして続いて input type を submit とした送信ボタンを設置します。後は、 form タグを閉じればこれでフォームが1つ出来上がりです。ではこちらをブラウザーで見ていきましょう。まずは、こちらの MAMP が起動していることを確認しましてスタートボタンを押してApache が起動していることを確認します。その上で heep://localhost:8888ですね、そして lesson02-05 index.html というファイルでした。こうしますと、「フォームを扱う3」ということでテキストエリアができていまして「ご意見です」という風に入力することができるようになります。では、こちらを受信するphp を作っていきましょう。「ファイル」の新規作成でphp、「レイアウト」はなしです。「ドキュメントタイプ」はなんでも結構です。「作成」するボタンをクリックして出来上がった HTML を一旦削除します。そして、今作った HTML をコピーして頂いてこの content という id 属性のdiv の中を書き換えていきましょう。ではここでは「ご意見」ということでラベルを作りましてここに php print $_GET ですね。 message というのが先程指定したname 属性でした。こちらを入れていきます。このファイルを lesson02-05 の中にinput_do という名前で保存をします。ではこちらの index.html とinput_do.php を接続するために、こちらの action 属性にinput_do.php と入力します。ではこちらで動きを確認してみましょう。Web ブラウザ―に切り替えてまず HTML を再読み込みします。その上で「ご意見です」ということで入力をしましてこちらで送信をしてみます。そうしますと、この様に「ご意見です」ということで正常に送信されていることが確認できます。ここまでは前のチャプターの復習なんですけれどここで、この method 属性に注目します。ここで今、get と指定しています。この get というのはどのような送信方法かと言いますとこの URL の部分を見て頂くとわかるんですが「message=ご意見です」という風に入力した内容が URLの中に書かれています。例えば、これを変えてみましょう。「あいうえお」ということで送信すればこの様に「message=あいうえお」という風に URL に出ています。 get 方式というのは、この様にURL、アドレスの部分を加工することでユーザーが入力した内容を次の画面に送るという方法です。ですが、この get というのには1つ制限があります。例えば、このテキストエリアにはかなり長い文章を入力することができます。そして、「送信する」ボタンをクリックするとこの様に受信できるんですがそのたびに URL がこの様にどんどんどんどん長くなっていきます。そして、URL というのはWeb ブラウザーの種類にもよるんですけどその長さに制限があります。例えばここでは、この青空文庫で公開されている「走れメロス」という全文がありますのでこれをコピーしてこちらのテキストエリアから送信してみましょう。そうしますとこの様に Request-URL Too LargeということでURL が長すぎます、というようなエラーメッセージが表示されてしまいました。このサーバーは、ちょっと何文字かは詳しくはわからないんですけどいずれにしても、この「走れメロス」全文を一度に送信するということはできない、ということがわかります。この様に長文を送信しなければならない場合例えば よくあるのはソーシャルのサイトなどでの日記を送信する部分ですとかWeb メールのようなコミュニケーションツールの本文という様な、かなり長文が入力される可能性のあるものというのは、get 方式を使うことができません。 その場合、この method 属性をget から post に変更します。そして、input_do つまり受信する方は$_GET となっていたこの GET の部分を POST に変更します。すべて大文字で記入します。こうしますと、このフォームがpost 方式という方法に変わりましてそれを受信する、こちらの php 側も$_POST ということで正常に値が受け取れるようになります。まずはこのフォームを再読み込みしまして少し短いメッセージを送ってみましょう。「ご意見です」ということで送信するとこの様に正常に「ご意見です」と出ます。この時、また URLアドレスに注目して頂きたいんですがpost 方式の場合この様にアドレスには何も表示されていません。post 方式というのはURL とは別の場所裏側でフォームの内容を送信するという方法です。post 方式の場合、例えば「走れメロス」全文などを送信したいという場合でもこちらで送信してみます。この様にすべての文章を送信することができるようになりました。この post 方式というものはこの様に、長文を送ったりとか大量のデータを送ったりということができますので非常に便利です。 では、 get 方式というのは一体どのような時に使うのかと言いますと、URL に値が保持されていますので例えば こんな使い方ができます。「ご意見」ということで「ご意見です」とします。そして、post 方式の場合これを送信した、この画面というのは、この URL を例えば なんですけれどデスクトップ等にショートカットとして保存しておきたい、もしくはブックマークとして登録しておきたいということがあるかもしれません。こういう状態、でこの時一度ブラウザーを閉じて頂いてこのブックマークにアクセスします。すると、「ご意見です」といった先程入力した内容は消えてしまいました。なぜならブックマークや、こちらのデスクトップのショートカットというものにはその post で送信された値というのは保持されていないんです。ですが例えばこれをget 方式に変更した場合どのようになるでしょうか。HTML を get、そしてフォームを再読み込みしましてこちらで「ご意見です」ということで入力をします。「送信する」をクリックするとこの様に URL に残った状態になります。この状態でブックマークに改めて登録をしてみましょう。そして、一度画面を閉じます。 ブックマークからアクセスをします。そうしますと、この様に「ご意見です」ということで先程送信した値が保存されていることがわかります。この様に get 方式を使うとURL に、その送信した値を残すことが出来るので、ブックマークに保存したりメールやその他 Twitter 等で友達と共有をする時にその送信した内容を、そのまま送信することができる、というのが特徴です。この特徴はどんなときに便利かと言いますと、例えば Yahoo 等で検索をかけてみます。こちらで例えば PHP というようなキーワードで検索をしてみます。そうしますと、PHP の検索結果がリストアップされますけれどこの時 URL を見てみますとp=PHP としまして、その他に serached.x が 1 とか様々な値が URL の中に含まれていることがわかります。この後の方は Yahoo がシステム的に使っている値なんですけれど注目する部分は、この p= の部分です。キーワードを少し変えてみましょう。get として検索をしますとこの様に p=get に変わりました。この Yahoo の検索結果というのはget 方式で送信されていることがわかります。 ということは 例えばこの Yahoo の検索結果をブックマークに保存しておきたい場合や友達とメールで共有したい場合などはそのまま、この URL をブックマークしておけば次回以降、同じようにブックマークでアクセスすることで同じ検索結果を見ることができるという便利な点があります。この様に get 方式と post 方式は非常に違った性格を持った送信方式なのでそれぞれのフォームがどんな役割を持ったフォームなのかということを、常に考えながらどちらの方式を選ぶかというのがポイントになります。

PHP入門

このコースでは動きのあるWebサイトでショッピング、友人との写真を共有、キーワードによる情報検索など便利な仕組みを作るための技術であるPHPについて解説します。これまでプログラミングに触れたことがない方でも、ちょっとしたプログラムを自分で作ることができるようになります。

4時間56分 (29 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月29日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。