Ano*_*n30 5 php session codeigniter
我有一个位于Core PhP 中的网络应用程序。我们正在逐步将其移至CI 框架。
问题:需要在它们之间共享会话值。
核心 PHP 应用程序目录结构:|-- /xampp/lms/
核心 PHP 应用程序 URL: http://localhost/lms/index.php
CI 应用程序目录结构: |-- /xampp/lms/newlms/
CI 应用程序 URL: http://localhost/lms/newlms/index.php/login
配置项:
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;
Run Code Online (Sandbox Code Playgroud)
到目前为止我所做的。
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;
Run Code Online (Sandbox Code Playgroud)
输出:
------------- 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
)
Run Code Online (Sandbox Code Playgroud)
会话路径 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;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
------------- 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.
)
Run Code Online (Sandbox Code Playgroud)
PS:我试图以最好的方式解释,但在投票之前请分享原因。
正如 bertmaclin 所建议的,
CI 的会话处理程序只是 php 会话处理程序的包装
有 tweek CI 的 config.php 和 session 库。
CI config.php:在配置 之前添加给定的代码base_url。
session_start();
Run Code Online (Sandbox Code Playgroud)
CI Session.php:session_start()在会话库第 #142 行 之前添加了 @ 。
@session_start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |