3

重複の可能性:
(PHP) セッション Cookie を正しく破棄するには?

PHPでショッピングカートを作っています。session_id()個々のユーザーを識別するために使用しています。商品注文を保存した後、session_id. どうすればいいですか?

4

6 に答える 6

1

unset()関数は、指定されたセッション変数を解放するために使用されます。

if(isset($_SESSION['id']))
{
   unset($_SESSION['id']);
}

session_destroy()関数を呼び出して、セッションを完全に破棄することもできます。

session_destroy();
于 2012-11-14T07:59:34.460 に答える
1

を使用しsession_regenerate_id()ます。セッションIDが変更され、古いものは自動的に無効になります

適切に破棄するには、ログアウト時に次を使用します。

session_start();
session_regenerate_id();
session_destroy();
于 2012-11-14T07:53:54.567 に答える
0

これを試してみてください..

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(); を使用することもできます。あなたのコードで

于 2012-11-14T08:35:15.087 に答える
0

意味がわかりませんが、これはセッションを破棄する方法です

 unset( $_SESSION['id'] )
于 2012-11-14T07:53:24.443 に答える
0

使用する

session_regenerate_id();

代わりは。セッション ID が再生成されます。

詳細については、http: //php.net/manual/en/function.session-regenerate-id.phpを参照してください。

于 2012-11-14T07:54:05.440 に答える
0

session_regenerate_id()ユーザーがログアウトするとカートの内容が失われるため、セッション ID を使用することは最善の方法ではありません (新しいセッション ID を作成するために使用することもできます) (たとえば、彼は仕事中に注文の準備を開始し、自宅で仕上げたいと考えます)。

テーブルを作成すると、はるかに優れた、柔軟で簡単な制御が可能になります。

CREATE TABLE carts (
    `id` INT,
    `user_id` INT
)
于 2012-11-14T07:57:55.487 に答える