ID:               44263
 Updated by:       [EMAIL PROTECTED]
 Reported By:      andrew at tvisted dot net
-Status:           Open
+Status:           Feedback
 Bug Type:         SOAP related
 Operating System: Linux/OSX/Windows
 PHP Version:      5.2.5
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/




Previous Comments:
------------------------------------------------------------------------

[2008-02-27 11:49:30] andrew at tvisted dot net

Description:
------------
Seems to be similar to Bug #30928 code can access and submit data via 
a WSDL without problem, but when trying to submit an array of object 
(eg NewCustomer) because certain fields are protected on the 
soapserver an error is returned, When a local version of the WSDL is 
created and the protected properties are removed from the class. The 
soapserver is working correctly as solutions using ASP and Javascript 
currently work.

A copy of the WSDL is available at 
http://tvisted.net:1024/wsdl/IIntact



---
'./configure' '--prefix=/Applications/xampp/xamppfiles' '--program-
suffix=-5.2.5' '--libdir=/Applications/xampp/xamppfiles/lib/php/php5' 
'--includedir=/Applications/xampp/xamppfiles/include/php/php5' '--
with-apxs2=/Applications/xampp/xamppfiles/bin/apxs' '--with-config-
file-path=/Applications/xampp/etc' '--with-
mysql=/Applications/xampp/xamppfiles' '--disable-debug' '--enable-
bcmath' '--enable-calendar' '--enable-ctype' '--enable-dbase' '--
enable-discard-path' '--enable-exif' '--enable-filepro' '--enable-
force-cgi-redirect' '--enable-ftp' '--enable-gd-imgstrttf' '--enable-
gd-native-ttf' '--with-ttf' '--enable-magic-quotes' '--enable-memory-
limit' '--enable-safe-mode' '--enable-shmop' '--enable-sigchild' '--
enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-
trans-sid' '--enable-wddx' '--enable-yp' '--with-ftp' '--with-
ncurses=/Applications/xampp/xamppfiles' '--with-
gdbm=/Applications/xampp/xamppfiles' '--with-jpeg-
dir=/Applications/xampp/xamppfiles' '--with-png-
dir=/Applications/xampp/xamppfiles' '--with-freetype-
dir=/Applications/xampp/xamppfiles' '--without-xpm' '--with-zlib=yes' 
'--with-zlib-dir=/Applications/xampp/xamppfiles' '--with-
openssl=/Applications/xampp/xamppfiles' '--with-expat-
dir=/Applications/xampp/xamppfiles' '--enable-
xslt=/Applications/xampp/xamppfiles' '--with-
xsl=/Applications/xampp/xamppfiles' '--with-
dom=/Applications/xampp/xamppfiles' '--with-
ldap=/Applications/xampp/xamppfiles' '--with-
gd=/Applications/xampp/xamppfiles' '--with-mysql-
sock=/Applications/xampp/xamppfiles/var/mysql/mysql.sock' '--with-
mcrypt=/Applications/xampp/xamppfiles' '--with-
mhash=/Applications/xampp/xamppfiles' '--enable-sockets' '--with-
curl=/Applications/xampp/xamppfiles' '--enable-mbregex' '--enable-
zend-multibyte' '--with-zip=/Applications/xampp/xamppfiles' '--enable-
exif' '--with-sqlite' '--with-libxml-
dir=/Applications/xampp/xamppfiles' '--enable-soap' '--enable-pcntl' 
'--enable-dbx' '--with-
mysqli=/Applications/xampp/xamppfiles/bin/mysql_config' '--with-
bz2=/Applications/xampp/xamppfiles' '--with-
ming=shared,/Applications/xampp/xamppfiles' '--with-
pear=/Applications/xampp/xamppfiles/lib/php/pear' '--with-
mssql=/Applications/xampp/xamppfiles' '--with-imap-
dir=/Applications/xampp/xamppfiles' '--with-
imap=/Applications/xampp/xamppfiles' '--enable-mbstring=all' '--with-
pgsql=shared,/usr' '--with-gettext=/Applications/xampp/xamppfiles' '--
with-pdo-mysql=/Applications/xampp/xamppfiles'

---
soap.wsdl_cache = 0;
soap.wsdl_cache_enabled = 0;





Reproduce code:
---------------
Part of the code used is:

class TIntactCustomer {
  public $Code; // string
  public $Name; // string
  public $Address1; // string
  public $Address2; // string
  public $Address3; // string
  public $Address4; // string
  public $Address5; // string
  public $PostCode; // string
  public $OnOrder; // double
  public $Unbilled; // double
  public $UnAllocated; // double
  public $CreditLimit; // double
  public $Phone1; // string
  public $Phone2; // string
  public $Fax; // string
  public $EMail; // string
  public $DeliveryAddress1; // string
  public $DeliveryAddress2; // string
  public $DeliveryAddress3; // string
  public $DeliveryAddress4; // string
  public $DeliveryAddress5; // string
  public $DefaultVATRate; // double
  public $HoCode; // string
  public $IsHo; // boolean
}
  public function IIntactservice($wsdl =
"http://localhost/intact/lib/IIntactWSDL.xml";, $options = array()) {
    foreach(self::$classmap as $key => $value) {
      if(!isset($options['classmap'][$key])) {
        $options['classmap'][$key] = $value;
      }
    }
    parent::__construct($wsdl, $options);
  }

  /**
   *  
   *
   * @param TIntactCustomer $ACustomer
   * @return int
   */
  public function AddNewCustomer(TIntactCustomer $ACustomer) {
    return $this->__soapCall('AddNewCustomer', array($ACustomer),      
array(
            'uri' => 'http://www.intact.ie/webservices',
            'soapaction' => ''
           )
      );
  }

$customer = new IIntactservice(); 
         
         
    $newcustomer = new TIntactCustomer(); 
     
    $newcustomer->Code = "ALED001"; 
    $newcustomer->Name = "Customer Name"; 
    $newcustomer->Address1 = "365 Old Road"; 
    $newcustomer->Address2 = "Lisburn"; 
    $newcustomer->Address3 = ""; 
    $newcustomer->Address4 = ""; 
    $newcustomer->Address5 = ""; 
    $newcustomer->PostCode = "BT26 6TH"; 
    $newcustomer->Balance = 0; 
    $newcustomer->OnOrder = 0; 
    $newcustomer->Unbilled = 0; 
    $newcustomer->UnAllocated = 0; 
    $newcustomer->CreditLimit = 0; 
    $newcustomer->Phone1 = "02854339047"; 
    $newcustomer->Phone2 = ""; 
    $newcustomer->Fax = ""; 
    $newcustomer->EMail = "[EMAIL PROTECTED]"; 
    $newcustomer->YTDNetTurnover = 0; 
    $newcustomer->DeliveryAddress1 = ""; 
    $newcustomer->DeliveryAddress2 = ""; 
    $newcustomer->DeliveryAddress3 = ""; 
    $newcustomer->DeliveryAddress4 = ""; 
    $newcustomer->DeliveryAddress5 = ""; 
    $newcustomer->DefaultVATRate = 2; 
    $newcustomer->HoCode = ""; 
    $newcustomer->IsHo = False; 

 $result = $customer->AddNewCustomer($newcustomer); 
        print_r($result); 




Expected result:
----------------
The server should return a positive integer if successful

Actual result:
--------------
A negative integer is returned


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=44263&edit=1

Reply via email to