• ログアウトを押すと
    、ログインページに遷移しますが、php.logに 「...
  • 質問者画像

    おおおおおおおお 
    ログアウトを押すと、ログインページに遷移しますが、php.logに 「デバック:ログイン期限日時タイムスタンプ」が表示されません。

    <やったこと>
    該当する変数の前にvar_dump();を入れ,何が入っているのか調べました。

    function.php44行目

    debug('現在日時タイムスタンプ:'.time());
    var_dump($_SESSION);
    if(!empty($_SESSION['login_date']) && !empty($_SESSION['login_limit'])){
    debug( 'ログイン期限日時タイムスタンプ:'.( $_SESSION['login_date'] + $_SESSION['login_limit'] ) );
    }

    その結果

    array (size=3)
    'login_date' => int 1571541171
    'login_limit' => int 3600
    'user_id' => string '22' (length=2)

    となります。login_date login_limit ともに入っているため、ログイン期限日時はphp.logにデバックされるはずと思いましたが、デバックされません。

    また、ログイン、ログアウトするとphpMyAdminの

    login_time
    create_time
    update_time

    は更新されるものと思いますが、ユーザー登録した時のままの時間になっています。これが関係しているのでしょうか?


    よろしくお願いします。


    回答 1

    ウェブカツコーチ 
    講師からの回答
    マイページ画面で「ログアウト」ボタンを押下した際の処理を順に見てみましょう。
    「1) mypage.php(ここでログアウトボタンをクリック)」->「2) logout.php (画面表示はなく処理のみ)」->「3) login.php」の順でファイルを遷移しています。

    ご質問内容の「デバック:ログイン期限日時タイムスタンプが表示されない」件については、function.phpのdebugLogStart()コード内の、『セッション内の「login_date」、「login_limit」が両方とも空ではない場合にのみ「デバック:ログイン期限日時」タイムスタンプを書き出す』条件分け処理が該当箇所となります。

    そのため、2)logout.phpでsession_destroy();を行いセッションを空にして3)login.phpに遷移した状態では、上記のログが書き出されないのが正常です。

    なお、print_r($_SESSION)でセッション内容を表示している『セッション変数情報:』ログでも、セッションの中身を確認できます。念の為私の環境でログを取りましたので、参考としてセッションの中身と表示ログを追ってみてください。(※文字数制限の関係で一部省略しています)

    1)mypage.php
    「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
    [22-Oct-2019 10:44:13 Asia/Tokyo] デバッグ:「 マイページ 
    [22-Oct-2019 10:44:13 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
    〜〜〜省略
    [22-Oct-2019 10:44:13 Asia/Tokyo] デバッグ:セッション変数情報:Array
    (
        [login_date] => 1571708653
        [login_limit] => 3600
        [user_id] => 19
    )
    // ログイン期限日時タイムスタンプ表示される
    [22-Oct-2019 10:44:13 Asia/Tokyo] デバッグ:現在日時タイムスタンプ:1571708653
    [22-Oct-2019 10:44:13 Asia/Tokyo] デバッグ:ログイン期限日時タイムスタンプ:1571712253
    〜〜省略

    2)logout.php
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:「 ログアウトページ 
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
    〜〜省略
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:セッション変数情報:Array
    (
        [login_date] => 1571708653
        [login_limit] => 3600
        [user_id] => 19
    )
    // セッションが空でないので、この時点でもログイン期限日時タイムスタンプは表示されている
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:現在日時タイムスタンプ:1571709452
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:ログイン期限日時タイムスタンプ:1571712253
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:ログアウトします。
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:ログインページへ遷移します。


    3)login.php
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:「 ログインページ 
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
    〜〜省略
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:セッションID:vidl1dlonepp4iq6eq2u8riula

    // セッションはあるが中身が空なので、ログイン期限日時タイムスタンプは表示されない
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:セッション変数情報!:Array
    (
    )
    [22-Oct-2019 10:57:32 Asia/Tokyo] デバッグ:現在日時タイムスタンプ:1571709452
    〜〜省略