我越來越絕望,所有我想要的是簡單的錯誤處理,當PHP SOAP Web服務關閉以迴應錯誤消息登錄服務關閉。請幫幫我!PHP SOAP錯誤捕獲
在它仍然顯示錯誤的時刻(與警告一起...):
Fatal error: SOAP-ERROR: Parsing WSDL
下面是腳本:
<?php
session_start();
$login="0000000000000nhfidsj"; //It is like this for testing, It will be changed to a GET
$username = substr($login,0,13); //as password is always 13 char long
//(the validation is done int he javascript)
$password = substr($login,13);
try
{
ini_set('default_socket_timeout', 5); //So time out is 5 seconds
$client = new SoapClient("http://192.168.0.142:8080/services/Logon?wsdl"); //locally hosted
$array = $client->login(array('username'=>$username,
'password'=>$password));
$result = $array->return;
}catch(SoapFault $client){
$result = "0";
}
if($result == "true")//as this would be what the ws returns if login success
{
$_SESSION['user'] = $login;
echo "00";
}
else
{
echo "01 error: login failed";
}
?>
老實說,SOAP擴展中的任何致命錯誤都應該報告爲一個錯誤,因爲沒有任何情況會導致您的代碼導致致命錯誤。 404 WSDL應該像你期望的那樣是一個SoapFault。 – ColinM