所以,让我先说一下我不是最有经验的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
的工作方式,我可能错过了一些相当简单的事情,所以任何建议都会很棒!感谢
答案 0 :(得分:0)
所以我明白了。不知道为什么会这样,但是在这里。
上面的代码是在索引页面的最开头使用的,这个想法是每次用户点击索引页面时都会擦除$_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');
?>
同样,不确定这是如何修复它的,但仍然很好,让它工作。