我需要有关php中会话的帮助
我尝试了这段代码
<?php
session_start();
$_SESSION['one'] = "Hello";
$_SESSION['two'] = "World";
$_SESSION['three'] = "Welcome to session";
var_dump($_SESSION);
它打印
array (size=3)
'one' => string 'Hello' (length=5)
'two' => string 'World' (length=5)
'three' => string 'Welcome to session' (length=18)
然后我取消会话一
unset($_SESSION['one']);
echo "Session one unset and only session two and three exist";
var_dump($_SESSION);
它打印
Session one unset and only session two and three exist
array (size=2)
'two' => string 'World' (length=5)
'three' => string 'Welcome to session' (length=18)
然后,如果我破坏了会议
session_destroy();
echo "Session Destroyed <br />";
var_dump($_SESSION);
但是没有任何反应,我仍然可以将会话打印为
Session Destroyed
array (size=2)
'two' => string 'World' (length=5)
'three' => string 'Welcome to session' (length=18)
但是,如果我session_destroy();
再次使用它会警告我
警告:session_destroy():试图破坏未初始化的会话
而且session_destroy()
如果我使用unset而不是代码
session_unset('two');
echo "Session two unset";
var_dump($_SESSION);
所有会话变量都未设置,我无法访问会话三个变量
Session two unset
array (size=0)
empty
而不是使用的session_unset('two');
,如果我使用的session_unset();
话,我也它给了我同样的结果。
那么究竟是什么之间的实际差异unset($_SESSION['one'])
,session_unset('one')
,session_unset()
和session_destroy().
我用谷歌搜索,到处都有我session_destroy()
用来破坏整个会话的答案(但是在上面的代码中,我仍然可以访问会话变量),并且session_unset('one')
仅用于取消设置单个会话的变量(但是在上面的代码中,如果我使用session_unset('one')
所有会话变量均未设置)。
因此,请帮助我了解会话的工作原理,以及在记录用户时应使用的代码,session_unset()
或者session_destroy()
。
非常简单
session_unset —释放所有会话变量,但不会破坏会话ID
session_destroy —销毁已注册到会话的所有数据,要调用此函数应首先注册会话。
unset($ _ SESSION ['VARIABLE_NAME']) -这将取消设置您传递的变量值。
在您的示例中,直接调用session_destroy()是不正确的,因此您可以看到会话中存在的变量值,可以为注册的会话调用session_destroy。
谢谢阿米特
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句