IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

lenteur avec ldap_search()


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut lenteur avec ldap_search()
    Bonjour,

    J'utilise ce code pour lire sur un serveur ldap :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function ldap_extract($dn,$filtre)
    {
    	$server = "mon serveur";
    	$port = 389;
    	$ds=ldap_connect($server,$port);
    	$r=ldap_bind($ds,"","");
    	$sr=ldap_search($ds, $dn, $filtre);
            $info = ldap_get_entries($ds, $sr);
     
    return $info;
    }
     
    $tab=ldap_extract("mes critères...","(mineqTypeEntree=BALI)");
    Cela fonctionne : j'obtiens un tableau d'environ 300 entrées (que je peux ensuite afficher). Le problème c'est mon navigateur continue de réfléchir pendant presque 1 minute (alors que je suis déconnecté du serveur et qu'il a affiché mon résultat).Je n'ai pas la moindre idée de ce qu'il fait. Cette lenteur semble provenir de ldap_search(). Lorsque je test la même requête avec ldap browser j'ai le résultat direct...

    Si quelqu'un peut m'expliquer....
    Que puis je modifier ? Faut-il ajouter des critères à la fonction ldap_search()?

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Bonjour,

    peut être peux tu affiner ta recherche en fonction de ton ds.

    dans les filtres de recherches, tu peux éventuellement cibler sur les objets

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    J'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $restriction=array("sn", "mail");
    $sr=ldap_search($ds, $dn, $filtre, $restriction);
    cela ne résout pas mon problème : j'obtiens directement ce que je souhaite, je l'affiche, je ferme la connexion mais mon navigateur continue de charger ...(quoi en se demande ) pendant 1 minute puis il coupe....

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    t'as essayé de faire un ldap_close() derrière ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    oui ... mais cela continue quand même de mouliner (même si je n'ajoute aucune instruction après) ... Je comprends vraiment pas ...

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    tu as quoi comme code autour ?

    une boucle ?

    tu peux nous montrer l'ensemble de ton code ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    Voilà l'ensemble du code ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    function ldap_extract($dn,$filtre)
    {
    	$server = "ldap.melanie2.i2";
    	$port = 389;
    	$ds=ldap_connect($server,$port);
    	$r=ldap_bind($ds,"","");
     
    	$restriction=array("sn","givenname", "mail", "departmentnumber","description");
     
    	$sr=ldap_search($ds, $dn, $filtre, $restriction);
    	$info = ldap_get_entries($ds, $sr);
     
    	echo "Le nombre d'entrées retourné est de ".ldap_count_entries($ds,$sr)."<br>";
     
    ldap_close ($ds);
     
    For($i=0;$i<sizeof($info);$i++)
    {
    echo $info[$i]["sn"][0]." ".$info[$i]["givenname"][0]." ".$info[$i]["mail"][0]." ".$info[$i]["departmentnumber"][0]." ".$info[$i]["description"][0]."<br>";
    }
    }
     
    ldap_extract("ou=DREAL Alsace,ou=DR,ou=melanie,ou=organisation,dc=equipement,dc=gouv,dc=fr","(mineqTypeEntree=BALI)");

  8. #8
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    si tu fais ça tu dois pouvoir récupérer toutes tes données

    est ce que ça tourne aussi longtemps ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $info = ldap_get_entries($ds, $sr);
     
    echo '<pre>';
    print_r($info);
    echo '</pre>';
     
    exit;

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    C'est toujours le même souci : cela affiche rapidement les 289 entrées puis cela rame dans le vide...

  10. #10
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    et ça, ça te donne quoi ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $start = microtime(TRUE);
    $sr=ldap_search($ds, $dn, $filtre, $restriction);
    $end = $microtime(TRUE);
    echo "Le script s'est exécuté en ".($end - $start)." micro secondes.";

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    le script s'est exécuté en 0.44185090065 micro seconde
    C'est donc rapide ...
    j'ai testé avec ta méthode ldap_get_entries() réponse :
    Le script s'est exécuté en 0.00648808479309 micro secondes
    pas de soucis non plus

    Après je n'ai plus rien (sauf ldap_close) car j'ai enlevé la boucle d'affichage.

    moi ca me dépasse....

  12. #12
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $start = microtime(TRUE);
    For($i=0;$i<sizeof($info);$i++)
    {
    echo $info[$i]["sn"][0]." ".$info[$i]["givenname"][0]." ".$info[$i]["mail"][0]." ".$info[$i]["departmentnumber"][0]." ".$info[$i]["description"][0]."<br>";
    }
    $end = $microtime(TRUE);
    echo "Le script s'est exécuté en ".($end - $start)." micro secondes.";

    ??

    as tu essayé sur un autre navigateur à tout hasard...

    je suis un peu à court d'idées aussi

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    Même soucis avec un autre navigateur.
    je me demande si des histoires de réseau peuvent influer sur ce problème.

    Je ne suis pas informaticien et j'arrive là à mes limites : il me reste plus qu'à contacter la bonne personne dans ma structure ....

  14. #14
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    ta boucle te donne quoi comme temps d'exécution ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $start = microtime(TRUE);
    For($i=0;$i<sizeof($info);$i++)
    {
    echo $info[$i]["sn"][0]." ".$info[$i]["givenname"][0]." ".$info[$i]["mail"][0]." ".$info[$i]["departmentnumber"][0]." ".$info[$i]["description"][0]."<br>";
    }
    $end = $microtime(TRUE);
    echo "Le script s'est exécuté en ".($end - $start)." micro secondes.";

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    Le script s'est exécuté en 0.00231599807739 micro secondes.

    C'est vraiment après qu'il patine...
    Faudrait avoir une vue temps réel sur ce que charge Firefox....(pas de message dans console)

  16. #16
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    as tu l'extension firebug ?

    regarder dans l'onglet réseau pour voir ce qui se charge

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    Je viens de l'installer.

    Pas vraiment d'infos...
    3s d'attente pour ma page
    mais + 35s pour l'évènement DOMContentloaded

    ce qui se charge est conforme à ce que j'attends...

  18. #18
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    t'as du javascript qui se load ?

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    non ....

  20. #20
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    et ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //ldap_extract("ou=DREAL Alsace,ou=DR,ou=melanie,ou=organisation,dc=equipement,dc=gouv,dc=fr","(mineqTypeEntree=BALI)");

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Probleme de lenteur avec Netbeans 5.5
    Par sachet dans le forum NetBeans
    Réponses: 5
    Dernier message: 02/07/2008, 17h28
  2. problème de lenteur avec BO
    Par darwini dans le forum Débuter
    Réponses: 2
    Dernier message: 13/04/2007, 15h08
  3. Problème de lenteur avec 2 sous-formulaires
    Par picatchou dans le forum Access
    Réponses: 1
    Dernier message: 29/01/2007, 09h48
  4. pb de lenteur avec Index
    Par LeNeutrino dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 19/12/2006, 12h48
  5. [Débutant] Lenteur avec TComPort
    Par PhDt76 dans le forum C++Builder
    Réponses: 22
    Dernier message: 27/09/2003, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo