php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #51561 SoapServer with a extented class and using sessions, lost the setPersistence()
Submitted: 2010-04-15 12:50 UTC Modified: 2010-04-15 12:55 UTC
Votes:48
Avg. Score:4.0 ± 0.9
Reproduced:43 of 43 (100.0%)
Same Version:7 (16.3%)
Same OS:14 (32.6%)
From: marciomaianunes at hotmail dot com Assigned:
Status: Open Package: SOAP related
PHP Version: 5.2.11 OS: Linux 2.6.26
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2010-04-15 12:50 UTC] marciomaianunes at hotmail dot com
Description:
------------
A SoapServer using sessions and extending some class included by require or 
include functions, lose the persistence seted by setPersistence 
(SOAP_PERSISTENCE_SESSION)

The script below will work fine with one of 3 changes (no idea why):

- Declaring the class "Server2" in the same file as class "Server" (Server1.php) 
and removing the require_once(Server2.php);

- Removing the "session_start();" from server.php

- If class "Server" do no extend any class, it also works.

Thanks a lot!


Test script:
---------------
## Client.php ##
<?php 
$cli = new SoapClient(null, array('location' => "http://localhost:81/bugTest/Server.php", 'uri' => "blablabla.com",'encoding' => "ISO-8859-1",'soap_version' => SOAP_1_2));
$cli->setValue(100);
$response = $cli->getValue();
echo "Get = ".$response;	
?>

## Server.php ##
<?php 
session_start();
require_once("Server2.php");
class Server extends Server2 {
	private $value;
	public function setValue($param) { $this->value = $param; }
	public function getValue() { return $this->value; }
}
$server = new SoapServer(null, array('uri' => "blablabla.com",'encoding' => "ISO-8859-1",'soap_version' => SOAP_1_2));
$server->setClass("Server");
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();
?>

## Server2.php ##
<?php class Server2{ private $nothing; } ?>

Expected result:
----------------
Get = 100

Actual result:
--------------
Get = 

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-04-15 12:55 UTC] marciomaianunes at hotmail dot com
-PHP Version: 5.2.13 +PHP Version: 5.2.11
 [2010-04-15 12:55 UTC] marciomaianunes at hotmail dot com
Same error in PHP 5.2.6-1+lenny3
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Wed Apr 01 03:01:22 2020 UTC