При попытке создать экземпляр моего nuSoap
метода authenticateUser
он говорит:
Неустранимая ошибка: исключение Uncaught SoapFault: функция [Client] ("authenticateUser") не является допустимым методом для этой службы в /Applications/MAMP/htdocs/projo/dev/home.php:14
.
Но когда я заменяю это имя метода на то, которое уже работает, все работает просто отлично. Так что я думаю, что синтаксис инстанцирования не неправильный.
<code>/*-----------
Authenticate User
------------*/
$server->register(
// method name
'authenticateUser',
// input parameters
array('sessionUserName' => 'xsd:string', 'sessionHash' => 'xsd:string', 'user' => 'xsd:string', 'pass' => 'xsd:string'),
// output parameters
array('return' => 'xsd:string'),
// namespace
$namespace,
// soapaction
$namespace . '#authenticateUser',
// style
'rpc',
// use
'encoded',
// documentation
'authenticates a user and returns a json array of the user info'
);
function authenticateUser($sessionUserName, $sessionHash, $user, $pass)
{
//Check to see if a countryCode was provided
if ($sessionUserName != '' && $sessionHash != '' && $user == $GLOBALS['wsUser'] && $pass == $GLOBALS['wsPass'])
{
$suid = 'AUTH'.$GLOBALS['guid'].'SESSION';
$database = new SQLDatabase();
$database->openConnection();
$database->selectDb();
//Query
$sql = "SELECT * FROM members WHERE member_email='" . $sessionUserName . "' LIMIT 1";
//Query MySQL
$return = $database->query($sql);
$userDetails = $database->fetch_array( $return );
if(!empty($userDetails)) {
$userDetails[0]['authSession'] = $suid;
$newArr = $userDetails[0];
$response = json_encode($newArr);
}
/*print $sql.'<br /><pre>';
print_r($response);
echo '
'; * /
// выбрасываем ошибки SQL
if (! mysql_query ($ sql))
{
die ('Ошибка:'. mysql_error ());
}
// Вернемся к успеху
вернуть $ response;
// Закрыть соединение
mysql_close ($ CON);
}
еще
{
return 'Error: Вы должны указать все входы! x';
}
}
Я могу подумать о двух вещах, которые могут вызвать эту ошибку:
Скорее всего, моя регистрация функции как-то неверна, хотя wsdl gui показывает, что функция зарегистрирована правильно, и я смог успешно использовать метод через SoapUI
программа.
Менее вероятно: каким-то образом функция больше не нарушается, но она кэшируется, и поэтому я вижу старую ошибку.
Вопрос : При попытке использовать этот сервисный метод soap
через PHP
, почему я получаю ошибку вывода о том, что эта функция не существует в сервисе, когда она явно