登录响应解析并存储在php,soapclient中的会话中

时间:2014-07-17 07:13:06

标签: php session login soap-client

您好我有项目,其中我使用webservices连接到客户端系统。我已经成功完成了连接部分。我必须通过默认用户名,密码,dms-id来验证连接。那部分我也成功了。现在我想将我的登录响应详细信息放在会话中,以便我可以根据登录成功的时间进一步编码。登录成功后我收到login_id和令牌。我想知道我怎么能把这个login_id和令牌放进会话。我对会话很新。我只是想知道如果authenticaton成功,我如何将我的登录详细信息(login_id,token)放入会话中,以便我可以进一步编码。任何想法都将不胜感激。

登录请求     

$wsdl = 'http://www.schwackenet.de/awonline/de/service2/SNWebService.php?wsdl';

$options = array('trace' => true);
$params = array(
  'user' =>               utf8_encode('dessenbeck'),
  'password' =>           utf8_encode('dessenbeck'),
  'corporate_group_id' => '101',
  'dealer_number' =>      'INT31303',
  'dms_id' =>             'A13T2D19',
  'dms_image_url' =>      '', 
  'dms_keepalive_url' =>  '', 
  'dms_followup_url' =>   ''  
);

    $client = new SoapClient($wsdl, $options);  
    $result = $client->Login($params);
    var_dump($result);

&GT?;

登录回复

 object(stdClass)[2]
      public 'token' => string '974jkp024icpl6q3q9nccrgonq9dv0d1' (length=32)
      public 'login_id' => int 6102355
      public 'status' => 
      object(stdClass)[3]
      public 'success' => boolean true
      public 'code' => int 0
      public 'message' => string '' (length=0)
      public 'browserURL' => string '' (length=0)

1 个答案:

答案 0 :(得分:0)

您需要在文件开头简单添加:

session_start();

然后

$client = new SoapClient($wsdl, $options);  
$result = $client->Login($params);

if ($result) { // or if ($result->status->success) {  
    $_SESSION['login_id'] = $result->login_id;
    $_SESSION['token'] = $result->token;
}

在会话中保存数据和

echo $_SESSION['login_id'];

显示会话数据

修改

我不是Soap专家,但您可能每次都需要运行$client = new SoapClient($wsdl, $options);,那么在这种情况下使用会话有什么意义呢?我认为$_SESSION在这种情况下可以简单地作为变量,但我可能是错的