OVH Cloud OVH Cloud

PHP - OpenLDAP

7 réponses
Avatar
eroussel
Bonjour,

J'essaie de me connecter à mon serveur OpenLDAP avec un script PHP (cf
ci dessous).
ça fonctionne avec le client ldapsearch ou avec JXplorer -> donc pas
de problème coté OpenLDAP
Mais ça fontionne aussi avec phpldapadmin ...
mais pas avec mon code que voilà

<?php

$server="ldap.toto.test";
$port="389";
echo "Tentative de connexion à l'annuaire LDAP ...<br>";

$ldap_conn=ldap_connect($server,$port);

echo "ds = $ldap_conn <br>";

if ($ldap_conn==1)
{

echo "Connexion réussie, BRAVO !!!";
}
else
{
echo "La connexion a échoué <br>";
echo "ds = $ldap_conn";
}

?>

Sur le echo "ds = $ldap_conn" j'ai : "ds = Resource id #2 " ?????

Si quelqu'un a une idée je suis preneur.

Merci

7 réponses

Avatar
ftc
<?php

$server="ldap.toto.test";
$port="389";
echo "Tentative de connexion à l'annuaire LDAP ...<br>";

$ldap_conn=ldap_connect($server,$port);

echo "ds = $ldap_conn <br>";


if ($ldap_conn)
{

echo "Connexion réussie, BRAVO !!!";
}
else
{
echo "La connexion a échoué <br>";
echo "ds = $ldap_conn";
}

?>


Sur le echo "ds = $ldap_conn" j'ai : "ds = Resource id #2 " ?????


Ca veut dire que la connexion a réussi

Avatar
CrazyCat
eroussel wrote:
$ldap_conn=ldap_connect($server,$port);
if ($ldap_conn==1)
Sur le echo "ds = $ldap_conn" j'ai : "ds = Resource id #2 " ?????


Pris sur le manuel: "ldap_connect() retourne un identifiant positif de
serveur LDAP en cas de succès, ou bien FALSE en cas d'erreur."

Il te renvoit un identifiant qui n'est pas forcémment 1, donc tu devrais
plutot utiliser:
if ($ldap_conn = ldap_connect($server, $port)) {
...
} else {
echo "ben y'a une erreur";
}

--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net

Avatar
(¯`·..Yttrium ...·´¯)
Sur le echo "ds = $ldap_conn" j'ai : "ds = Resource id #2 " ?????



Bjr,
Donc , ca semble fonctionner
Voir la doc php , la fonction renvoie une ressource.
Si la connection ne s'établissait pas, tu recevrais FALSE
Seulement, il ne sert à rien de faire un echo de cette ressource, il faut
maintenant l'exploiter.
La connection est ouverte, à toi de fairele reste ...

Salutations.

Avatar
gabriel
Bonjour,

J'essaie de me connecter à mon serveur OpenLDAP avec un script PHP (cf
ci dessous).
ça fonctionne avec le client ldapsearch ou avec JXplorer -> donc pas
de problème coté OpenLDAP
Mais ça fontionne aussi avec phpldapadmin ...
mais pas avec mon code que voilà

<?php

$server="ldap.toto.test";
$port="389";
echo "Tentative de connexion à l'annuaire LDAP ...<br>";

$ldap_conn=ldap_connect($server,$port);

echo "ds = $ldap_conn <br>";

if ($ldap_conn==1)
{

echo "Connexion réussie, BRAVO !!!";
}
else
{
echo "La connexion a échoué <br>";
echo "ds = $ldap_conn";
}

?>

Sur le echo "ds = $ldap_conn" j'ai : "ds = Resource id #2 " ?????

Si quelqu'un a une idée je suis preneur.

Merci
Tu reçois une ressource de connexion donc c'est bon !


C'est comme lorsque tu te connectes à une db : tu recevras un id de cnx,
pas un code d'erreur genre -1 ou ce genre de choses.

Ta cnx est bien établie, mnt tu dois passer cette ressource aux
fonctions qui suivent je suppose (me suis pas penché sur
l'implémentation php).

Avatar
Bruno Desthuilliers
Bonjour,

J'essaie de me connecter à mon serveur OpenLDAP avec un script PHP
(snip)

$ldap_conn=ldap_connect($server,$port);
if ($ldap_conn==1)


if (is_resource($ldap_conn)) {

(snip)
Sur le echo "ds = $ldap_conn" j'ai : "ds = Resource id #2 " ?????


Donc la connection est établie.
Il te reste à exécuter le bind, et à passer tes requêtes.

Si quelqu'un a une idée je suis preneur.
Lire la doc ?-)


Avatar
eroussel
Lire la doc est la première chose que j'ai fait, mais comme je suis
pas super malin j'ai appliqué la doc à la lette (site nexen, fonction
ldap_connect et ldap_bind). Sauf qu'en effet il faut bien ajouté la
fonction is_resource() et la c'est ok.
N'empêche qu'ou bien la doc est mal foutu et il manque des
expliquations ou bien ce bug (reférencé en tant que tel par php.net)
n'est pas encore corrigé ... il date de janvier 2002 et en décembre
2004 n'était toujours pas corrigé
c'est limpide : http://bugs.php.net/bug.php?id637
Avatar
eroussel
Non car le résultat attendu par ldap_bind est 1.
Ci dessous le résultat de mon script :

Tentative de connexion à l'annuaire LDAP ...
ds = Resource id #2

Warning: ldap_bind() expects parameter 1 to be resource, null given in
/var/www/html/ldap/test.php on line 15

Le bug a été référencé le 19/02/2002 et le 30/11/2004 toujours pas
réglé ...
http://bugs.php.net/bug.php?id637

Néanmoins phpldapadmin fonctionne sur ma machine.

J'ai mis openldap en mode debug et je ne vois pas arriver sur le
serveur openldap les demandes de connexions de ldap_connect alors que
je vois les demandes de ldap_bind.