Thanks.

The second backslash works.





Peter Gietz <[EMAIL PROTECTED]> 
09/27/2006 01:46 PM

To
[EMAIL PROTECTED]
cc
"Colbourn, Charles" <[EMAIL PROTECTED]>, perl-ldap@perl.org
Subject
Re: Search filter problem






Yes now the metacharacter is the backslash, that perl wants to have 
doubled, if used as data, so try:

filter=> "( employeetype=consultant \\28pre-release\\29 )"

Cheers,

Peter



[EMAIL PROTECTED] schrieb:
> Thanks for you help.
>
> I tried this, but now I don't get any out put.  Not even an error 
message.
>
>
>
>
>
> "Colbourn, Charles" <[EMAIL PROTECTED]> 
> 09/27/2006 12:32 PM
>
> To
> <[EMAIL PROTECTED]>
> cc
>
> Subject
> RE: Search filter problem
>
>
>
>
>
>
> Hi,
>
> according to the rfc, ( and ) are reserved characters (because they 
> delimit clauses in the filter, the same is true of * because it's a 
> wildcard).
>
> change your filter to read ( employeetype=consultant \28pre-release\29 )
>
> and it should work fine. \28 and \29 are the escapes for ( and ), \2a is 

> the escape for * if you should need it.
>
> regards,
>
>
> charles.
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: 27 September 2006 17:22
> To: perl-ldap@perl.org
> Subject: Search filter problem
>
>
> Hello all,
>
> I am writing a simple search script using Net::LDAP.  The problem that I
>
> am having is with the filter.
>
> When I execute my script I get the following error message: "Bad filter
> at 
> line 15".
>
> The attribute that I am use a part of the filter is "employeetype" and
> the 
> value is "consultant (pre-release)".  This is a legitimate value.
>
> I am able to retrieve the entries with the command line tool
> "ldapsearch", 
> but I am have trouble do it within  my Net::LDAP script.
>
> My code is below.
>
> Thank you.
>
>
> use Net::LDAP qw(:all);
> use Net::LDAP::Util qw(ldap_error_text);
>
> my $ldconnect = Net::LDAP->new('host', port=>'389') || die "$@";
>
> my $sr = $ldconnect->search(
>                                 base=> 'O=com',
>                                 scope=> 'sub',
>                                 filter=> "( employeetype=consultant 
> (pre-release) )"
> );
>
>  $sr->code && die "failed search: ", $sr->error ;
>
> foreach my $entry ($sr->entries)
> {
>         $dn = $entry->dn;
>         $cn = $entry->get_value('cn') || '-';
>         $emp = $entry->get_value('employeetype') || '-';
>
>         print "DN: $dn\n";
>         print "Common Name: $cn\n";
>         print "EMP Type: $emp\n";
> }
>
>
> 


-- 
_______________________________________________________________________

Peter Gietz (CEO)
DAASI International GmbH                   phone: +49 7071 2970336
Wilhelmstr. 106                            Fax:   +49 7071 295114
D-72074 Tübingen                           mail:  [EMAIL PROTECTED]
Germany                                    Web:   www.daasi.de

Directory Applications for Advanced Security and Information Management
_______________________________________________________________________



Reply via email to