libro
www.tuyano.com
初心者のためのPHPプログラミング入門

フォーム送信の基本をマスターしよう (1/5)

作成:2010-12-04 14:10
更新: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などの設定は不要です。送信するだけで、サーバー側では何も利用されないからです。

※プログラムリストが表示されない場合

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>

※関連コンテンツ

「初心者のためのPHPプログラミング入門」に戻る