【PHP】セッションとクッキー メモ①
【今回の内容】
ページ遷移をする中で、データを受け渡しができる
セッション・クッキーというキーワードから
学習しました。
【補足】
「セッションとクッキーの関係」
一度の通信で情報が消えてしますステートレスなHTTP通信では、
ページ遷移をしながら、データを保持するにはセッション管理やクッキーが必要
例)ログインを保持しながら、ページ遷移を行う
ECサイトで買い物かごに入れる
上記のような文面を何度かみたことがあるがいまいち理解できていなかったが、
参考サイトと今回の学習で以下のようなこと少し明確になった。
「定義」
・セッションIDなどはサーバ側が持つ情報
・クッキーはブラうザ側が持つ情報
「流れ」
→セッション管理を行うためにクッキーが必要。どういうことかという初めてのログイン者にサーバ側が
1、任意のセッションIDを発行(セッションIDと個人の情報をひもづける)
2、そのセッションIDをブラウザ側クッキーとして保存する。
3、ページ遷移を行う際にもう一度クッキーをサーバにリクエストする
4、サーバ側はクッキーを受け取り、該当するセッションIDがあるか判定
5、セッションIDとひもづく個人の情報を取り出す
【参考ソース】
htmlファイル
<html> <head><head> <body> <form action="submit3.php" method="POST"> 氏名<input type="text" name="input1"></br> <input type="submit" value="送信"> </form> </body> </html>
クッキー
php1
<?php //クッキーを作成 setcookie("user","田中"); ?> <html> <body> <?php $getcookie=$_COOKIE["user"]; print "クッキーは".$getcookie."</br>"; ?> <a href="submit3-3.php">移動</a> </body> </html>
php2
<html> <body> <?php $getcookie=$_COOKIE["user"]; print "クッキーは".$getcookie."</br>"; ?> <a href="submit3.php">戻る</a> </body> </html>
セッション
php1
<?php //セッションの開始 session_start(); $_SESSION["users"]="押尾"; ?> <html> <body> <?php print "sessionは".$_SESSION["users"]."</br>"; ?> <a href="submit3-3.php">移動</a> </body> </html>
php2
<?php session_start(); ?> <html> <body> <?php print "sessionは".$_SESSION["users"]."</br>"; ?> <a href="submit3.php">戻る</a> </body> </html>
「訪問回数を数える」
html
<html> <head><head> <body> <form action="submit4.php" method="POST"> 氏名<input type="text" name="input1"></br> <input type="submit" value="送信"> </form> </body> </html>
php1
<?php $count=$_COOKIE["user"]; if(!isset($count)){ $count=0; }else{ $count++; } setcookie("user",$count,time()+60*60); ?> <html> <body> <?php $getcookie=$_COOKIE["user"]; print "訪れた回数は".$getcookie."</br>"; //print "sessionは".$_SESSION["users"]."</br>"; ?> <a href="submit4.php">戻る</a> </body> </html>
php2
<?php //クッキーを作成 $count=$_COOKIE["user"]; if(!isset($count)){ $count=0; }else{ $count++; } setcookie("user",$count,time()+60*60); ?> <html> <body> <?php $getcookie=$_COOKIE["user"]; print "訪れた回数は".$getcookie."</br>"; ?> <a href="submit4-3.php">移動</a> </body> </html>