フェーチさんのブログ

個人的な記録です。読む価値ないよ。

PHPのお勉強をしよう_その20

半年前にUdemyで買ってからずっと途中放棄していたPHPの学習講座を「とりあえずぜんぶ見て消化しよう」、というコンセプトでやっております。

できるだけ、1日1動画は消化していきたいと考えております(早く終わらせたい)

個人的にはもうPHPのスキルを身につける必要性も動機もまったくありませんが、もったいない精神をフルに発揮して、なんとか最後まで講座を視聴してきたいと考えております。

 

f:id:feci:20210423190559j:plain

タイピング技術が伸びない。

 

第20回目である今回は、session_start関数を使ってブラウザ上ではなくサーバ上に任意の値を保存してみよう、という試みです。おお。なんかすごそう。

 

んで、今回は ↓ のようなプログラムを使います。

まずはindex.phpから。

<?php
session_start();
$_SESSION['session_message'= '値をセッションに保存しました!';
?>

<!doctype html>
<html lang="ja">

<head>
<meta charset="utf-8">
</head>

<
body>
  <a href="page02.php">Page02へ</a>
</body>

 

次は変遷後のページであるpage02.php

<?php session_start(); ?>

<!doctype html>
<html lang="ja">

<head>
<meta charset="utf-8">
</head>

<body>
<?php
print($_SESSION['session_message']);
?>
</body>

 

まずindex.phpの一番上の行にsession_start関数を記述します。

そしてそのまま$_SESSIONを使い、session_messageという変数の中に「値をセッションに保存しました!」という値を格納します。

 

そしてリンクをクリックしたあとの変遷後のページであるpage02.phpの一番上の行にも、同様にsession_start関数を記述します。

そしてprintでsession_message内の値をブラウザ上で表示してやると、↓ のようになります。

 

f:id:feci:20210602134037p:plain

ちゃんと保存されていることが確認できます。

 

↓ のようにデベロッパーツールで確認をしても、ちゃんとブラウザ上にセッションIDが保存されていることが確認できます。

 

f:id:feci:20210602140650j:plain

ちゃんとIDが確認できますね。

 

ちなみにこのsessionに値を保存するという方法は、ブラウザではなく直接サーバに値を保存する形式らしいです。

 

① サーバに値を保存。
  ↓
② サーバからセッションIDが発行される。
  ↓
③ IDをブラウザにcookieとして保存。

 

なので、session内に値を保存するこの形式は、一度ブラウザを閉じてしまうと保存した値は消去されてしまうようです。

このあたりが、cookieとsessionの大きな違いといったところでしょうか。

 

ちなみに、このsession_start関数は、初期設定ではPHPファイルにおいてOFFになっているみたいです。

もしこの関数を常時ONにしたいのであれば、MAMP\conf\php〇〇\php.iniファイル内にあるsession.auto_startの項目の値を0から1に変更してやればOKです。

 

こうすれば、今後はPHPファイルの最初の行に毎回わざわざsession_start();と記述しなくてもよくなるみたいです。

便利ですね。

 

ただこの設定にしてしまうと、PHPファイルが全体的に重くなってしまうみたいです。なので、iniファイルからsession_start関数を常にONにする方法は、あまり推奨される方法ではないようです。

なるほどなあ。

 

 

◆ 今回の講座から学んだこと

session_start関数を使えば直接サーバに任意の値を保存することができる。

 

以上です。おわり。