私のログインスクリプトでは、人々がログインしたままにしておきたいかどうかをチェックできるチェックボックスを入れました。 "stayin"というチェックボックスに名前を付けました。ログイン時のセッションの有効期限を設定する
ユーザーがログインページのインデックスに直接アクセスすると、セッションが既に設定されている(セッションが終了すると、またはブラウザがシャットダウンしたときに期限切れになる)という問題があります。セッション履歴の設定がうまくいかなかったため、「ログインしてください」とマークし、ページをブラウズしてからブラウザをシャットダウンして戻ったとします。セッションは常に、インデックススクリプトによって特定の有効期間なしに設定されます。誰もがいつもログインしたいとは思っていないので、session_start()を使う前に "session_set_cookie_parameters"を "never"に設定することはできません(session_set_cookie_paramsがスクリプトAFTER session_start()(Iこれが本当にうまくいくかどうかわからない))。
インデックススクリプトでは、単にsession_start()を使用します。 「ユーザー名」の値があるかどうかを確認し、ユーザーのログイン先をリダイレクトします。 とアクションスクリプトのために:
<?php
session_start();
if(isset($_POST['stayin'])){ // In case they want to be kept logged in.
session_set_cookie_params(999999999,"/path");
}
?>
私はすべてのスクリプトの最上部にあるのsession_start()を使用します。 PHPバージョン4.4.9を使用しています。