Nws tau tshwm sim tias ib lub tuam txhab loj (uas zoo li loj) muaj ntau lub chaw ua haujlwm nyob deb, txhua lub muaj cov neeg siv ntau heev. Txhua lub chaw ua haujlwm tau txuas nrog ib lub network nrog ib qho chaw sib koom, thiab txhua lub chaw ua haujlwm tau txhais hauv Active Directory (tom qab no AD) ua Chav Haujlwm (OU), uas twb muaj cov neeg siv lawm.
Nws yog qhov tsim nyog los muab cov neeg siv lub peev xwm kom sai thiab yooj yim tau txais cov ntaub ntawv tiv tauj rau tus neeg ua haujlwm xav tau los ntawm AD, thiab kom cov thawj coj ntawm lub kaw lus tsis txhob hloov kho cov ntaub ntawv ntawv uas ua haujlwm ua phau ntawv chaw nyob.
Tsis muaj cov kev xaiv uas tau npaj tseg rau kev daws qhov teeb meem, yog li kuv yuav tsum ua txhua yam kuv tus kheej.
Cia peb pib los ntawm kev txiav txim siab seb yuav siv dab tsi. Qhov no yooj yim heev: daim nplaub tshev uas tau tshwm sim yuav tsum nkag mus rau txhua tus neeg siv domain los ntawm browser. Thawj qhov uas los rau hauv siab yog PHP ua ke nrog LDAP, yog li ntawd yog qhov peb yuav siv. Kuv xav tias qhov zoo tshaj plaws ntawm kev siv PHP yog nws qhov yooj yim piv txwv - txhua tus neeg tswj hwm system uas muaj kev nkag siab me ntsis tuaj yeem ua qhov kev hloov kho tsim nyog rau cov lej yam tsis tas siv zog ntau.
Yog li, cia peb pib. Ua ntej, cia peb teeb tsa cov kev sib txuas ntawm lub npe sau:
$srv ="SERVER";
$srv_domain ="DOMAIN.COM";
$srv_login ="USERNAME@".$srv_domain;
$srv_password ="PASSWORD";
Kauj ruam tom ntej yog txiav txim siab seb peb yuav tshawb nrhiav cov neeg siv hauv OU twg. Peb yuav ua qhov no los ntawm kev cuam tshuam cov nqi ntawm $_GET['qhov chaw']. Piv txwv li, yog tias tus neeg siv mus rau thawj, ces hloov pauv tau $qhov chaw yuav raug muab tus nqi thawj.
$place = (@$_GET['place']);
$doscript=true;
switch($place){
case "first" :
$dn ="OU=ou1,OU=DOMAIN,dc=DOMAIN,dc=COM";
break;
case "second":
$dn ="OU=ou2,OU=DOMAIN,dc=DOMAIN,dc=COM";
break;
//здесь можно добавить ещё условий.
default:
$doscript=false;
break;
}
if (!$doscript) include "main_table.html";
Kuj tsis paub meej $doscript Qhov no yog qhov xav tau los khaws cov nqi - seb peb puas tau txhais lub OU uas yuav tshawb nrhiav cov neeg siv. Yog tias tsis pom qhov sib phim raws li tau teev tseg hauv "switch-case," ces $doscript = false. Lub ntsiab ntawm tsab ntawv yuav tsis raug ua tiav, thiab nplooj ntawv pib "main_table.html" (Kuv yuav tham txog nws thaum kawg) yuav raug tso tawm.
Yog tias peb tau txhais ib qho OU, ces peb mus rau lwm yam kev ua: peb pib kos ib nplooj ntawv siv rau tus neeg siv:
else if ($doscript) {
{echo "
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<link rel='shortcut icon' href='ico.png'>
<meta charset='windows-1251/ '>
Peb suav nrog cov qauv rau qhov zoo nkauj dua (yog, lawv tuaj yeem suav nrog ua cov ntaub ntawv CSS, tab sis qee cov qauv ntawm IE tsis xav txais cov qauv teev tseg li no, yog li koj yuav tsum sau lawv ncaj qha rau hauv tsab ntawv):
<style>
*{text-align: center; font-family:tahoma; font-size:14px;}
a{text-decoration: none; color: #000;}
a:hover{text-decoration: underline; color: #0059FF;}
#bold{text-decoration: none; font-weight: 600;font-size:20px;}
#table,tr,td{border-style:solid;border-width:1px; border-collapse:collapse;padding:5px; height:22px;border-color:#7d7d7d;}
/* Нечетные строки */#table tbody tr:nth-child(odd){background: #fff;}
/* Четные строки */ #table tbody tr:nth-child(even){background: #F7F7F7;}
#noborder{border-width: 0 px; border-style: none;}
#sp30px{text-indent: 30px;text-align: justify;}
#smallsize{font-family:tahoma; text-indent: 5px; text-align:left; font-size:12px;}
#top {background: #ffffff;
text-align: center;
left:0;
top:0px;
table-layout: fixed;
border-style:solid;
border-width:0px;
border-collapse:collapse;
padding:0px;
height:22px;
border: 0px;
z-index: 99999;
display:block;
width:80px;
opacity: 0.6;
filter: alpha(Opacity=60);
height:100%;
position:fixed;}
#top:hover{background: #afafaf;opacity: 100;filter: alpha(Opacity=100);text-decoration: none;color: #000000;}
.smalltext{padding-top: 1px;
padding-bottom: 1px;
text-align: bottom;
font-family:tahoma;
color: #a0a0a0;
line-height: 7px;
font-size: 10px;}
.smalltext:hover{color: #0000ff;}
.transition-rotate {position: relative;
z-index: 2;
margin: 0 auto;
padding: 5px;
text-align: center;
max-width: 500px;
cursor: pointer;
transition: 0.1s linear;}
.transition-rotate:hover {-webkit-transform: rotate(-2deg); transform: rotate(-2deg);}
#lineheight{
text-align: left;
line-height: 1px;
text-decoration: none;
font-weight: 600;
font-size:20px;}
</style>
Tam sim no peb ua tiav nrog cov styles, cia peb sau lub npe ntawm tab thiab kos ib qho txuas yooj yim kom rov qab mus rau nplooj ntawv tseem ceeb:
<title>Adressbook of «YourMegaCompanyName»</title>
</head>
<body style='background-color:#ffffff;'>";
}
echo "
<table id='top'><tr><td id='top'>
<a href='index.php?place=main' id='top' >
<br><br><br>
<img src='back_to_main.png' alt='' border='0' width='75' height='60'/>
<p>На главную</p></a>
</td></tr></table>
";
Peb txhais cov lim tshawb nrhiav rau AD thiab tau txais cov ntaub ntawv hais txog OU:
$filter ="(&(objectcategory=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"; //все пользователи, кроме отключенных.
$filter2 ="(objectCategory=OrganizationalUnit)"; // для получения информации о OU
$ds=ldap_connect($srv);
if ($ds) {
$r=ldap_bind($ds,$srv_login,$srv_password);;
ldap_set_option($ds,LDAP_OPT_REFERRALS, 0);
ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION,3);
$sr=ldap_search($ds,$dn ,$filter );
ldap_sort($ds,$sr, "givenname");
$info = ldap_get_entries($ds, $sr);
$sr2=ldap_search($ds,$dn ,$filter2 );
$placeinfo = ldap_get_entries($ds, $sr2);
$PlaceName = $placeinfo[0]["l"][0]; // name of place
$PlaceAddres = $placeinfo[0]["street"][0]; // address of place
$PlaceMail = $placeinfo[0]["description"][0]; // mail of place
$PlacePhone = $placeinfo[0]["st"][0]; // phone of plase
Tom ntej no, peb tsim sab saum toj ntawm nplooj ntawv:
echo"<table align='center' height = '80'>
<td id='noborder' ><div id='lineheight'>". $PlaceName ."</div></td></tr>
<tr><td id='noborder' >". $PlaceAddres ."</td></tr>
</table>
<table align='center' id='table'>
<tr><td width='35' bgcolor = #f0f0e4> № </td>
<td width='300' bgcolor = #f0f0e4> Name </td>
<td width='250' bgcolor = #f0f0e4> E-mail </td>
<td width='60' bgcolor = #f0f0e4> Phone </td>
<td width='150' bgcolor = #f0f0e4> Mobile </td></tr>
<tr><td></td><td> Данные OU </td><td>";
echo "<div class='transition-rotate'><a href=mailto:" . $PlaceMail .">" . $PlaceMail ." </a></div>";
echo "</td><td width='150'> " . $PlacePhone ." </td><td> - </td></tr>";
Tom ntej no, peb tau txais thiab ua cov ntaub ntawv neeg siv hauv ib lub voj voog. Txhawm rau zais qee tus account (piv txwv li, cov account kev pabcuam), peb tsuas yog sau "zais" hauv daim teb "chav" hauv cov ntaub ntawv ntawm tus neeg siv hauv AD; cov neeg siv zoo li no yuav tsis tshwm sim hauv daim nplaub tshev:
for ($i=0; $i<$info["count"];$i++) {
$UserHide = $info[$i]["physicaldeliveryofficename"][0];
if ($UserHide != 'hide') {
$UserName = $info[$i]["cn"][0]; //Имя пользователя
$UserPosition = $info[$i]["title"][0]; // Должность
$UserMail = $info[$i]["mail"][0]; //mail
if (!$UserMail)) $UserMail = "-"; //если нет данных о ящике в AD, то отображаем прочерк
$UserIpPhone = $info[$i]["ipphone"][0]; //ip phone
if (!$UserIpPhone) $UserIpPhone = "-"; //если нет данных о ящике в AD, то отображаем прочерк
$UserMobile = $info[$i]["mobile"][0]; //mobile
if (!$UserMobile) $UserMobile = "-"; //если нет данных о ящике в AD, то отображаем прочерк
Los ntawm txoj kev, yog tias koj xav tau tus nqi ntawm lwm yam cwj pwm, nco ntsoov (qhov no tseem ceeb):
Peb muab lub npe ntawm cov khoom siv hauv daim ntawv thov cov ntawv me cov ntawv, txwv tsis pub nws yuav tsis ua haujlwm.
Thiab peb ntxig cov ntaub ntawv tau txais rau hauv lub rooj:
echo "<tr>
<td>". $n+=1 ."</td>
<td> ". $UserName ."<br> <div class='smalltext'>". $UserPosition ."</div></td><td>"; // Имя пользователя и должность
if ($UserMail !='-') echo "<div class='transition-rotate'><a href=mailto:'$UserMail'>$UserMail </a></div>"; // если у пользователя есть e-mail создаём ссылку на отправку письма
else echo "-"; //если нет e-mail - ставим прочерк.
echo "<td> ". $UserIpPhone ." </td>
<td> ". $UserMobile ." </td></tr>";
}
}
echo "</table>";
Tom ntej no, peb kaw qhov kev sib txuas LDAP lossis tso saib cov lus hais txog qhov tsis muaj peev xwm txuas rau lub server:
ldap_close($ds);
}
else echo "<h4>Unable to connect to LDAP server</h4>";
echo '<br><br><br></body></html>';}
Cov ntaub ntawv "main_table.html" yog ib nplooj ntawv HTML yooj yim nrog cov kev sib txuas thiab zoo li no:
<head>
<link rel="shortcut icon" href="ico.png"/>
<meta charset="windows-1251"/>
<title>Adressbook of «YourMegaCompanyName»</title>
</head>
<body style='background-color:#ffffff;'>
<center><a href=index.php><IMG border="none" src="logo.png"/></a></center>
<center><b>Places and offices</b></center>
<br>
<table border="0" width="450" bgcolor="#dddddd" align="center" valign="middle" CELLSPACING="0">
<tr id="space"><td></td></tr>
<tr><td align="left" id="abz"><a href="index.php?place=ou1">OU1</a></td></tr>
<tr id="space"><td></td></tr>
<tr><td align="left" id="abz"><a href="index.php?place=ou2">OU2</a></td></tr>
</table></body></html>
Yog tias kuv cov lej pab tau leej twg, kuv yuav zoo siab, siv nws!
Koj kuj tseem muaj kev ywj pheej los hloov kho nws raws li koj xav tau (txhim kho / txo qis) thiab faib nws los ntawm txhua txoj kev.
Ua tsaug rau koj txoj kev paub!
Tau qhov twg los: www.hab.com
