質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

2回答

1870閲覧

セッションの有効期限が延長できない

inari1973

総合スコア35

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

1クリップ

投稿2019/06/25 02:39

編集2019/06/25 03:03

セッションの有効期限が延長できません。

PHPとhtaccessを変更してみましたが、いずれも有効期限が延長できませんでした。

PHP

1//パターン1 2<?php 3session_start([ 4 'cookie_lifetime' => 259200, 5]); 6 7//パターン2 8<?php 9ini_set('session.gc_maxlifetime', 259200); 10session_set_cookie_params(259200); 11session_start(); 12?>

htaccess

1#session 2php_value session.gc_maxlifetime 259200 3php_value session.gc_probability 1 4php_value session.gc_divisor 1000

htaccessを変更したときは以下のエラーになりました。

500 Internal Server Error
断続的に発生する場合:CGIの負荷が大きい(CGIプロセスが多数動作している)。
常に発生する場合:CGIのパーミッション設定に誤りがある。 / CGIのソースコードに問題がある。/ .htaccess の記述に誤りがある。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/25 02:43

どうやって「できていない」ことを確認されたのでしょうか
inari1973

2019/06/25 02:49

if (empty($_SESSION ['timestamp' ])) { $_SESSION ['timestamp' ] = time() ; } print $_SESSION ['timestamp' ] 30分ぐらい経過させて、上記のプログラムを実行すると、$_SESSION ['timestamp' ] が新しくなっていました。
m.ts10806

2019/06/25 02:52

259200秒=4320分=72時間=3日 ですよ。
m.ts10806

2019/06/25 02:56

あ、失礼。そういうことですね。超長くしてどうなるか、という実験のための秒数設定ということですね
m.ts10806

2019/06/25 02:58

念のため、PHPのバージョン、実行しているサーバーなど環境情報を追記していただければと思います。 また、30分またずに例えば10秒とか5秒とか、即時リロードでもですか?
m.ts10806

2019/06/25 02:59

そういえば、どこにもsession_start()の記述がありませんが、コード全体はどうなっているのでしょうか? 質問本文に追記してください。
inari1973

2019/06/25 03:04

パターン2にもsession_start()を記述しました。
m.ts10806

2019/06/25 03:05 編集

実際に2019/06/25 11:49で投稿された確認用プログラムにはつけてないのでしょうか。
inari1973

2019/06/25 03:10

実際のプログラムには記述されています。
m.ts10806

2019/06/25 03:13

実際のプログラムを質問本文に追記してください。 でないとそこから突っ込むことになるので二度手間三度手間が発生します。
inari1973

2019/06/25 03:14

PHPのバージョンは7.1.28 OSはLinux Apacheバージョン2.4.6 になります。 即時リロードは保持されます。24分経過後に消える感じかもしれません。
guest

回答2

0

自己解決

私の勘違いのようでセッションが保持されているようでしたので、質問を一旦、解決とさせていただきます。

同じホームページの中にセッションを延長したページと延長されていないページが混在していたことが原因かもしれません。詳しく分かりましたら追記させていただく予定です。

ご迷惑をおかけしました。

投稿2019/06/25 03:30

inari1973

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/25 04:18

empty()だと例えば0とか"0"もtrueが返ってきてしまうのでより厳格にチェックするためにis_null()またはarray_key_exists()のほうがいいかもしれません。それかいっそのこと$_SESSION自体をチェックするとか。
guest

0

恐らくgc_maxlifetimeが原因だと思われますので
htaccessで設定している部分をphpで設定してみてください。

投稿2019/06/25 02:57

hide0128

総合スコア245

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問