Php 分析第2行的SOAP负载时发生XML错误:文档结束无效
我是web服务新手。为了了解web服务,我正在尝试创建一个web服务,该服务首先具有设置会话的登录功能。但当我想使用会话中保存的信息时,我看到以下错误: “分析第2行的SOAP负载时发生XML错误:文档结束无效” 我必须提到,如果我手动设置用户id并且不使用会话,就不会有任何错误! 谁能帮我找出我的密码有什么问题吗? 以下是客户端和服务器代码:(不关心show_log函数中的一些参数,如$param)Php 分析第2行的SOAP负载时发生XML错误:文档结束无效,php,web-services,session,nusoap,Php,Web Services,Session,Nusoap,我是web服务新手。为了了解web服务,我正在尝试创建一个web服务,该服务首先具有设置会话的登录功能。但当我想使用会话中保存的信息时,我看到以下错误: “分析第2行的SOAP负载时发生XML错误:文档结束无效” 我必须提到,如果我手动设置用户id并且不使用会话,就不会有任何错误! 谁能帮我找出我的密码有什么问题吗? 以下是客户端和服务器代码:(不关心show_log函数中的一些参数,如$param) ***服务器页面: $server=新的soap_服务器(); $server->regist
***服务器页面:
$server=新的soap_服务器();
$server->register('login');
$server->register('show_log');
函数登录($username,$password){
全球$db;
$result=false;
$login_stmt=“从用户名为“$username”和密码为“$password”的用户中选择*;
$login\u query=$db->query($login\u stmt);
checkDbError($login\u query,\u文件,\u行);
If(mysqli\u num\u行($login\u query)==0){
$result=FALSE;
}否则{
$user=$login\u query->fetch\u assoc();
$result=true;
$\会话['id']=$user['id'];
}
返回$result;
}
函数show_log($param){
$id=$\会话['id'];
全球$db;
$log_stmt=“从日志中选择*,其中`user id`=`id`按`date`desc'排序”;
$log\u query=$db->query($log\u stmt);
checkDbError($log\u query、\u FILE\u、\u LINE\u);
If(mysqli_num_rows($log_query)==0){
$result=“未找到任何日志”;
}否则{
而($log\u list=$log\u query->fetch\u assoc()){
$result[]=数组(“用户id”=>$log\u列表['user-id'],
“firstname”=>$log\u list['first-name'],“lastname”=>$log\u list['last-name'],
“日期”=>$log_列表['date'],“ip”=>$log_列表['ip']);
}
}
返回$result;
}
如果(!isset($HTTP_原始_POST_数据))
$HTTP\u RAW\u POST\u DATA=file\u get\u contents('php://input');
$server->service($HTTP\u RAW\u POST\u数据);
退出();
**登录页面:
无效的用户名和密码
**个人资料页:
$param=array('word'=>“aaa”);
$response1=$client->call('show_log',$param);
$error=$client->getError();
echo$错误;
***server page:
$server = new soap_server();
$server->register('login');
$server->register('show_log');
function login($username, $password) {
global $db;
$result = false;
$login_stmt = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$login_query = $db->query($login_stmt);
checkDbError($login_query, __FILE__, __LINE__);
If (mysqli_num_rows($login_query) == 0) {
$result = FALSE;
} else {
$user = $login_query->fetch_assoc();
$result = true;
$_SESSION['id'] = $user['id'];
}
return $result;
}
function show_log($param) {
$id = $_SESSION['id'];
global $db;
$log_stmt = "SELECT * FROM log WHERE `user-id`='$id' order by `date` desc";
$log_query = $db->query($log_stmt);
checkDbError($log_query, __FILE__, __LINE__);
If (mysqli_num_rows($log_query) == 0) {
$result = " No log was found";
} else {
while ($log_list = $log_query->fetch_assoc()) {
$result[] = array("user_id" => $log_list['user-id'],
"firstname" => $log_list['first-name'], "lastname" => $log_list['last-name'],
"date" => $log_list['date'], "ip" => $log_list['ip']);
}
}
return $result;
}
if (!isset($HTTP_RAW_POST_DATA))
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
$server->service($HTTP_RAW_POST_DATA);
exit();
**login page:
<?php
if (isset($_POST['login'])) {
$client = new nusoap_client('http://localhost/webService2/server.php');
$user = check_data($_POST['username']);
$password = check_data($_POST['password']);
$param1=array("username"=>$user,"password"=>$password);
$response = $client->call('login', $param1);
if ($response == FALSE) {
?>
<div class="col-lg-12 ">
<br><br><br>
<div class="col-lg-4"></div>
<div class="col-lg-3 message">
<p>Invalid username and password</p>
</div>
</div>
<?php
} else {
header("Location:profile.php");
// echo $response;
}
}
?>
**profile page:
$param = array('word' => "aaa");
$response1 = $client->call('show_log', $param);
$error = $client->getError();
echo $error;