Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Javascript-保持PHP会话上的本地存储_Javascript_Php_Local Storage_Session Cookies - Fatal编程技术网

PHP Javascript-保持PHP会话上的本地存储

PHP Javascript-保持PHP会话上的本地存储,javascript,php,local-storage,session-cookies,Javascript,Php,Local Storage,Session Cookies,我(对我来说)有一个奇怪的行为,就是使用PHPsession\u destroy(),用于注销,使用JSlocalStorage来避免连续的DB ajax请求 是这样。我当前(和工作)的情景: 在登录表单中,PHP执行一个session\u start()->浏览器使用PHPSESSID编写cookie(目前没有localStorage) 登录后,如果localStorage.getItem('myDataItem')==null,则会请求一次数据(ajax)并使用localStorage.se

我(对我来说)有一个奇怪的行为,就是使用PHP
session\u destroy()
,用于注销,使用JS
localStorage
来避免连续的DB ajax请求

是这样。我当前(和工作)的情景:

  • 在登录表单中,PHP执行一个
    session\u start()
    ->浏览器使用
    PHPSESSID
    编写cookie(目前没有
    localStorage
  • 登录后,如果
    localStorage.getItem('myDataItem')==null
    ,则会请求一次数据(ajax)并使用
    localStorage.setItem('myDataItem','Hi,我是您的ajax响应')
    。如果
    localStorage.getItem('myDataItem')!=空
    注意事项 代码:

  • 在注销click元素时,浏览器运行一个带有ajax请求的函数,该函数执行PHP的
    会话\u destroy()
    ,并执行JS
    location.reload()
    并从登录表单重新启动 代码:

    $("#logout_element").on('click', function(){
        $.ajax({
            url: 'ajax.php', 
            type:'post', 
            data:{request: 'logout'} /*ajax PHP do a session_destroy()*/
         })
        .done(function(){
            location.reload();
        });
    });
    
    到目前为止,一切(F5/刷新)都是正常的,如果不是注销/
    会话_destroy()
    ,本地存储就会消失


    我的目标

    即使在
    会话\u destroy()

    最好的


    奥斯卡

    你确定你通过了那个条件吗
    (localStorage.getItem('myDataItem')===null
    尝试:
    localStorage.getItem('myDataItem')===undefined
    ,因为这是JavaScript而不是PHP。@CD001根据文档,
    getItem()
    如果找不到键,则返回
    null
    (我只是在控制台中尝试过,可以确认):PHP对客户端的存储没有影响(但我想你已经知道了)…可能还有其他原因。
    localStorage
    绑定到域;你的页面是否都来自同一来源?在调用
    location.reload()
    之前和之后,可以尝试调试
    localStorage
    的内容?(确保选中该选项以在页面加载之间保留日志)@MátéSafranka好的,Chrome欺骗了我。我在cookie窗口的地址栏左侧进行了检查,我意识到localStorage仅在登录时出现。直到现在,在您回答之后,我才在调试控制台中进行了检查,localStorage对象也保留在注销时。我做了一个非常糟糕的检查!!!这真让人难堪ng.没关系,我只是找错地方了。谢谢你的支持,对不起:(
    $("#logout_element").on('click', function(){
        $.ajax({
            url: 'ajax.php', 
            type:'post', 
            data:{request: 'logout'} /*ajax PHP do a session_destroy()*/
         })
        .done(function(){
            location.reload();
        });
    });