PHP WEBアプリケーション作成「12」その他ページのログイン処理とログアウト処理 

これまででログインフォームとログイン機能ができたので、その他のページにもログインしているかどうかを判断するためのプログラムを書く必要があります。

しかし、これまで作ったプログラムにもその処理を書かなければいけないとなると大変面倒です。そこで、ログインのための処理を別プログラムにして各プログラムから呼び出すしたら楽ですね。index.phpと同じ階層にincludedというフォルダを作り、そこにlogin.phpというプログラムを作成していきます。

login.php

<?php
session_start();
if(!isset($_SESSION[‘id’])){
    header(‘Location:login.php’);
exit();
}
?>
どのページからも最初に読み込むことを考え、session_start関数をプログラム冒頭で実行させることにする。内容はidが見つからず、ログインしてなければlogin.phpへ移動させます。

まずはindex.phpで読み込ませてみます。

index.php

<?php
include ‘includes/login.php’;
$fp = fopen(“info.txt”,”r”)
?>

<!DOCTYPE html>
<html lang=”ja”>
<head>
読み込むにはinclude関数を使い、指定したファイルを読み込みます。include ‘includes/login.php’;を追記しました。

他に作ってきたファイルのalbum.php、bbs.php、info.php、upload.php、write.phpでも同様に、includeでログイン処理をしておきましょう。

ログアウト処理

navbar.php

ログアウト処理へのリンク追加をしましょう。

<nav class=”navbar navbar-expand-lg navbar-white bg-dark fixed-top”>
<a class=”navbar-brand” href=”./index.php”>サークルサイト</a>
<button class=”navbar-toggler” type=”button” data-toggle=”collapse” data-target=”#navbarExampleDefault” aria-controls=”navbarExampleDefault” aria-expanded=”false” aria-label=”Toggle navigation”  >
    <span class=”navbar-toggle-icon”> </span>
</button>

<div class=”collapse navbar-collapse” id=”navbarExampleDefault”>
    <ul class=”navbar-nav mr-auto”>
        <li class=”nav-item”><a class=”nav-link” href=”info.php”>お知らせ</a></li>
        <li class=”nav-item”><a class=”nav-link” href=”upload.php”>画像アップロード</a></li>
        <li class=”nav-item”><a class=”nav-link” href=”./album.php”>アルバム</a></li>
        <li class=”nav-item”><a class=”nav-link” href=”bbs.php”>掲示板</a></li>
        <li class=”nav-item”><a class=”nav-link” href=”logout.php”>ログアウト</a></li>
       
    </ul>
</div>
</nav>
太字の文字だけ追記
ナビゲーションにログアウトが追加されましたね。

logout.php

<?php
session_start();
if(isset($_SESSION[‘id’])){
unset($_SESSION[‘id’]);
}
header(‘Location:login.php’);
?>
セッションにユーザーIDが保存されていたとときに、unset関数を使って変数を削除します。unsetは、引数に指定された変数そのものを削除する関数です。変数にnullやゼロを代入した場合、変数自体を削除したわけではないのでisset関数の返り値はTRUEになります。ですが変数にunset関数を使った場合は変数自体が削除されるため、FALSEになります。
ログアウトをクリックすると・・・・
ログイン画面に戻りました。
PHPについて

この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。


短期間でのレベルアップにはプロから学ぶのもありです。

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。

就職・転職支援