これらの2つの概念を悪いアプローチで結びつけていますか?セッションと認証を処理するための「きれいかつ適切なOO」の方法は何ですか?
現在、私はすべてのセッション処理と、ユーザがconfig.incファイルをログアウトしたいかどうかを委任しています。私はAuthクラスを書いていたので、私のAuthクラスが私のconfig.incのロジックの大部分を占めているかどうか疑問に思っていました。それにもかかわらず、私は確かにこれを扱うよりエレガントな方法があると確信しています...
これは私が私のconfig.incに持っているものです(このコードの大きな塊は、ソース._を見つけることができません):
ini_set('session.name', 'SID');
# session management
session_set_cookie_params(24*60*60); // set SID cookie lifetime
session_start();
if(isset($_SESSION['LOGOUT']) {
session_destroy(); // destroy session data
$_SESSION = array(); // destroy session data sanity check
setcookie('SID', '', time() - 24*60*60); // destroy session cookie data
#header('Location: '.DOCROOT);
} elseif(isset($_SESSION['SID_AUTH'])) { // verify user has authenticated
if (!isset($_SESSION['SID_CREATED'])) {
$_SESSION['SID_CREATED'] = time();
} elseif (time() - $_SESSION['SID_CREATED'] > 6*60*60) {
// session started more than 6 hours ago
session_regenerate_id(); // reset SID value
$_SESSION['SID_CREATED'] = time(); // update creation time
}
if (isset($_SESSION['SID_MODIFIED']) && (time() - $_SESSION['SID_MODIFIED'] > 12*60*60)) {
// last request was more than 12 hours ago
session_destroy(); // destroy session data
$_SESSION = array(); // destroy session data sanity check
setcookie('SID', '', time() - 24*60*60); // destroy session cookie data
}
$_SESSION['SID_MODIFIED'] = time(); // update last activity time stamp
}
このブログを参照してください:http://blog.stackoverflow.com/2011/01/real-questions-have-answers/ FAQ:http://stackoverflow.com/faq具体的には、あなたの質問はこの例のようなものです。「あなたの答えは質問と共に提供され、さらに答えが得られると思います:「私は______に______を使用します、あなたは何を使用しますか?」「あなたの質問は良いですが、このような主観的な質問に関連するhttp://programmers.stackexchange.comでそれを楽しませる。 – Stephen
さて、削除してクロスポストしましたか? – asdfqwer