支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • PHPのSESSION機能の使い方に

はじめに

この記事では、PHPのSESSION機能の使い方について紹介していきます。
WEBサイトのログイン機能やショッピングサイトのカートなどによく使用され、現在ではなくてはならないものになりました。この便利なSESSIONという機能、PHPでは、ある関数を記述するだけで簡単に使用することができます。その他にも、PHPにはSESSIONの有効期限を簡単に設定できる機能もあります。このPHPのSESSIONの便利な機能の使い方など実際にコードを載せ、プログラミング初心者にもわかりやすく説明していきます。

SESSIONとは

SESSIONとは、PCとサーバーとの間で決められる「合言葉」のようなものです。
大規模なサイトになると、世界中のPCからサーバーにアクセスされます。サーバーは、それをいちいち管理していないので、それが誰のアクセスかなんて把握していません。ですが、近年では、WEBアプリケーションのアカウントへのログイン機能など特定の人しかアクセスできない「認証」機能があります。この機能を実現しているのがSESSION機能です。PCとサーバーの間で合言葉が決まった後は、「秘密文書」をやり取りすることができます。その秘密文書には、合言葉で信頼関係ができているという文言が入れられていて、各ページの最初でチェックされます。そうして、正しいユーザーかそうでないかを見極めます。合言葉が違ったり、怪しいユーザーからのアクセスの場合は弾き、正しいユーザーとだけやり取りをするようになっています。信頼関係にあるPCと一通りやり取りを終えたら、合言葉は破棄されます。システムの機能でいうとログアウトがこれにあたります。SESSIONの合言葉をずっとサーバー内に保管しておくと、ユーザーが増えてログインされる度に合言葉が増えるので、不具合の原因になってしまいます。なので、ログアウトされたら、合言葉を破棄し、次回ログインするときはまた新しい合言葉を作成しやり取りを行います。

PHPでSESSION機能を使用する方法

ここではPHPのSESSION機能の使い方について解説していきます。PHPでセッション管理を開始するには、session_start()関数を使用します。session_start()関数は<?php ?>タグの一番最初に記述します。

<?php
start_session();
?>

PHPのSESSIONは、「$_SESSION['キー名'] = 値」のように記述し、「キーと値」のペアで管理します。以下に「$_SESSION['キー名'] = 値」にコードの使い方を記述します。

<?php
start_session();
if (!isset($_SESSION[' access'])) {
    // キー'count'が登録されていなければ、1を設定
    $_SESSION['access'] = 1;
} else {
    //  キー'count'が登録されていれば、その値をインクリメント
    $_SESSION['access']++;
}
echo $_SESSION['access']."回目の訪問です。";
?>

if文でaccessというキー名のSESSIONが存在するか判定し、存在しなければ1を代入し、存在していればインクリメントするというプログラムです。SESSIONはそれぞれのブラウザごとに管理されているので違うブラウザからアクセスすると「1回目の訪問です。」と表示されます。

セッションの有効期限

SESSIONには、有効期限があります。php.iniファイルの「session.cookie_lifetime」で設定されています。デフォルトでは0が設定されており、ブラウザを閉じるまでの有効期限になっています。
PHP7.0.0からはsession_start()関数にオプションを指定し、プログラム中で秒数を設定することができます。その場合は以下のようにコードを記述します。

<?php
start_session(['cookie_lifetime' => $300]);
?>

start_session()の引数に['キー名' => 秒数]を指定します。これで有効期限の上書きをphp.iniファイルを操作しなくても、行うことができます。とても便利で簡単な機能なのでSESSIONで有効期限を設定したい時は、是非活用してみてください。

まとめ

いかがでしたでしょうか。プログラミング初心者だとSESSION機能って使うのが難しそうという印象を持ってしまう方もいると思います。ですが、この記事を読んでわかる通り、PHPはSESSION機能を簡単に使うことができます。この機能を使えることによって作れるものの幅がグンと広がるので、プログラミングが楽しくなるでしょう。そして、開発現場でもSESSIONの知識は必須なので、しっかりと使い方を押さえておくと後々役に立ちます。