Gibou Posté 16 Avril 2008 Posté 16 Avril 2008 Bonjour, J'ia une question concernant l'intéraction entre php et un serveur ldap. Supposons que mon serveur a la config suivante: login: admin pwd: adminpwd Le serveur est sur ma machine dont l'hôte est localhost. Voici mon code php actuellement: CODE // config $server = "localhost"; $port = 389; $racine = "dc=elodig,dc=fr"; $rootdn = "cn=admin,dc=elodig,dc=fr"; $rootpw = "adminpwd"; $version = 3; // connection $ds=ldap_connect($server); if ($ds) { if(!ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); $r=ldap_bind($ds,$rootdn,$rootpw); $entry["cn"]="Robert Toto"; $entry["sn"]="Toto"; $entry["mail"][0]="robert.toto_AT_elolo.fr"; $entry["mail"][1]="robert.toto_AT_gmail.com"; $entry["objectclass"][0] = "person"; $entry["objectclass"][1] = "test"; $entry["objectclass"][2] = "test2"; $entry["objectclass"][3] = "test3"; // insert data into the ldap server $r=ldap_add($ds, "cn=Robert Toto,dc=elodig,dc=fr", $entry); ldap_close($ds); } else { echo "Connexion au serveur LDAP impossible"; } Et voici les messages d'erreur qu'il retourne: Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Protocol error in... (ligne où ldap_bind est appelée) Warning: ldap_add() [function.ldap-add]: Add: Invalid syntax in... (ligne où ldap_add est appelée) Je suis sur Linux, Kubuntu 7.10 Gutsy. J'ai installé les packets suivants: slapd & ldap-utils, changé de mot de passe, fait un test avec un fichier ldif. En ligne de commande, ça marche nickel chrome. Je le lance, j'ajoute, je sélectionne, etc... J'ai installé phpldapadmin qui me donne une GUI mais il m'est impossible de me connecter au serveur. Si vous avez une idée... Merci !
Kioob Posté 16 Avril 2008 Posté 16 Avril 2008 (modifié) Hello, dans les commentaires de la doc officielle, on peut lire ça : (30 secondes de recherche). Note that you have to specify the protocol version prior to making a call to ldap_bind, when the server is expecting LDAP protocol version 3. If you do not, you will receive a warning and fail to bind, such as: ldap_bind(): Unable to bind to server: Protocol error In order to avoid this, make this call: <?php ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); ?> Where $ds is the result returned by ldap_connect(...); Donc vérifie ton "set_option" qui ne doit pas être appelé quand il faut. Modifié 16 Avril 2008 par Kioob
Gibou Posté 16 Avril 2008 Auteur Posté 16 Avril 2008 oui, en effet, ça vient de cette ligne mais parfois, ça marche, parfois non. En retirant la condition, en effet, ça marche toujours mais ça m'intrigue quand même que ça ne passe pas tout le temps. Bon, je vais me contenter de cette situation mais il faudra bien que je trouve un moyen stable et sûr plus tard. Merci de ton avis en tout cas, si d'autres ont déjà eu ce soucis d'instabilité, je suis curieux d'avoir leur retour Merci !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant