这段代码在PHP中有什么影响?

时间:2016-05-24 09:05:45

标签: 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_start();

1 个答案:

答案 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()定义的

http://php.net/

  

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。