PHP講座 第3回 -データ送受信-

さー第3回です。

前回は簡単なくじ引きゲームを作りました。
PHPっぽくなってきましたね(…え?してきたでしょ?笑)
今回は動的なページを作るということで、もう一歩踏み込んでみたいと思います。

今回はフォームからのデータの送信と受信についてです。

データの送信

フォームからの送信はHTMLで記述しますが、送信フォームも受信部分も全てひとつのPHPファイルに記述できます。
送信フォームはこんな感じです。

<form action="" method="GET">
	<input type="text" name="namae" />
	<input type="submit" value="送信" />
</form>

簡単に説明します。
<form>〜</form>は送信フォームを示してます。

formにはactionとmethodがパラメータとして指定されています。

<form action="送信先のURL" method="送信方式">

という形で指定します。
送信方式にはGETとPOSTがあります。これは指定しない場合、GET送信になります。

今回は送信元URLと送信先URLが同じなのでactionには空を指定。
methodはURLの最後に?送信データの形で渡されるGETを指定しています。

<input>は1つに対して送信する値を1つセットすることが出来ます。
見た目を設定するのはtype要素です。
type=”text”はテキストデータの入力欄を提供します。
name=”テータ名”にはデータの項目名を指定します。

<input type="text" name="namae" />

この場合、送信されたデータは"namae"というデータ名で送信されます。

送信ボタンはtype="submit"です。
valueパラメータにはボタンに表示する文字を指定します。

データの受信〜$_GET〜

データの受信部を書いていきます。
GET送信されたデータはの形で受け取ることができます。

<?php
$_GET['データ名']
?>
  • $_getでは取得できないので注意!
  • (大文字じゃないとダメ)

今回はこれを変数に格納して、表示したいと思います。

<?php
$namae = $_GET['namae'];
if(isset($namae)){
	echo "ようこそ!" .$namae ."さん<br />";
}
?>

先ほどデータ名"namae"で送信するHTMLコードを記述したので、それを受け取って$namaeに代入しています。
isset($namae)は$namaeに値が入っている場合にtrueを返します。
if()の条件がtrueの場合は{}内が実行されるので、メッセージが表示されます。

<?php ?>の外ではHTMLが普通に記述できるので、先ほどの送信部分と組み合わせて、最終的なコードは以下のようになります。

<?php
$namae = $_GET['namae'];
if(isset($namae)){
	echo "ようこそ!" .$namae ."さん<br />";
}
?>
<form action="" method="GET">
<input type="text" name="namae" />
<input type="submit" value="送信" />
</form>

これだけです。
試しに実行してみましょう。

GET送受信まとめ

  • GET送信はformのmethodをGETにする。
  • 受け取り側は$_GET[‘データ名’]で受け取ることが出来る。
  • $_getでは取得できないので注意!

データの受信〜$_POST〜

先ほどはパラメータをURLにくっつけて渡すGET送信を行ないました。
URLにくっつけるのでデータの長さに制限があったり、不都合な場合もあります。
その場合はPOST送信を使用します。

基本的には変わりませんが、formのmethodが"POST"になり、$_POST[‘データ名’]で受け取ります。
以下、サンプルです。

<?php
$namae = $_POST['namae'];
if(isset($namae)){
	echo "ようこそ!" .$namae ."さん<br />";
}
?>
<form action="" method="POST">
<input type="text" name="namae" />
<input type="submit" value="送信" />
</form>

POST送受信まとめ

  • 送信データ量が多い場合やデータに変更を加えられにくくするにはPOST送信
  • POST送信はformのmethodをPOSTにする。
  • 受け取り側は$_POST[‘データ名’]で受け取ることが出来る。
  • GETのとき同様、小文字の$_postでは取得できないので注意!

以上です!

動画はこちら

ではでは

  1. コメント 0

  1. トラックバック 0

return top