FOR SE

文系の学部から新卒でメーカー系のSIerに就職。技術・スキルがないためブログを通して勉強。その後、IT業界の業界知識が活かせる人材業界に就職

このエントリーをはてなブックマークに追加

【PHP】セッションとクッキー メモ①

【今回の内容】

ページ遷移をする中で、データを受け渡しができる
セッション・クッキーというキーワードから
学習しました。



【補足】

「セッションとクッキーの関係」

一度の通信で情報が消えてしますステートレスなHTTP通信では、
ページ遷移をしながら、データを保持するにはセッション管理やクッキーが必要

 例)ログインを保持しながら、ページ遷移を行う
   ECサイトで買い物かごに入れる

上記のような文面を何度かみたことがあるがいまいち理解できていなかったが、
参考サイトと今回の学習で以下のようなこと少し明確になった。

 「定義」
 ・セッションIDなどはサーバ側が持つ情報
 ・クッキーはブラうザ側が持つ情報
  
 「流れ」
 →セッション管理を行うためにクッキーが必要。どういうことかという初めてのログイン者にサーバ側が
  1、任意のセッションIDを発行(セッションIDと個人の情報をひもづける)
  2、そのセッションIDをブラウザ側クッキーとして保存する。
  3、ページ遷移を行う際にもう一度クッキーをサーバにリクエストする
  4、サーバ側はクッキーを受け取り、該当するセッションIDがあるか判定
  5、セッションIDとひもづく個人の情報を取り出す



「参考サイト」

面白い口調でセッションとクッキーについて解説してくれる
http://www.geocities.jp/sugachan1973/doc/funto62.html



【参考ソース】

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>


セッション
php

<?php
//セッションの開始
session_start();
$_SESSION["users"]="押尾";
?>
<html>
<body>
<?php
print "sessionは".$_SESSION["users"]."</br>";
?>
<a href="submit3-3.php">移動</a>
</body>
</html>


php

<?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>

php

<?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>

php

<?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>
.hatena-module:nth-of-type(10) { background: transparent; } .hatena-module:nth-of-type(10) .hatena-module-title{ display: none; } .hatena-module:nth-of-type(10) .hatena-module-body { padding: 0; }