Start · Sprachen · PHP · Referenz · ldap_err2str

ldap_err2str

Funktion

Wandelt einen numerischen LDAP-Fehlercode in eine lesbare Fehlerbeschreibung um.

seit PHP 4.0.0 Kategorie: misc

Signatur

ldap_err2str(int $errno): string

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

Typ
string
Beschreibung
Die textuelle Beschreibung des übergebenen Fehlercodes, z. B. "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);
LDAP-Fehler (49): Invalid credentials

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));
}
Code 0 => Success Code 4 => Size limit exceeded Code 32 => No such object Code 49 => Invalid credentials Code 53 => DSA is unwilling to perform Code 65 => Object class violation Code 80 => Internal (implementation specific) error

// 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.