重複の可能性:
(PHP) セッション Cookie を正しく破棄するには?
PHPでショッピングカートを作っています。session_id()
個々のユーザーを識別するために使用しています。商品注文を保存した後、session_id
. どうすればいいですか?
重複の可能性:
(PHP) セッション Cookie を正しく破棄するには?
PHPでショッピングカートを作っています。session_id()
個々のユーザーを識別するために使用しています。商品注文を保存した後、session_id
. どうすればいいですか?
unset()
関数は、指定されたセッション変数を解放するために使用されます。
if(isset($_SESSION['id']))
{
unset($_SESSION['id']);
}
session_destroy()
関数を呼び出して、セッションを完全に破棄することもできます。
session_destroy();
を使用しsession_regenerate_id()
ます。セッションIDが変更され、古いものは自動的に無効になります
適切に破棄するには、ログアウト時に次を使用します。
session_start();
session_regenerate_id();
session_destroy();
これを試してみてください..
page1.php
<?php
session_start();
$_SESSION['userID'] = 123;
?>
<a href="logout.php">Logout</a>
logout.php
<?php
session_start(); // start the session before using it
session_destroy(); // delete the current session
//$_SESSION['userID'] = 123; // <---- NO LONGER EXISTS
echo "Session destroyed!"; // inform the user of the changes
?>
または、session_destroy(); を使用することもできます。あなたのコードで
意味がわかりませんが、これはセッションを破棄する方法です
unset( $_SESSION['id'] )
使用する
session_regenerate_id();
代わりは。セッション ID が再生成されます。
詳細については、http: //php.net/manual/en/function.session-regenerate-id.phpを参照してください。
session_regenerate_id()
ユーザーがログアウトするとカートの内容が失われるため、セッション ID を使用することは最善の方法ではありません (新しいセッション ID を作成するために使用することもできます) (たとえば、彼は仕事中に注文の準備を開始し、自宅で仕上げたいと考えます)。
テーブルを作成すると、はるかに優れた、柔軟で簡単な制御が可能になります。
CREATE TABLE carts (
`id` INT,
`user_id` INT
)