重定向与memcached一起使用后,不会显示SESSION变量

时间:2013-12-27 10:25:41

标签: session memcached php

我在该页面中有一个页面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;但没有任何效果。

1 个答案:

答案 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的第二个例子。