我使用PHP4(无法升级)来查询大约2,000个帐户,但每次刷新页面时它都会带来不同的结果。如果我将数字缩小到800左右,每次结果仍然不同,如果我向下移动到十几个,那么每次都得到相同的结果。请问有人可以提出建议吗?
<?php
set_time_limit(0);
$user = "CN=Account Name,OU=Users,OU=Helpdesk,OU=Group IT,DC=domain,DC=co,DC=uk";
$psw = "PasswordHere";
$csv = file('AD-Managers.csv');
foreach ($csv as $line){
$names = explode(",",$line);//explode by commas
$managerExists = "0";
$managerUPN = $names[4];
$managerSearch = "userprincipalname=".$managerUPN;
$search = "userprincipalname=".$userUPN;
$server = "jpr-ads-01s.jpress.co.uk";
$dn = "DC=domain,DC=co,DC=uk";
$ds=ldap_connect($server) or die("Could not connect to {$ldaphost}");
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ds, LDAP_OPT_REFERRALS,0);
if($r=ldap_bind($ds, $user , $psw)){ //using bind as I will be updating accounts once I get it working
$sr=ldap_search($ds, $dn, $managerSearch);
$data = ldap_get_entries($ds, $sr);
//array shift as the first result in the array is NULL
$daa = array_shift($data);
foreach($data as $userData){
if (strpos($userData["dn"], 'Google Apps') == false){//make sure it's not a contact
$managersName = $userData["distinguishedname"][0];
$managerExists = "1";
break; //stop the loop if the user is found
}
}
}
ldap_close($ds);
if($managerExists == "1"){
echo "manager: ".$managerUPN;
echo "<br />";
}
else{
echo "manager not found: ".$managerUPN;
echo "<br />";
}
}
?>
CSV样本:
1234567,John Smith,JOHN SMITH,john.smith@domain.co.uk,johns.manager@domain.co.uk,ABC1234,1,,,,,,,,,,,,
8901234,Jane Doe,JANE DOE,jane.doe@domain.co.uk,janes.manager@domain.co.uk,DEF7890,2,,,,,,,,,,,,
样本结果1:
manager not found: johns.manager@domain.co.uk
manager not found: janes.manager@domain.co.uk
但我可以立即刷新页面并获得:
manager: johns.manager@domain.co.uk
manager: janes.manager@domain.co.uk