2013-10-10 5 views
-2

Я пытаюсь получить этот код вместе, но не повезло. Не могу понять, что происходит, поскольку я новичок.Почему этот класс php не работает?

Попытка:

Отправить запрос на сервер по протоколу SOAP. Предыдущий рабочий код упоминается вначале.

Что не получается?

Я стараюсь сделать запрос и ничего не выскочит. Ничего хорошего не происходит. Запустите код в отладчике, который не нашел ничего плохого.

Предыдущий рабочий код:

<?php 
$client = new SoapClient('http://xxxxxxx.xxxxxxx.pt/xxxxxxx.asmx?WSDL'); 

$function = 'EditClient'; 

$arguments= array('EditClient' => array(
         'empresa' => 'xxxxx', 
         'password'  => '********', 
         'cliente'  => '19781978', 
         'nome'  => 'Justiceiro', 
         'morada'  => 'Avenida akolá', 
         'localidade'  => 'Integral', 
         'codPostal'  => '4000-100', 
         'pais'  => 'portugal', 
         'telefone'  => '253994257', 
         'fax'  => '000000000', 
         'telemóvel'  => '000000000', 
         'email'  => '[email protected]', 
         'nif'  => '000000000', 
         'contacto'  => 'none', 
       )); 
$options = array('location' => 'http://xxxxxx.xxxxxxx.pt/xxxxxx.asmx?WSDL'); 

$result = $client->__soapCall($function, $arguments, $options); 

echo 'Response: '; 
print_r($result); 
?> 

Что я до

Это то, что я получил до сих пор, ничего не кажется неуместным, но еще раз, я очень новый в этом.

<?php 

class cliente{ 

    private $data; 
    private $arguments; 
    private $function; 
    private $client; 
    private $result; 

    function editcliente(){ 
     $this->data=array(); 
     $this->arguments=array(); 
    } 

    public function setData($d){ 
     $this->data = $d; 
    } 

    public function validate(){ 
      $options = array('location' => 'http://xxxxxx.xxxxxxx.pt/xxxxxx.asmx?WSDL'); 
      $verifica = true; 
      foreach ($this->data as $campo) { 
       $this->data[$campo] = $_GET[$campo]; 
        $arguments = array('EditCliente' => array(
         'empresa' => 'xxxxxx', 
         'password'  => '********', 
         'cliente'  => ' ', 
         'nome'  => ''.$this->data["fnome"].'', 
         'morada'  => ''.$this->data["fmorada"].'', 
         'localidade'  => ''.$this->data["flocalidade"].'', 
         'codPostal'  => '4000-100', 
         'pais'  => ''.$this->data["Portugal"].'', 
         'telefone'  => 'vazio', 
         'fax'  => 'vazio', 
         'telemóvel'  => ''.$this->data["ftelemovel"].'', 
         'email'  => ''.$this->data["femail"].'', 
         'nif'  => ''.$this->data["fnif"].'', 
         'contacto'  => ''.$this->data["empresa"].'', 
        )); 
       } 
      } 
    } 

    public function getData(){ 
     print_r($this->data); 
     print_r($this->arguments); 
    } 

    public function sendrequest(){ 
     $client = new SoapClient('http://apimarvin.ponto25.pt/apimarvin.asmx?WSDL'); 
     $function = 'EditCliente'; 
     $result = $client->__soapCall($function, $arguments, $options); 
    } 
} 

$cliente = new cliente(); 
$campos = array('fnome','fmorada','flodalidade','fcodigopostal','ftelemovel','femail','fnif','fempresa'); 

$cliente->setData($campos); 
echo ($cliente->validate($data)); 
echo ($cliente->getData($data)); 
$cliente->sendrequest($data); 

?> 
+0

Не могли бы вы перефразировать свой вопрос с 'borken. code no work' to ', когда я это делаю, я ожидал этого, вместо этого это происходит? или что-то еще одинаково конструктивное? – AD7six

+0

Спасибо, попытался объяснить, что происходит с кодом. Возможно, теперь вы можете читать, чтобы понять. Еще раз спасибо. Всегда учиться. –

+1

Похоже, вы еще не проинформированы. Время, чтобы изменить это: http://stackoverflow.com/about –

ответ

0

Это, как я вызвать функцию SOAP в PHP

В моем индексе:

$client = new SoapClient('http://localhost:8100/PortalService.svc?wsdl'); 

И потом:

$arguments = array('argument' => $arg); 
$response = $wcfclient->NameOfFunction($arguments); 

Простой и понятный. Надеюсь, это вам поможет.

+0

Я предполагаю, что это процедура, но что-то не в самом классе. Я не могу понять, что не соответствует правилам. Благодарим вас за сотрудничество Marijke. Был бы продвинут, но пока не может. –

Смежные вопросы