【问题标题】:Cookie and Session Variables creation / deletionCookie 和会话变量的创建/删除
【发布时间】:2018-01-18 00:22:04
【问题描述】:

我有 2 个单独的 PHP 文件,一个用于创建会话和 cookie,另一个用于销毁它们。我尝试通过在浏览器中手动输入他们的 URL 来一个接一个地加载,但它似乎不起作用。 (如果您担心的话,我已经在 cookie 中尝试了 'time ()' 属性。)

test.php

<?php
session_start();
echo '1s'.$_SESSION['uname'] ;
echo '1c'.$_COOKIE['usrid'] ;
$_SESSION["uname"] = "green";
setcookie("usrid", 'blue', strtotime( '+30 days' ), "/");
echo '2s'.$_SESSION['uname'] ;
echo '2c'.$_COOKIE['usrid'] ;
?>

注销.php

<?php
session_start();
$_SESSION = array();
session_destroy();
setcookie("usrid", '', strtotime( '-5 days' ), "/");
?>

我已经尝试一次又一次地重新加载页面,但仍然无法正常工作。

【问题讨论】:

  • 你怎么知道会话没有被破坏?
  • 重新加载 test.php 在 '1s' 和 '1c' 之后应该什么都没有。 @MehdiBounya
  • 但是你是在打印它们之前设置cookie,当然它们会有一个值。
  • 只有在创建之后,它才会出现在“2c”之后。这就是我的逻辑。如果我错了,请纠正我。
  • 我的不好,第一次回显没注意,你用的是什么浏览器?

标签: php session cookies


【解决方案1】:

它对我来说很好用。

如果要检查,请创建 3 个文件

  1. 在这个文件中只定义会话和cookie的变量

<?php
session_start();
$_SESSION["uname"] = "green";
setcookie("usrid", 'blue', strtotime( '+30 days' ), "/");
echo '2s'.$_SESSION['uname'] ;
echo "<br>";
echo '2c'.$_COOKIE['usrid'] ;

  1. 在此文件中执行删除会话和 cookie 的代码

    <?php
    session_start();
    $_SESSION = array();
    session_destroy();
    setcookie("usrid", '', strtotime( '-5 days' ), "/");
    
  2. 在最后一个文件中添加数据检索代码

    print_r($_SESSION); print_r($_COOKIE);

【讨论】:

  • 在不同的浏览器上尝试了 3 个文件,仍然没有成功。
  • 那么不确定,有什么问题,但它适用于所有浏览器
【解决方案2】:

在 setcookie 之前做一个回显...它甚至根本不应该制作那个 cookie,你应该得到一个关于已经输出的标头的 php 警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2016-06-17
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多