Hello,
I have made on perl script(attached) which do ldapsearch.
When I run that script through perl command it works,but when I called it through some programme to view it in browser it never works.My OS Win-2000.Any Thing I am missing as some environmental variable or something..
Best Regards, Chandraknt
#!/usr/local/bin/perl # # $Header: email_imap_config.pl 30-jul-2003.18:34:00 cpolinsk Exp $ # # email_imap_config.pl # # Copyright (c) 2003, Oracle Corporation. All rights reserved. # # NAME # email_imap_config.pl - <one-line expansion of the name> # # DESCRIPTION # Script reads email config data from oid # # NOTES # <other useful comments, qualifications, etc.> # # MODIFIED (MM/DD/YY) # use strict; require "emd_common.pl";
my $OSNAME = $^O;
my $Second = "";
my $Minute = "";
my $Hour = "";
my $Day = "";
my $Month = "";
my $Year= "";
my $WeekDay = "";
my $DayOfYear = "";
($Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear) = localtime(time);
my $RealMonth = $Month + 1;
if($RealMonth < 10)
{
$RealMonth = "0" . $RealMonth; # add a leading zero to one-digit months
}
if($Day < 10)
{
$Day = "0" . $Day; # add a leading zero to one-digit days
}
if($Second < 10)
{
$Second = "0" . $Second; # add a leading zero to one-digit days
}
if($Minute < 10)
{
$Minute = "0" . $Minute; # add a leading zero to one-digit days
}
if($Hour < 10)
{
$Hour = "0" . $Hour; # add a leading zero to one-digit days
}
my $Fixed_Year = $Year + 1900;
my $FormatedTime = "$Fixed_Year-$RealMonth-$Day $Hour:$Minute:$Second";
my $ldap_oh="";
EMAGENT_PERL_DEBUG("$ARGV[0] :: $ARGV[0]");
if( ($OSNAME eq "MSWin32") or ($OSNAME eq "Windows_NT") )
{
#$ldap_oh = "$ARGV[0]\\bin\\ldapsearch";
$ldap_oh = "C:\\oracle_as\\bin\\ldapsearch";
}
else
{
#$ldap_oh = "$ARGV[0]/bin/ldapsearch";
$ldap_oh = "C:/oracle_as/bin/ldapsearch";
}
### ldap parameters
my $ldap_host="umsvr2-sun.us.oracle.com";
my $ldap_port="3060";
my $ldap_username="cn=orcladmin";
my $ldap_password="welcome1";
my $target_type = "oracle_ovf";
my $config_name = "orclmailprocloglevel";
my $target = " ";
my $output="";
## Do an ldap search first looking at the target level for the data
EMAGENT_PERL_DEBUG("ldap_oh :: $ldap_oh");
$output = `$ldap_oh -h \"$ldap_host\" -p $ldap_port -D \"$ldap_username\" -w
$ldap_password -b
\"cn=ovf,cn=OraVmail,cn=umdev04.us.oracle.com,cn=Computers,cn=OracleContext\" cn=ovf
orclmailprocloglevel`;
print"$output";
EMAGENT_PERL_DEBUG("output :: $output");
## Parse the result string and retrieve just the value
my $ldapValue = getLdapValue($output);
##$ldapValue="NOTIFICATION";
## Return the parsed result
print "em_result=$ldapValue|$FormatedTime\n";
###
# getLdapValue
# # Takes an ldap search output string and strips the param name and '='
# from the string to retrieve only the attribute value.
###
sub getLdapValue
{
my $attr_value = "";
my $ldap_output = shift(@_);
EMAGENT_PERL_DEBUG("ldap_output :: $ldap_output");
my @lines = split("\n", $ldap_output);
if($#lines > 0)
{
my $attr_line = @lines[1];
my @attr = split("=", $attr_line);
$attr_value = @attr[1];
}
return $attr_value;
}
