2016-11-24 72 views
2

我有一个网络应用程序,在核心PhP。我们正在逐步将其移至CI框架Core Php&CodeIgniter之间的分享会话

问题:需要在它们之间共享会话值。

核心PHP应用导演结构:|-- /xampp/lms/
核心PHP程序URL:http://localhost/LMS/index.php

CI应用导演结构:|-- /xampp/lms/newlms/
CI程序URL:http://localhost/lms/newlms/index.php/login

CI配置:

config.php 

$config['sess_driver'] = 'database'; 
$config['sess_cookie_name'] = 'ci_session'; 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = 'ci_sessions'; 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 

$config['cookie_prefix'] = ''; 
$config['cookie_domain'] = ''; 
$config['cookie_path']  = '/'; 
$config['cookie_secure'] = FALSE; 
$config['cookie_httponly'] = FALSE; 

我有什么迄今所做。

核心PHP改变
路径:\xampp\htdocs\lms\configuration.inc.php这是第一个被称为核心PHP文件

session_name('ci_session'); 
session_start(); 

echo '<pre>'; 
echo '<br/>------------- session_save_path-------- <br/>'; 
print_r(session_save_path()); 
echo '<br/>------------- session_name-------- <br/>'; 
print_r(session_name()); 
echo '<br/>------------- $_COOKIE -------- <br/>'; 
print_r($_COOKIE); 
echo '<br/>------------- $_SESSION -------- <br/>'; 
print_r($_SESSION); 
exit; 

输出:

------------- session_save_path-------- 
\xampp\tmp 
------------- session_name-------- 
ci_session 
------------- $_COOKIE -------- 
Array (
    [ci_session] => 2b9tj8rek53kapgsuh4k3v2fuuvblvq9 
) 

------------- $_SESSION -------- 
Array (
    some values which I have set in Core php 
) 

会话路径xampp\tmp\sess_2b9tj8rek53kapgsuh4k3v2fuuvblvq9

CI改变
路径:\xampp\htdocs\lms\newlms\application\modules\login\controllers

Class Login extends MX_Controller { 

    function __construct() { 
    parent::__construct(); 
    } 

    function index() { 
echo '<pre>'; 
echo '<br/>------------- session_save_path-------- <br/>'; 
print_r(session_save_path()); 
echo '<br/>------------- session_name-------- <br/>'; 
print_r(session_name()); 
echo '<br/>------------- $_COOKIE -------- <br/>'; 
print_r($_COOKIE); 
echo '<br/>------------- $_SESSION -------- <br/>'; 
print_r($_SESSION); 
exit; 
    } 
} 

输出:

------------- session_save_path-------- 
\xampp\tmp 
------------- session_name-------- 
ci_session 
------------- $_COOKIE -------- 
Array (
    [ci_session] => 2b9tj8rek53kapgsuh4k3v2fuuvblvq9 
) 

------------- Core $_SESSION -------- 
Array (
    [__ci_last_regenerate] => 1479978675 
) 

------------- CI $_SESSION -------- 
CI_Session Object (
.. Some values. 
) 

PS:我曾试图解释的最佳方式,但之前反对投票请分享原因。

+0

您使用的CI版本是什么? CI的会话处理程序只是php会话处理程序的包装器 – bertmaclin

+0

@bertmaclin CI的版本= 3.1.2 – Anon30

回答

0

至于建议的bertmaclin,

CI的会话处理程序仅仅是一个PHP的会话处理程序

有tweek CI的config.php文件&会议库的包装。

CI的config.php:之前base_url配置加入指定代码。

session_start(); 

CI session.php文件:在会议库线#142添加@前session_start()

@session_start();