PHP 8.5.0 RC 2 available for testing

SoapServer::fault

(PHP 5, PHP 7, PHP 8)

SoapServer::fault โ€” Erzeugt einen SoapServer-Fehler, der einen Fehlerzustand anzeigt

Beschreibung

public SoapServer::fault(
    string $code,
    string $string,
    string $actor = "",
    mixed $details = null,
    string $name = ""
): void

Sendet dem Client der aktuellen Anfrage eine Antwort, die einen Fehler anzeigt.

Hinweis:

Diese Methode kann nur aufgerufen werden, wenn eine Anfrage verarbeitet wird.

Parameter-Liste

code

Der Fehlercode, der zurรผckgegeben werden soll.

string

Eine kurze Beschreibung des Fehlers.

actor

Eine Zeichenkette, die den Akteur identifiziert, der den Fehler verursacht hat.

details

Weitere Details zum Fehler.

name

Der Name des Fehlers. Dies kann verwendet werden, um den Namen aus einer WSDL-Datei auszuwรคhlen.

Rรผckgabewerte

Es wird kein Wert zurรผckgegeben.

Siehe auch

๏ผ‹add a note

User Contributed Notes 4 notes

up
3
Amr Mostafa ยถ
16 years ago
This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513
up
0
Anonymous ยถ
17 years ago
If you use Adobe Flex, Flash or AIR as SOAP client and are unable to get the error message in case of a soap fault, upgrade to PHP 5.2.6.

Details in:
http://bugs.php.net/bug.php?id=43507
up
-3
christian at cmjdesign dot dk ยถ
12 years ago
hi,
to control the fault output one may do the following

/**
* mySoapServer class
*/
class mySoapServer extends SoapServer {
public function __construct($wsdl, array $options = null) {
parent::SoapServer($wsdl, $options);
}
public function fault ($code, $string, $actor = null, $details = null, $name = null) {
throw new SoapFault($code, $string, $actor, $details, $name);
}
}

Use:
try {
$server = new mySoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
$server->setClass('mySoapAPI');
$server->handle();
} catch (SoapFault $exc) {
echo $exc->getTraceAsString();
}

that how i did this,
hope iot can help some one.
up
-5
dub357 at gmail dot com ยถ
13 years ago
This function also sends a 500 response code back to the client with the request.
This was causing issues with an Apache Axis 1.2 client I had so I instead implemented by own fault handling:

<?php
header
("Content-Type: text/xml");
header("Status: 200");
die(
"<SOAP-ENV:Envelope xmlns:SOAP-ENV=\\"http://schemas.xmlsoap.org/soap/envelope/\\">
<SOAP-ENV:Body>
<
SOAP-ENV:Fault>
<
faultcode>500</faultcode>
<
faultstring>".$ex->getMessage())."</faultstring>
</
SOAP-ENV:Fault>
</
SOAP-ENV:Body>
</
SOAP-ENV:Envelope>");
?>
To Top