会话数据在php中更改

时间:2015-08-26 06:27:13

标签: 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'];
    }
}

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中使用此类,我想保存使用会话的时间,因为身份验证需要很长时间。 请帮忙 提前谢谢

0 个答案:

没有答案