Signatur
Beschreibung
ldap_err2str() nimmt einen ganzzahligen LDAP-Fehlercode entgegen und gibt die zugehörige, menschenlesbare Fehlermeldung als Zeichenkette zurück. Die Fehlercodes folgen dem LDAP-Standard (RFC 4511), sodass z. B. 0 für Success und 49 für Invalid credentials steht.
Die Funktion ist besonders nützlich in Verbindung mit ldap_errno(), das den letzten Fehlercode einer LDAP-Verbindung liefert. Durch die Kombination beider Funktionen lässt sich eine aussagekräftige Fehlerausgabe oder -protokollierung realisieren, ohne die numerischen Codes selbst kennen zu müssen.
Im Gegensatz zu ldap_error(), das direkt eine Verbindungsressource erwartet und daraus den Fehlertext extrahiert, arbeitet ldap_err2str() unabhängig von einer aktiven Verbindung und eignet sich daher auch für die nachträgliche Auswertung gespeicherter Fehlercodes.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $errno Pflicht | int | Der numerische LDAP-Fehlercode, z. B. aus ldap_errno(). Gültige Werte sind standardisierte LDAP-Fehlercodes gemäß RFC 4511 (0–127 und einige herstellerspezifische Erweiterungen). |
Rückgabewert
"Success" für Code 0 oder "Invalid credentials" für Code 49. Bei unbekannten Codes wird ein generischer Text wie "Unknown error" zurückgegeben.Beispiele
Fehlercode nach fehlgeschlagenem LDAP-Bind ausgeben
<?php
$ldap = ldap_connect('ldap://localhost');
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
$bound = @ldap_bind($ldap, 'cn=admin,dc=example,dc=com', 'falsches_passwort');
if (!$bound) {
$errno = ldap_errno($ldap);
$errstr = ldap_err2str($errno);
echo "LDAP-Fehler ($errno): $errstr" . PHP_EOL;
}
ldap_unbind($ldap);
Bekannte LDAP-Fehlercodes in lesbaren Text umwandeln
<?php
$fehlercodes = [0, 4, 32, 49, 53, 65, 80];
foreach ($fehlercodes as $code) {
printf("Code %3d => %s\n", $code, ldap_err2str($code));
}
// Wichtig · Fallstricke
Hinweis zur Fehlerbehandlung: Bei kritischen LDAP-Operationen (z. B. Authentifizierung) sollte der Fehlertext niemals unbereinigt an Endnutzer ausgegeben werden, da er interne Informationen über die Verzeichnisstruktur preisgeben könnte. Nutze die Meldung für das serverseitige Logging, und zeige dem Benutzer nur eine generische Fehlermeldung.
Die Funktion erfordert, dass die LDAP-Erweiterung (ext/ldap) in PHP aktiviert ist. Ohne diese Extension steht ldap_err2str() nicht zur Verfügung.