Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 代码点火器在视图中传递数据库会话\u id_Php_Codeigniter - Fatal编程技术网

Php 代码点火器在视图中传递数据库会话\u id

Php 代码点火器在视图中传递数据库会话\u id,php,codeigniter,Php,Codeigniter,我正在尝试使用CodeIgniter进行上传,但是我和每个人都有相同的问题,都是为“ShockWave Flash”创建了一个新会话,而不是拾取已经创建的会话 我有以下设置 $config['sess_cookie_name'] = 'session'; $config['sess_expiration'] = 7200; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = TRU

我正在尝试使用CodeIgniter进行上传,但是我和每个人都有相同的问题,都是为“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;
代码点火器会话表如下所示 带浏览器

   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"}
上传

   session_id: d39bce3d9c734081379b286449cf56ce
   ip_address: 127.0.0.1
   user_agent: Shockwave Flash
last_activity: 1310341167
    user_data: 
我正试图破解这个问题,并添加浏览器会话id作为访问php的途径,就像这样,当uploadify提交时,我可以根据会话id检索用户会话数据

              $(document).ready(function() {   
                $('#uploadify').uploadify({  
                  'uploader'  : '/uploadify/uploadify.swf',   
                  'script'    : '/index.php/upload/uploadify/'.$this->session->userdata('session_id').'',  
我的问题是: 1) 我在源代码中公开显示session\u id是否很糟糕,即使我不这样做,该session\u id是否仍然可用? 2) 在“上传”控制器上,我如何实质上“加载”该会话id或从中获取数据

  • 唯一会引起问题的方法是加密会话id cookie——否则,就不会给用户提供更多的真实数据。(因此,是的,在大多数情况下,他们无论如何都可以获得这些数据)
  • 您需要在
    MY\u会话
    类中覆盖
    sess\u read()
    \u构造
    ,以查看自定义变量,或者您可以修改cookie
  • 基本上:

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

    非常感谢你!因此,我实际上是在加密会话cookie,以便对用户加密cookie,也许我可以对会话id进行一些自定义加密,以确保对公众安全。今晚我将尝试上面的代码,谢谢!两个问题1)如果我像上面所示修改会话类的构造函数,我如何指定输入$id?什么是正确的流程。2) 我试图简单地修改sess_read()函数,并用我的session id参数手动调用它,从技术上讲,这是可行的,但问题是sess_read会被调用两次,一次是自动上载,第二次是在我的控制器顶部手动调用,所以我认为我真的需要修改构造函数。3) 如何扩展代码点火器库?它似乎与系统类不同……1$此->加载->库('session',$id);2.如果您正在手动设置会话id,那么无论您调用它的频率有多高,都不应该影响它。有错误吗?3.在应用程序/库下创建一个名为MY_Session.php的文件。将类MY_Session放在其中,并将其子类CI_Session放在该行末尾需要一个分号