在php中更改会话数据

在php中更改会话数据,php,session,drupal,Php,Session,Drupal,这是我的密码 class WcfClient { public $wcfClient = null; public $user = null; public function __construct(){ if(isset($_SESSION['APIClient']) && $_SESSION['APIClient'] != null){ $this->wcfClient = $_SESSION['APIClient']; } } pu

这是我的密码

class WcfClient {
public $wcfClient = null;
public $user = null;

public function __construct(){
    if(isset($_SESSION['APIClient']) && $_SESSION['APIClient'] != null){
        $this->wcfClient = $_SESSION['APIClient'];
    }
}

public function __destruct(){
}

// Authanticate
private function Authenticate(){
    global $_sogh_soapUrl, $_isDebug, $_sogh_header;
    $wcargs = array();
    $consumerAuthTicket = null;
    if($this->wcfClient == null){

        $args = array(
            'clubname'=>'Wellness Institute at Seven Oaks',
            'consumerName'=>'api',
            'consumerPassword'=>'api'
        );

        try{

            $wcargs = array(
                'soap_version'=>SOAP_1_2
            );

            if($_isDebug){
                $wcargs = array(
                    'soap_version'=>SOAP_1_2,
                    'proxy_host'=>"192.168.0.1",
                    'proxy_port'=>8080
                );
            }

            // Connect to the API with soapclient
            $soapAPIClient = new SoapClient($_sogh_soapUrl, $wcargs);

            $response = $soapAPIClient->AuthenticateClubConsumer($args);

            if(isset($response->AuthenticateClubConsumerResult)){

                if(isset($response->AuthenticateClubConsumerResult->IsException) && $response->AuthenticateClubConsumerResult->IsException == true){
                    // some error occur
                    $this->wcfClient = null;
                    $_SESSION['APIClient'] = $this->wcfClient;
                } else{
                    // set consumer ticket
                    $consumerAuthTicket = $response->AuthenticateClubConsumerResult->Value->AuthTicket;

                    // $loginData = $responseCode->ReturnValueOfConsumerLoginData;

                    $headers = array();
                    $headers[] = new SoapHeader($_sogh_header, "ConsumerAuthTicket", $consumerAuthTicket);
                    $soapAPIClient->__setSoapHeaders($headers);

                    // add to session
                    $this->wcfClient = $soapAPIClient;
                    $_SESSION['APIClient'] = $this->wcfClient;
                }
            }
        } catch(SoapFault $fault){
            $this->error('Fault: ' . $fault->faultcode . ' - ' . $fault->faultstring);
        } catch(Exception $e){
            $this->error('Error: ' . $e->getMessage());
        }
    }

    return $this->wcfClient;
}
我将soap客户机对象存储在$_SESSION['APIClient']中,但第二次在会话中运行某些数据时发生更改,我将在drupal 7中使用此类,我希望使用会话节省时间,因为身份验证需要很长时间。 请帮忙
提前感谢

不确定是否有帮助,但您可以尝试调用drupal_session_start();将值添加到会话之前。以下是可能帮助您调试的其他drupal核心会话函数的列表: