Hallo!
Ich möchte mehrere Funktionen über einen WebService anbieten.
Um die Services zu nutzen muss man angemeldet sein. D.h. Ich habe eine Funktion chkAuth der man User und Password mitgeben muss und damit für eine bestimmte Zeit angemeldet ist. (Am besten über eine PHP-Session oder ähnliches).
Ich habe zum Testen mal 2 Funktionen in eine Klasse geschrieben:
PHP-Code:
class SoapTest {
function Soap_chkAuth($User, $Password) {
$state = anmeldungpruefen("'".$User."'","'".$Password."'");
if ($state == 'OK') {
$_SESSION['CurrentUser'] = $User;
}
return $state;
}
function Soap_test() {
$result = 'Nope!';
if (isset($_SESSION['CurrentUser'])) {
$result = 'Angemeldet: '.$_SESSION['CurrentUser'];
}
return $result;
}
}
Im gleichen PHP-File liegt der Teil für den Server:
PHP-Code:
session_start();
$server = new SoapServer(Null,
array('uri'=> $_SERVER['REQUEST_URI']));
// $server->addFunction(array('Soap_chkAuth'));
$server->setClass("SoapTest"); //Egal wie ich die Klasse hinzufüge, der Service läuft!
//$server->setObject(new SoapTest());
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->setPersistence(SOAP_PERSISTENCE_REQUEST);
$server->handle();
Wenn ich die chkAuth-Funktion mit einem SOAP-Client Aufrufe funktioniert dieser und gibt 'OK' oder 'False' zurück.
Nur die test-Funktion gibt immer ein 'Nope!' zurück.
Was mache ich falsch? Danke!