フォーム送信の基本をマスターしよう (1/5)
作成:2010-12-04 14:10
更新:2010-12-04 14:30
更新:2010-12-04 14:30
■フォームの送信
サーバーサイドにプログラムを用意するというのは、「クライアントとサーバーの間でやりとりを行う」ため、といってよいでしょう。クライアントというのは、サーバーにアクセスしているもの、要するにWebブラウザのことです。ブラウザとサーバーの間で、さまざまな情報をやり取りしながらプログラムが動いていく――そうしたものをつくるのに、サーバーサイドのプログラムは必要となるわけです。ブラウザの中だけで済むなら、JavaScriptで十分。サーバーサイドにプログラムなんて不要なんですから。
さて、クライアントとサーバーの間でやり取りを行う場合、もっとも一般的に用いられるのが「フォーム」でしょう。そう、皆さんおなじみのHTMLで入力フィールドやボタンなどを表示して送信する、あれです。フォームを用意してそれをサーバーに送信し、送られた値をサーバーのプロgラムで処理し、再びクライアントに結果を送り返す。こうやってWebアプリケーションは動いているのですね。
では、PHPを使って、フォームから送られてきたデータを処理してみましょう。ここでは、前回作成したPHPファイル(sampleフォルダ内のindex.php)を再利用して使うことにしましょう。下のリストに、簡単なサンプルを挙げておきます。これをWebブラウザからアクセスしてください。
ここでは、以下のような形でフォームを用意してあります。
<form>タグ
methodは"post"、actionは"./index.php"です。methodというのは、送信の方式を示すものです。これは、HTTPというプロトコルの「GET」か「POST」のどちらかを指定します。GETというのは、普通はページの内容を受け取るためのもので、POSTがデータを送るためのものになります。どちらでも送れますが、ここではPOSTを指定します。
またactionというのは、フォームの送信先を示します。ここでは、このindex.phpファイル自身に送信しています。つまり、フォームを送信すると、サーバーでまたこのファイルが読み込まれ、そこで送られてきたフォームを処理する、というわけです。
<input type="text">タグ
テキスト入力をするタグですね。ここでは、name="text1"と指定しています。これは重要です。フォームをサーバーに送信したとき、送られてきたデータはこのnameによって識別されるからです。
<input type="submit">タグ
送信ボタンです。これは特にnameやidなどの設定は不要です。送信するだけで、サーバー側では何も利用されないからです。
さて、クライアントとサーバーの間でやり取りを行う場合、もっとも一般的に用いられるのが「フォーム」でしょう。そう、皆さんおなじみのHTMLで入力フィールドやボタンなどを表示して送信する、あれです。フォームを用意してそれをサーバーに送信し、送られた値をサーバーのプロgラムで処理し、再びクライアントに結果を送り返す。こうやってWebアプリケーションは動いているのですね。
では、PHPを使って、フォームから送られてきたデータを処理してみましょう。ここでは、前回作成したPHPファイル(sampleフォルダ内のindex.php)を再利用して使うことにしましょう。下のリストに、簡単なサンプルを挙げておきます。これをWebブラウザからアクセスしてください。
ここでは、以下のような形でフォームを用意してあります。
<form>タグ
methodは"post"、actionは"./index.php"です。methodというのは、送信の方式を示すものです。これは、HTTPというプロトコルの「GET」か「POST」のどちらかを指定します。GETというのは、普通はページの内容を受け取るためのもので、POSTがデータを送るためのものになります。どちらでも送れますが、ここではPOSTを指定します。
またactionというのは、フォームの送信先を示します。ここでは、このindex.phpファイル自身に送信しています。つまり、フォームを送信すると、サーバーでまたこのファイルが読み込まれ、そこで送られてきたフォームを処理する、というわけです。
<input type="text">タグ
テキスト入力をするタグですね。ここでは、name="text1"と指定しています。これは重要です。フォームをサーバーに送信したとき、送られてきたデータはこのnameによって識別されるからです。
<input type="submit">タグ
送信ボタンです。これは特にnameやidなどの設定は不要です。送信するだけで、サーバー側では何も利用されないからです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<?php $str = $_POST['text1']; if ($str != null){ $result = "あなたは、「{$str}」と書きました。"; } else { $result = "なにか書いてください。"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>sample page</title> </head> <body> <h1>Hello PHP!</h1> <div><?php echo $result; ?></div> <form method="post" action="./index.php"> <input type="text" name="text1"> <input type="submit"> </form> </body> </html>
※関連コンテンツ