プロが教えるわが家の防犯対策術!

SESSION
・クッキーにセッションIDを作り、データをサーバーへ送信して保存。
・セッションIDを元に、送受信系のもので送られ保存されたデータをどのページでも取得できる。
・セキュリティが強い。

GET
・クッキーにセッションIDを作り、データをサーバーへ送信して保存。
・セッションIDを元に、送受信系のもので送られ保存されたデータをどのページでも取得できる。
・URLとして送信される。
・アンカータグからも送れる。
・セキュリティが弱い。

POST
・クッキーにセッションIDを作り、データをサーバーへ送信して保存。
・セッションIDを元に、送受信系のもので送られ保存されたデータをどのページでも取得できる。
・セキュリティが強い。
・大量のデータ向け。

GETとの違いは分かるのですが、POSTとSESSIONの違いが良く分かりません。

$session_start();
$_SESSION["abc"] = "エービーシー";
のようにセッションを作って変数に格納し
$session_start();
echo $_SESSION["abc"];
のように他のページで変数を使うことができますが、
POSTやGETも他のページで使えるので自動でセッションIDが作られていて
SESSIONやPOSTやGETなどの送受信系のもので保存されたデータは
送受信系のものでデータを自由に取得できるのかなと思い試してみると

$_SESSION["abc"]で送信したデータを他のページで$_SESSION["abc"]で取得すると正常に動き、
$_SESSION["abc"]で送信したデータを他のページで$_GET["abc"]で取得するとエラー、
$_SESSION["abc"]で送信したデータを他のページで$_POST["abc"]で取得するとエラー、

$_GET["abc"]で送信したデータを他のページで$_GET["abc"]で取得すると正常に動き、
$_GET["abc"]で送信したデータを他のページで$_POST["abc"]で取得するとエラー、
$_GET["abc"]で送信したデータを他のページで$_SESSION["abc"]で取得するとエラー、

$_POST["abc"]で送信したデータを他のページで$_POST["abc"]で取得すると正常に動き、
$_POST["abc"]で送信したデータを他のページで$_POST["abc"]で取得するとエラー、
$_POST["abc"]で送信したデータを他のページで$_SESSION["abc"]で取得するとエラー、

送信された方法と受信する方法が一致しないもの以外はエラーになりました。
おんなじ方法で送信と受信をしないとダメなのですね。

A 回答 (2件)

$session_start(); じゃなくて



session_start();ですよね。

SESSIONはGET,POSTとはまったくの別物です。
クライアント側で持つsesion情報はsession idのみです。
それ以外のデータはサーバーで保持します。

GET、POSTはクライアントにあるデータをサーバーに送るものです。
    • good
    • 0
この回答へのお礼

何となくわかりました。ありがとうございます。

お礼日時:2012/02/26 20:56

>POSTやGETも他のページで使えるので



それはあり得ません。フォームから送られるか、GETであればQueryStringで渡されるかが必要です。

SESSION
・セッションIDを作り、クライアントからサーバーへセッションIDを送信
 (基本はCookieだがQueryStringでも送れる)
・セッションIDとデータはサーバ側で紐付けられている(データはサーバ側にある)

GET
・QueryStringとして送信される(サイズ制限あり)。
・formだけでなくanchor要素のhref属性に書いても可

POST
・form要素でmethod属性をpostとして指定する
・httpリクエストのbodyとして送られる
    • good
    • 0
この回答へのお礼

GETやPOSTはセッションを作らないのですね。
まだまだ分からないですが、有難うございました。

お礼日時:2012/02/26 20:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!