首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:未捕获SoapFault异常

PHP:未捕获SoapFault异常
EN

Stack Overflow用户
提问于 2018-03-29 19:38:31
回答 1查看 334关注 0票数 0

所以我试图用PHP创建一个SOAP客户端/服务器,但是我得到了下面的错误。另外,我知道其他人也问了这个问题,并得到了一些回应,但我调查了他们,给出的答案并没有纠正我的错误,这就是为什么我要张贴这个问题。

代码语言:javascript
复制
Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in C:\xamppp\htdocs\C\project\client.php:11 Stack trace: #0 C:\xamppp\htdocs\C\project\client.php(11): SoapClient->__soapCall('getUsersName', Array) #1 C:\xamppp\htdocs\C\project\service.php(5): client->getName(Array) #2 {main} thrown in C:\xamppp\htdocs\C\project\client.php on line 11

下面是我的server.php代码:

代码语言:javascript
复制
<?php

class server
{
    private $con;
    public function __construct()
    {
        $this->con=(is_null($this->con)) ? self::connect() : $this->con;
    }
    static function connect()
    {
        $con=mysql_connect('localhost','root','root');
        $db=mysql_select_db('soap',$con);
        return $con;
    }

    public function getUsersName($id)
    {
        $id=trim($id['id']);
        $sql = "SELECT NAME FROM USERS WHERE ID = '$id'";
        $qry = mysql_query($sql, $this->con);
        $res = mysql_fetch_array($qry)
        return $res['name'];
    }
}
$params=array('uri'=>'http://localhost:40/C/project/server.php');
$server= new SoapServer(NULL, $params);
$server->setClass('server');
$server->handle();

?>

这是给client.php的:

代码语言:javascript
复制
<?php
class client
{
    public function __construct()
    {
        $params=array('location'=>'http://localhost:40/C/project/server.php','uri'=>'urn//localhost:40/cpu6003/project/server.php','trace'=>1);
        $this->instance= new SoapClient(NULL,$params);
    }
    public function getName($id)
    {
        return $this->instance->__soapCall('getUsersName',$id);
    }
}
$client= new client;
?>

最后是服务:

代码语言:javascript
复制
<?php
include './client.php';
$id=array('id' => '1');

echo $client->getName($id);

?>
EN

回答 1

Stack Overflow用户

发布于 2018-03-29 22:10:14

检查你的服务器日志,server.php可能抛出了一些错误,它会告诉你哪里出了问题。

我怀疑可能是这句话:

代码语言:javascript
复制
$sql = "SELECT NAME FROM USERS WHERE ID = '$id'";

尝试将其更改为如下所示:

代码语言:javascript
复制
$sql = "SELECT NAME FROM USERS WHERE ID = " . (int)$id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49555083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档