代码点火器在视图中传递数据库session_id

时间:2011-07-10 23:56:39

标签: php codeigniter

我正在尝试让Uploadify使用代码点火器但是我遇到的问题与为“ShockWave Flash”创建新会话而不是拾取已经创建的会话的人一样。

我有以下设置

$config['sess_cookie_name']     = 'session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update']  = 300;

Code Igniter会话表就像这样 浏览器

   session_id: 73b05af777af0e6a56e7bbba8f9714f6
   ip_address: 127.0.0.1
   user_agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/53
last_activity: 1310341663
    user_data: a:6:{s:5:"email";s:32:"test@hotmail.com"}

WITH UPLOADIFY

   session_id: d39bce3d9c734081379b286449cf56ce
   ip_address: 127.0.0.1
   user_agent: Shockwave Flash
last_activity: 1310341167
    user_data: 

我正在试图破解这个并将浏览器session_id添加为像这样的获取,所以当uploadify提交时我可以检索给定会话ID的用户会话数据。

              $(document).ready(function() {   
                $('#uploadify').uploadify({  
                  'uploader'  : '/uploadify/uploadify.swf',   
                  'script'    : '/index.php/upload/uploadify/'.$this->session->userdata('session_id').'',  

我的问题是: 1)我在源代码中公开显示session_id是不是很糟糕,即使我不这样做,session_id是否可用? 2)在“上传”控制器上,我怎样才能基本上“加载”session_id或从中获取数据?

1 个答案:

答案 0 :(得分:2)

  1. 唯一可能导致问题的方法是加密session_id cookie - 否则,您不会向用户提供更多真实数据。 (所以,是的,在大多数情况下,他们无论如何都可以获得这些数据)
  2. 您需要覆盖sess_read()课程中的__constructMY_Session以查看自定义变量,或者您可以修改Cookie
  3. 基本上这个:

    public function __construct( $id )
    {
       // a hack, but you need a hack
       $_COOKIE[ $this->sess_cookie_name ] = $id;
       parent::__construct();
    }