因此,让我在前言中说,我不是最有经验的php开发人员,对服务器也没有最扎实的了解。。但我被难住了,不确定该用什么,所以我愿意接受任何建议。
所以我正在制作一个网站,你可以浏览一系列页面,在每个页面上都设置了不同的$_SESSION
变量,直到最后所有的$_SESSION
变量都用于查询数据库。此外,当用户在任何时候返回索引页面时,我需要取消设置所有$_SESSION
变量,这样进程就不会受到影响。此外,这个过程在我的localhost上运行得很好(我使用wampserver),但由于某种原因,我似乎无法在托管服务器上取消设置变量。
在索引页面上,我正在设置session_save_path()
,然后发现这个过程在线,以取消设置会话并删除它,然后创建一个新会话。
<?php
ini_set('session.save_path', '/home3/www/public_html/test/session');
session_name();
session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
?>
这个过程的问题是,我的$_SESSION
变量都没有在下一页之后保持设置,我不明白为什么。。
我也尝试过不使用setcookie()
和session_regenerate_id()
的相同过程,这允许我在所有页面之间传递$_SESSION
变量,但当我返回索引页面时,它们不再被取消设置。。
我不是最有经验的,我也不完全理解$_SESSION
的工作原理,我可能错过了一些非常简单的东西,所以任何建议都很好!感谢
所以我想明白了。不确定为什么这样做有效,但现在开始了。
上面的代码是在索引页的最开始使用的,其思想是,每当用户点击索引页时,它都会擦除$_SESSION
。
是什么修复了它采取的过程
<?php
ini_set('session.save_path', '/home3/www/public_html/test/session');
session_name();
session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
?>
并在返回到索引页之前,将其放入自己的脚本中,该脚本将被调用。
<?php
session_start();
session_unset();
session_destroy();
header('Location: index.php');
?>
同样,不确定这是如何修复的,但仍然很高兴它能正常工作。