POSTとGETの疑問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
h24i17

POSTとGETの疑問

#1

投稿記事 by h24i17 » 14年前

少し前にとあるサイトの掲示板を見ていました。
今ではもうそのサイトは見れないので、同じソースは書けないのですが、書き込みフォームの部分をこんなもんだと思ってください

コード:

<form action="kakikomi.cgi" method="post">
<input type="text" name="message">
<input type="submit" value="書き込み">
</form>
例えばこのサイトをbbs.example.comだとします。

前置きが長くなりましたがここからが本題です。
過去、このサイトを見ていた時にやったことなのですが
ページに表示されているtextboxに"hello"と入れて、書き込みボタンを押した場合と、
http://bbs.example.com/kakikomi.cgi?message=hello に接続した時は全く同じ挙動を示していました。

私はこれを当たり前のことだと思っていたのですが、PHPを学んでこれが当たり前のことではないことを知りました。
PHPの場合はPOSTで突っ込んだ値は$_POST変数で受け取ります、GETの値は受け取れないはずです。
でも、このサイトはPOSTで入れようがGETで入れようがデータを取得していてくれました。

これは何故なのでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: POSTとGETの疑問

#2

投稿記事 by h2so5 » 14年前

単純に、メソッドがPOSTだったら$_POSTから、GETだったら$_GETから受け取っているだけだと思います。

h24i17

Re: POSTとGETの疑問

#3

投稿記事 by h24i17 » 14年前

>h2so5さん
早速の返信ありがとうございます。
POSTでデータが送られていない場合はGETでデータが来ていないか調べるといった場合分けが出来るということなのでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: POSTとGETの疑問

#4

投稿記事 by h2so5 » 14年前

PHPの場合はこんな風に場合分けができます。

コード:

if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {

}
else if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {

}

コード:

if ( isset($_POST['data']) ) {

}
else if ( isset($_GET['data']) ) {

}

h24i17

Re: POSTとGETの疑問

#5

投稿記事 by h24i17 » 14年前

>h2so5さん
例を二つも出して頂いて、丁寧な解説ありがとうございました。
そのような方法があるなんて全然知りませんでした、こればっかりは完全に私の勉強不足でした。

これで解決にさせて頂きます。
ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る