echo $begrüßung;
$binding = ldap_bind($connectid,$username,$password) or die("Fehler");
Wenn ldap_bind() nicht erfolgreich war, stirbt dein Script. So ein Gnadenschuss ist zwar einfach realisiert, jedoch recht benutzerunfreundlich.
if ($binding==1)
An diese Stelle gelangst du sowieso nur, wenn ldap_bind() erfolgreich war. Diese Abfrage ist also zusammen mit obigem Gnadenschuss reichlich sinnfrei. Außerdem liefert ldap_bind() einen booleschen Wert zurück. Boolsche Werte kann man in Bedingungen direkt einsetzen, ohne sie nochmals mit irgendwas zu vergleichen, um auch nur wieder einen boolschen Wert als Ergebnis zu bekommen.
{
echo "Verbindung erfolgreich hergestellt.<br>";
}
Diese Ausgabe ist zwar interessant für dich, aber für den Anwender reichlich uninteressant. Man erwartet einfach, das das Ding die Arbeit tut, für die es vorgesehen ist. Als Bestätigung gibt es ja dann auch ein Ergebnis, ansonsten sowieso eine Fehlermeldung.
Besser wäre:
if (ldap_bind(...)) {
alles, was nach einem erfolgreichen ldap_bind passieren soll
} else {
Fehlermeldung, mit Vorschlägen, was der Benutzer machen kann, um doch noch an ein Ergebnis zu kommen, oder wie er mitwirken kann, dass der Fehler beseitigt wird (z.B. Admin benachrichtigen).
}
$filter="uid=*";
Versuche mal, den Filterausdruck in runde Klammern zu setzen.
(Möglicherweise hilft auch noch das Setzen der Protokoll-Version, siehe ldap_set_option().)
echo "$verabschiedung $name";