session_name('MoodleSession'.$CFG->sessioncookie); //设置当前session名称为MoodleSession
/*
*
*/
if (check_php_version('5.2.0')) {
session_set_cookie_params(0, $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure, $CFG->cookiehttponly);
} else {
session_set_cookie_params(0, $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure);
}
@session_start();
答案 0 :(得分:0)
当你把它贴在一个班轮上时
<?php
session_name('MoodleSession'.$CFG->sessioncookie); //设置当前session名称为MoodleSession /* * */ if (check_php_version('5.2.0')) { session_set_cookie_params(0, $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure, $CFG->cookiehttponly); } else { session_set_cookie_params(0, $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure); }
唯一执行的函数是session_name('MoodleSession'.$CFG->sessioncookie);
,因为您正在使用//
这段代码是什么?
<?php
@session_start();
如果你在PHP中添加一段带有@的代码,PHP解释器就不会抛出任何警告,这是一种不好的做法,容易出错。
session_start()
定义的
session_start()创建会话或恢复当前会话 通过GET或POST请求传递的会话标识符,或通过 cookie中。
当调用session_start()或会话自动启动时,PHP会 调用open和read session保存处理程序。这些将是一个 默认情况下或由PHP扩展提供的内置保存处理程序(例如 as SQLite或Memcached);或者可以是定义的自定义处理程序 的session_set_save_handler()。读回调将检索任何 现有会话数据(以特殊的序列化格式存储)并将 被反序列化并用于自动填充$ _SESSION 读取回调返回保存的会话数据时的超全局 到PHP会话处理。
如果您需要更多信息,我可以更新我的答案。也许你应该更好地粘贴你的代码,我认为你的格式很糟糕。
<强>更新强>
好的,看到了你的新代码:P
正如我之前关于@session_start()
的声明所述,您的代码只是将会话名称更新为"MoodleSession"
加上$CFG->sessioncookie
的值。
中间部分
if (check_php_version('5.2.0')) {
session_set_cookie_params(0, $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure, $CFG->cookiehttponly);
} else {
session_set_cookie_params(0, $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure);
}
检查PHP版本。根据{{3}}的changelog,添加了httponly
参数,因此在运行PHP 5.2版本的情况下,它将使用额外参数执行session_set_cookie_params。