我在该页面中有一个页面session_config.php我有以下代码
session_name('session_sw');
session_start();
$session_ID = session_id();
我有另一个页面index.php,其中包含session_config.php,代码如下。
$email = $_REQUEST['email'];
$pass = $_REQUEST['pass'];
$error = 0;
if(!empty($email) && !empty($pass)) {
$url = "$SERVER/sw/apis/3rdpartylogin.php?advertiser_login=1&pass=$pass&email=$email";
$resp = file_get_contents($url);// it sends json encoded string.
$resp = json_decode($resp);
if ( $resp->status == 'success' ) {
if ( !isset($resp->mesg->profile) || $resp->mesg->profile == 0 ){
$error = '1';
} else {
include "session_config.php";
$_SESSION['user_id'] = $resp->mesg->user_id;
$_SESSION['customer_id'] = $resp->mesg->customer_id;
$_SESSION['customer_name'] = $resp->mesg->customer_name;
$_SESSION['logged_in_user_email'] = $_REQUEST['email'];
$_SESSION['agency_name'] = $resp->mesg->agency_name;
$_SESSION['profile'] = $resp->mesg->profile;
$_SESSION['metadata'] = $resp->mesg->metadata;
$_SESSION['show_archival'] = $resp->mesg->show_archival;
$_SESSION['show_live'] = $resp->mesg->show_live;
$_SESSION['show_sov'] = $resp->mesg->show_sov;
$_SESSION[$session_ID]['session_name'] = 'surewaves_agency_view';
header("Location: reach.php");exit;
}
} else {
$error = '1';
}
}
?>
//在这里,我可以在' $ resp'中获取正确的数据变量,它也重定向到reach.php 在reach.php中,我有以下代码
<?php
include "session_config.php";
echo "<pre>";
print_r($_SESSION);exit;
?>
但是在我获取会话变量时,在reach.php中,会话数组显示为完全空,就像这个Array()一样。为什么? 我正在使用memcache,我们正在使用ubuntu。 在我的php.ini中,我已经包含以下代码..
extension = memcache.so;
session.save_handler = memcache
session.save_path = "http://localhost:11211"
我也试过&#34; tcp:// localhost:11211&#34;但没有任何效果。
答案 0 :(得分:1)
尝试从session.save_path中删除http://
部分,并将localhost
替换为127.0.0.1
:
session.save_path = "127.0.0.1:11211"
看一下http://br1.php.net/manual/en/memcache.examples-overview.php的第二个例子。