[PHP-users 27466] セッション破棄イベント

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[PHP-users 27466] セッション破棄イベント

kimura
こんにちは、
PHPのセッション機能を使ってプログラムを組んでいるのですが、
ログイン画面などで
ユーザーログイン→セッション作成→正常な処理を行わずに画面を閉じる(×ボタンなど)
この場合、セッション破棄が出来ず、
再度ログインする場合、前の値のセッションを使ってしまいます。
これをどうにかして、一度、破棄した新しいセッションを使って
ログインをさせたいのですが、
どのように処理を実行すればよいのでしょうか。


_______________________________________________
PHP-users mailing list  [hidden email]
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|

[PHP-users 27467] Re: セッション破棄イベント

Shintaro Nakayama
こんにちわ、はじめまして。
中山と申します。
私の場合、セッションデータを破棄する場合はこのような
処理を行っています。

function sessionDelete(){
 // $_SESSIONへ新規配列(array())を代入
 $_SESSION = array();
 // Cookie削除
 // 現在より1日前の有効期限
 setcookie(session_name(),"",time()-86400);
}
一度お試しください。


----- Original Message -----
From: <[hidden email]>
To: <[hidden email]>
Sent: Friday, November 11, 2005 12:25 PM
Subject: [PHP-users 27466]セッション破棄イベント


> こんにちは、
> PHPのセッション機能を使ってプログラムを組んでいるのですが、
> ログイン画面などで
> ユーザーログイン→セッション作成→正常な処理を行わずに画面を閉じる(×ボタ
ンなど)

> この場合、セッション破棄が出来ず、
> 再度ログインする場合、前の値のセッションを使ってしまいます。
> これをどうにかして、一度、破棄した新しいセッションを使って
> ログインをさせたいのですが、
> どのように処理を実行すればよいのでしょうか。
>
>
> _______________________________________________
> PHP-users mailing list  [hidden email]
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3

_______________________________________________
PHP-users mailing list  [hidden email]
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|

[PHP-users 27471] Re: セッション破棄イベント

clockwork-toy
In reply to this post by kimura
あだちです

クッキーはexpireの情報が無い場合はブラウザが閉じるまでをひとつのセッションとみなすそうです。
ということは何か特別なIDを渡してチェックすればよいのではないでしょうか。

<?php
if (isset($_COOKIE["ID"])) {
     echo $_COOKIE["ID"];
} else {
     $str=date("r");
     setcookie("ID",$str);
     echo "wellcome";
}
?>

この例ではブラウザを開いて最初にアクセスした時だけWellcomeと表示されます。(IE6,FireFoxで確認)
この例ではissetを使いましたが、IDの値をセッション変数に格納し、
両方が同じ時セッションが有効とするとセッションの破棄を少しはましに行えるかもしれません。

(注:タブブラウザの場合、完全にブラウザが閉じるまでがひとつのセッションです OPERA,FireFoxで確認)

_______________________________________________
PHP-users mailing list  [hidden email]
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3