Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在codeigniter soap服务器代码中声明多个函数?_Php_Codeigniter_Soap - Fatal编程技术网

Php 如何在codeigniter soap服务器代码中声明多个函数?

Php 如何在codeigniter soap服务器代码中声明多个函数?,php,codeigniter,soap,Php,Codeigniter,Soap,我也试图将函数声明为普通函数,但并没有解决我的问题。我可以用很多教程中的单个函数运行服务器代码,但不能添加多个函数。请告诉我怎么做 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Support extends CI_Controller { public $ns=""; function __construct() { parent::__construct();

我也试图将函数声明为普通函数,但并没有解决我的问题。我可以用很多教程中的单个函数运行服务器代码,但不能添加多个函数。请告诉我怎么做

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Support extends CI_Controller {
public $ns="";

function __construct()
{

    parent::__construct();

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';

    $this->load->library("nusoap_library");
    $this->load->model('support_model');

    $this->nusoap_server = new soap_server();

    $this->ns = 'http://'.$_SERVER['HTTP_HOST'].'/index.php/soapserver/';
    //$ns ="urn:server";

    $this->nusoap_server->configureWSDL("SupportWsdl", $this->ns); // wsdl cinfiguration
    $this->nusoap_server->wsdl->schemaTargetNamespace = $this->ns; // server namespace


    //first simple function
    $this->nusoap_server->register('hello',
        array('username' => 'xsd:string'),  //parameter
        array('return' => 'xsd:string'),  //output
        'urn:server',   //namespace
        'urn:'.$this->ns.'helloServer',  //soapaction
        'rpc', // style
        'encoded', // use
        'Just say hello');  //description

    //this is the second webservice entry point/function 
    $this->nusoap_server->register('login',
        array('username' => 'xsd:string', 'password'=>'xsd:string'),  //parameters
        array('return' => 'tns:Person'),  //output
        'urn:server',   //namespace
        'urn:'.$this->ns.'loginServer',  //soapaction
        'rpc', // style
        'encoded', // use
        'Check user login');  //description

       //first function implementation
    function hello() {
        function hello($username){
            $this->nusoap_server->service($HTTP_RAW_POST_DATA);
            return 'Howdy, '.$username.'!';  
        }    
    }

    //second function implementation 
    function login($username, $password) {
            //should do some database query here
            //just some dummy result
            return array(
            'id_user'=>1,
            'fullname'=>'John Reese',
            'email'=>'john@reese.com',
            'level'=>99
        );
        // $this->nusoap_server->service($HTTP_RAW_POST_DATA);
    }     
}



function index()
{
    $this->nusoap_server->service(file_get_contents("php://input"));// read raw data from request body
}

}

我发现我们应该在索引函数中声明所有soap函数。而不是声明类函数。如果有人知道如何定义寄存器类函数,请演示如何使用plz。 我的soap服务器端代码

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Support extends CI_Controller {
public $ns="";

function __construct()
{

    parent::__construct();

    $this->load->library("nusoap_library");
    $this->nusoap_server = new soap_server();

    $this->ns = 'http://'.$_SERVER['HTTP_HOST'].'/index.php/soapserver/';

    $this->nusoap_server->configureWSDL("SupportWsdl", $this->ns); // wsdl cinfiguration
    $this->nusoap_server->wsdl->schemaTargetNamespace = $this->ns; // server namespace

     //first simple function
    $this->nusoap_server->register('hello',
        array('username' => 'xsd:string'),  //parameter
        array('return' => 'xsd:string'),  //output
        'urn:server',   //namespace
        'urn:'.$this->ns.'hello',  //soapaction
        'rpc', // style
        'encoded', // use
        'Just say hello');  //description

    $this->nusoap_server->register('bye',
        array('username' => 'xsd:string'),  //parameter
        array('return' => 'xsd:string'),  //output
        'urn:server',   //namespace
        'urn:'.$this->ns.'bye',  //soapaction
        'rpc', // style
        'encoded', // use
        'Just say bye');  //    

}

function index()
{
       function hello($username){
        //$this->nusoap_server->service($HTTP_RAW_POST_DATA);
        return 'Howdy, '.$username.'!';  
    } 


 function bye($username){
        //$this->nusoap_server->service($HTTP_RAW_POST_DATA);
        return 'bye, '.$username.'!';  
    } 
    $this->nusoap_server->service(file_get_contents("php://input"));// read raw data from request body
}    
}
class Attendance extends MX_Controller {
public $data = array();
private $permission = array();
private $branch = array();

function __construct(){
    parent::__construct();

    //This is your webservice server WSDL URL address
    $wsdl = "http://localhost/SOAP_Final/index.php/support?wsdl";

    $this->load->library("nusoap_library");
    $this->nusoap_server = new soap_server(); 

}


public function index()
{  

}



function call_hello()
{
    $this->nusoap_client = new nusoap_client("http://localhost/SoapFinalVersion/index.php/support?wsdl");

    if($this->nusoap_client->fault)
    {
         $text = 'Error: '.$this->nusoap_client->fault;
         echo "Hello ";
    }
    else
    {
        if ($this->nusoap_client->getError())
        {
             $text = 'Error: '.$this->nusoap_client->getError();
             echo "Hello ";
        }
        else
        {   
             $row = $this->nusoap_client->call(
                      'hello',
                      array('username'=>'john')
                    );       
              var_dump($row);      
        }
    }
}
}