Le pire c'est que si je sors ce passage ldap de mon script et que je le mets dans un autre, ca marche...je ne comprends pas;si qqn a une idée.Je ne mets pas tout le code(2000 lignes) mais juste les points stratégiques:
a chaque fois que ca ecrit
>ca represente une fleche en fait, mais je n'ai pas réussi a les remettre telles quelles dans ce qui suit
#!/bin/perl
use DBI;
use Net::LDAP;
sub recherche_ldap
{
local($msg);
local ($serv) = 'irlin139';
local ($ldap) = Net::LDAP->new($serv,port=> 389 ,version=> 3 )|| die "erreur connect";
print "conn $ldap";
$msg = $ldap->bind(dn=>$login, password=> $motdepasse);
$msg->code && die $msg->error;
print " bind $msg1->code()";
local ($filtre)="(sn=user)";
print $filtre;
$msg = $ldap->search(
base => 'ou=personnes,o=machin',
filter => "$filtre",
attrs => ['id','sn','givenName','employeeNumber','categorieDePopulation']);
print " bind $msg";
$msg->code && die $msg->error;
print " bind $msg->error";
@entries = $msg->entries;
foreach $entry(@entries){
$user=$entry->get_value("uid");
$lastname=$entry->get_value("sn");
$name=$entry->get_value("givenName");
$matricule=$entry->get_value("employeeNumber");
$categ=$entry->get_value("categorieDePopulation");
print "$user";
print " $lastname";
print " $name";
print "$matricule";
print "$categ";
}
$ldap->unbind();
}
#pas mal d'autres sous fonctions
#
@INC=(".","/usr/local/expl/httpd-2.0.50/cgi-bin","/usr/lib/perl5");
require("cgi-lib+.pl");
# Affichage de l'en-tete HTML
print &PrintHeader ;
# Récupération des variables
&ReadParse;
# traitements
# ...
&recherche_ldap;
print"" ;
Si vous voyez qlq chose please help!!!
# Heu ...
Posté par Pierre Mallard . Évalué à 2.
Je me trompe ou $login et $motdepasse ne sont pas initialisés ??
[^] # Re: Heu ...
Posté par glizmo . Évalué à 1.
[^] # Re: Heu ...
Posté par kesako . Évalué à 2.
$msg = $ldap->bind(dn=>$login, password=> $motdepasse) || die "Bind error : $!";
d'autre part, ne peux tu pas mettre le serveur ldap en mode debug pour voir ce qu'il recoit ?
[^] # Re: Heu ...
Posté par glizmo . Évalué à 1.
# Commencer par nettoyer le source Perl
Posté par Jérôme F. . Évalué à 2.
use strict;
use warnings;
Puis soigner le source :
s/local/my/ dans les sub
s/&// dans les appels de sub
Plus d'infos sur http://articles.mongueurs.net/magazines/linuxmag68.html.(...)
Dernière question : c'est un CGI, ou un script simple ? ou autre chose encore ?
[^] # Re: Commencer par nettoyer le source Perl
Posté par glizmo . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.