#!/usr/bin/perl use CGI; use Net::LDAP qw(:all); use CGI::Carp qw(fatalsToBrowser); use strict; my $q = new CGI; print $q->header; if($q->param('looking') eq 'yes'){ my $ldap = Net::LDAP->new('ldap') or die "$@"; $ldap->bind; # an anonymous bind my $base = "c=us"; my @Attrs = (); my $search = "(&"; if($q->param('first') ne ''){ $search = "$search (givenName=" . $q->param('first') . ")"; } if($q->param('last') ne ''){ $search = "$search (sn=" . $q->param('last') . ")"; } if($q->param('dept') ne ''){ $search = "$search (Department=" . $q->param('dept') . ")"; } if($q->param('phone') ne ''){ $search = "$search (telephoneNumber=" . $q->param('phone') . ")"; } if($q->param('fax') ne ''){ $search = "$search (facsimileTelephoneNumber=" . $q->param('fax') . ")"; } $search = $search . ")"; $result = LDAPsearch($ldap, $search,\@Attrs); my @entries = $result->entries; $ldap->unbind; # take down session } print < Directory
\n"; print "\n"; print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; } print "
Directory
Use this form to find an employee. Enter as much information as you know. Use * for wildcards.
First Name
Last Name
Department Name
Phone
Fax
EODUMP PRINTRESULTS(); print <"; foreach $entr (@entries) { $phone = $entr->get('telephoneNumber'); $user = $entr->get('cn'); $email = $entr->get('mail'); $department = $entr->get('Department'); $address = $entr->get('address'); $address = $address->[0]; $department = $department->[0]; $phone = $phone->[0]; $user = $user->[0]; $email = $email->[0]; $title = $entr->get('title'); $title = $title->[0]; $street = $entr->get('postalAddress'); $street = $street->[0]; $fax = $entr->get('facsimileTelephoneNumber'); $fax = $fax->[0]; (my $lname, my $fname) = split(/\, /, $user); print "
$user$phone
$title\n
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print ""; print "
$department
$street
 
"; } sub LDAPsearch { my ($ldap,$searchString,$attrs) = @_ ; my $result = $ldap->search ( base => "$base", scope => "sub", filter => "$searchString", attrs => $attrs, sizelimit => $size_limit ); }