2009-06-21

【PHP】GETとPOST

まずは簡単なところから.



PHPにおけるPOSTとGETは,PHPからPHPにデータを送る操作のこと.

��まあ,正確にはちょっと違う.PHPに限る話じゃないので.)



例えば,以下のようなサイトURLを見ることがあると思う.


例:(Gmailの受信トレイのURL)
http://mail.google.com/mail/?hl=ja#inbox

気になるのは,「?」以降のhl=ja#inbox

他にも,ググったりしたときなどは,こんな感じのが長々とくっついてくることが確認できる.



実はこれがGETの正体.

GETは,サイトURLを使ってデータを送信する仕組みです.


http://送信先?変数名=変数の中身

というように,送信先の後ろに「?」を付け,その後ろに変数を書く.

複数渡す場合は,「&」ではさんで列挙する.


http://vocaloid.php?loid1=miku&loid2=rin&loid3=ruka

この場合,受け取る側であるvocaloid.phpでは,

$_GET["loid1"] // miku
$_GET["loid2"] // rin
$_GET["loid3"] // ruka

と書けば,それぞれの値を取得できる.





しかし,GETは手軽な分だけ問題もある.

1つは,URLにくっつくので,変数の数が多くなった場合に使えなくなること.

あと,もう1つ,ユーザ側から変数が丸見えだということ.



これでは,パスワードやクレジット番号などの保護されるべきデータを送ることはできない.



そこで,こういった,ユーザからあまり見えてほしくないものについては,POSTを使う.

��もっと言うなら,セッションを使うべきだが,今は置いておいて)

POSTは,例えば,<form>タグを使って,


<form method="post" action="login.php">
ユーザネーム:<input type="text" name="username"><br>
パスワード:<input type="password" name="password"><br>
<input type="submit" value="送信" name="submit">
</form>

とし,login.phpでは,


$_POST["username"] // フォームで入力したユーザネーム
$_POST["password"] // フォームで入力したパスワード

で受け取る.



ちなみに,<form>タグでは,method="GET"とすれば,GETで受け取ることも可能.



0 件のコメント: