{-p | --password} ", PHP_EOL, " [ -d | --domain ] [-c] [--check] [-g ] [--get ]", PHP_EOL, " u, username : όνομα χρήστη", PHP_EOL, " p, password : κωδικός πρόσβασης", PHP_EOL, " d, domain : domain για σύνδεση (AD domain εφόσον χρειάζεται)", PHP_EOL, " c, check : έλεγχος στοιχείων πρόσβασης (προεπιλογή)", PHP_EOL, " g, get : άντληση στοιχείων χρήστη, λίστα από attribute names χωρισμένη με κόμματα", PHP_EOL, " π.χ. --get sn,displayname,givenname,memberof", PHP_EOL; exit(0); } // $ldap = ldap_connect($settings['connectionString']); $ldaprdn = ($domain ? "{$domain}\\" : '') . $username; ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); // δοκιμή σύνδεσης... $bind = @ldap_bind($ldap, $ldaprdn, $password); // ενέργειες ανάλογα με το αίτημα του χρήστη if ($bind) { if ($check) { echo "true", PHP_EOL; } if ($get) { $filter = "(sAMAccountName=$username)"; $result = @ldap_search($ldap, $settings['baseSearchDN'], $filter, $get_attributes); if ($result === false) { echo "Σφάλμα ", ldap_error($ldap), PHP_EOL; } else { $data = ldap_get_entries($ldap, $result); // echo "COUNT: ", $data["count"], PHP_EOL; for ($i = 0; $i < $data['count']; $i++) { foreach ($get_attributes as $attribute_name) { $attribute = isset($data[$i][$attribute_name]) ? $data[$i][$attribute_name] : null; if ($attribute === null) continue; for ($c = 0; $c < $attribute['count']; $c++) { echo "{$attribute_name}:{$attribute[$c]}", PHP_EOL; } } } } } } else { if ($check) { echo "false", PHP_EOL; } else { echo "Λανθασμένα στοιχεία πρόσβασης ", ldap_error($ldap), PHP_EOL; } } exit(0);