質問するログイン新規登録

回答編集履歴

2

もうちょっと詳しく説明\+日本語おかしかったので修正しました

2017/09/14 08:07

投稿

Kazuma2015
Kazuma2015

スコア46

answer CHANGED
@@ -31,4 +31,24 @@
31
31
 
32
32
  ```
33
33
 
34
+ __constructはページ読み込み時に自動的に読み込まれるメソッドです
35
+
36
+ session_start()はセッションを起動するもので
37
+
38
+ ini_set( 'session.gc_maxlifetime', 60 );
39
+ でセッションの持続時間を変更出来るので一定時間ページ遷移されない場合はセッションがなくなってしまいます。
40
+
41
+ isset関数は中身がnull以外ならtrueが返ってきます。
42
+
43
+ unset関数は対象の変数の中身をnullにします。
44
+
34
- といた感じになと思いま
45
+ 要は何をやのか、なんで
46
+
47
+ ログインしたときに$_SESSION['LOGIN_INFO'] = trueを宣言しておけば
48
+ ログイン証明のセッションが発行されるので、
49
+ それがあるかないかを判定して再度ログイン要求をかけるか判定させようとしています。
50
+
51
+ また、セッションの持続時間も変更してあるので、セッションが切れたらもちろんログイン証明がなくなるので再度ログイン要求させます。
52
+
53
+ 一定時間操作が無ければ、ということだったので、別のページに遷移した際にログイン証明セッションを再発行してあげれば同様の動きになると思います。
54
+

1

例文を追記

2017/09/14 08:07

投稿

Kazuma2015
Kazuma2015

スコア46

answer CHANGED
@@ -3,4 +3,32 @@
3
3
  ini_set( 'session.gc_maxlifetime', 60 ); // 秒(デフォルト:1440)
4
4
  ```
5
5
 
6
- と設定したらセッションがデストロイされるまでの時間が変更できますので、これで対応してください。
6
+ と設定したらセッションがデストロイされるまでの時間が変更できますので、これで対応してください。
7
+
8
+ p.s.
9
+ セッションのログアウトについて
10
+ 実際に組み込むならこんな感じ?
11
+ ```php
12
+
13
+ function __construct(){
14
+ session_start();
15
+
16
+ // セッションのライフタイム変更
17
+ ini_set( 'session.gc_maxlifetime', 60 ); // 秒(デフォルト:1440)
18
+
19
+ // セッションが存在していない(タイムアウトもしくはログアウトされている)
20
+ if(!isset($_SESSION['LOGIN_INFO'])) {
21
+ // ここにログイン処理を書く(ログイン画面に遷移させる)
22
+
23
+ // セッションが存在している場合はセッションのライフタイムを更新
24
+ } else {
25
+ unset($_SESSION['LOGIN_INFO']);
26
+ $_SESSION['LOGIN_INFO'] = true;
27
+ }
28
+ }
29
+
30
+ // ここからはこのページの処理
31
+
32
+ ```
33
+
34
+ といった感じになると思います。