PEAK XOOPS - セッションタイムアウトを避ける in englishin japanese

Archive | RSS |
XOOPS
XOOPS : セッションタイムアウトを避ける
Poster : GIJOE on 2005-08-12 12:06:37 (79619 reads)

in englishin japanese時間をかけた文章をフォーラムなどに投稿しようとして、タイムアウトに遭ったことはありませんか?
精神的なダメージは大きく、そういうことが頻繁にあると、誰も投稿しようとしなくなってしまうでしょう。

拙作オートログインでは、その対策を施してはいますが、オートログインを入れられない環境(セキュリティ上の理由や、XOOPS2.2)で、なんとかセッションタイムアウトを避けたい、という人も多いでしょう。

かといって、セッション生存時間を長くするのは、セッションハイジャックなどを考えるとマイナスです。

そこで、ハートビート法をXOOPSに取り入れてみました。

いじるのはテーマだけなので、かなり簡単なHackです。

下のファイルを作成して、XOOPS_ROOT_PATH直下に置きます。
heartbeat.php


<?php

include "mainfile.php";

$interval = @ini_get( 'session.gc_maxlifetime' ) ;
if( empty( $interval ) || $interval < 180 ) {
	$interval = 1440 - 120 ; // PHP default : 1440sec (=24min)
} else {
	$interval -= 120 ;
}

echo '
<html>
<head>
<meta HTTP-EQUIV="Refresh" CONTENT="'.$interval.'" />
</head>
<body>
</body>
</html>
' ;

?>



あとは、このファイルを、frameやiframeなどで読み込むように、theme.htmlに記述するだけです。

例) theme.html の最後

</td>
</tr>
</table>
<!-- end footer -->

<!-- heart beat -->
<{if $xoops_isuser }>
  <iframe src="<{$xoops_url}>/heartbeat.php" width="0" height="0"></iframe>
<{/if}>

</body>
</html>

Printer friendly page Send this story to a friend

Comments list

Rollei  Posted on 2006/4/9 15:39
GIJOEさん、こんにちは。
そういえば、このコメントしていました。返事をいただけなかったので、勝手に、カスタマイズするを「はい」にして時間を短縮して今日に至っていました。半年遅れのお返事ありがとうございます。早速、「いいえ」に修正しました
GIJOE  Posted on 2006/4/6 3:59
今頃気づきました。(半年以上?)

一般設定の「セッション」の時間は、ほとんどの場合気にしなくて良いと思います。というのも、セッションをカスタマイズする事の方がよほど問題だからです。

セッションをカスタマイズする、については、「いいえ」が、推奨です。ブラウザを閉じてもセッションそのものが生きているのですから、いろんな意味で危険です。

必要なら、「セッションカスタマイズ」せずに、php.iniなり、.htaccessなりで、session.maxlifetimeを調整することになるでしょう。
Rollei  Posted on 2005/9/23 12:39
こんにちは、rolleiです。
ハックを試してみました。たしかにタイムアウトしなくなりました。そこでお聞きしたいのですが、一般設定の「セッション」の時間は何分にすればいいのでしょう? デフォルトはたしか15分だったと思いますが、もっと短く、たとえば5分とかにしておく方がベターなのでしょうか?
Rollei  Posted on 2005/9/6 1:32
待っていました!という気持ちです。
早速使ってみます。
GIJOE  Posted on 2005/8/28 16:13
Prolonging session by "heart beat" and "autologin" are quite different each other.

If you want to test it, try to delete all records in the session table by phpMyAdmin or mysql command.
greywolf  Posted on 2005/8/26 23:49
Sorry, if this sounds stupid, but does the autologin hack not also prolong the session ?
indream  Posted on 2005/8/19 23:53
testing
Bahattee  Posted on 2005/8/15 9:46
Very cool! Thanks!
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!