ืขืก ืืื ืึทืืื ืืขืฉืขื ืึทื ืึท (ืืขืคืืขืจืขื) ืืจืืืก ืงืืืคืื ืืข ืืื ืคืืืข ืืืืึทื ืึธืคืึทืกืื ืืื ืึท ืืืึทืืืฉ ื ืืืขืจ ืคืื ื ืืฆืขืจืก. ืึทืืข ืึธืคืึทืกืึทื ืืขื ืขื ืงืึธื ื ืขืงืืขื ืืื ืืืื ื ืขืฅ ืืื ืึท ืคึผืจืึธืกื ืคืขืื, ืืขืืขืจ ืึธืคืืก ืืื ืืืคืืื ื ืืื ืึทืงืืืื Directory (ืืขืจื ืึธื ืจืืคืขืจื ืฆื ืืื AD) ืืื ืึทื ืึธืจืืึทื ืืืึทืฆืืข ืืื ืื (OU), ืืื ืืืึธืก ื ืืฆืขืจืก ืืขื ืขื ืฉืืื ืืืฉืืคื.
ืขืก ืืื ืืขืืืขื ื ืืืืืง ืฆื ืืขืื ืื ืืึทื ืืฆืขืจ ืื ืืขืืขืื ืืืื ืฆื ืืขืฉืืืื ื ืืื ืขืคืขืจืืืึทืกืื ืืึทืงืืืขื ืื ืงืึธื ืืึทืงื ืืื ืคึฟืึธืจืืึทืฆืืข ืคืื โโืื ืคืืจืืื ืื ืึธื ืืขืฉืืขืืืขืจ ืคืื AD, ืืื ืคืจืื ืกืืกืืขื ืึทืืืื ืืกืืจืึทืืึธืจืก ืคืื ืื ืจืืืื ืคืื ืขืืืืื ื ืึท ืืขืงืกื ืืขืงืข ืืืึธืก ืืื ืืขืฉืคืืื ืื ืจืึธืืข ืคืื โโืึท ืึทืืจืขืก ืืื.
ืขืก ืืขื ืขื ืงืืื ืืจืืื-ืืขืืืื ืคึผืึทืกืืง ืึธืคึผืฆืืขืก ืคึฟืึทืจ ืกืึทืืืืื ื ืื ืคึผืจืึธืืืขื, ืึทืืื ืืื ืืื ืฆื ืืึธื ืึทืืฅ ืืื ืืืื ืืืืื ืืขื ื ืืื ืงืึธืคึผ.
ืืึธืืืจ ืึธื ืืืืื ืืื ืืขื ืคืึทืงื ืึทื ืขืจืฉืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืฉืืืกื ืืืึธืก ืฆื ื ืืฆื, ืขืก ืืื ืคึผืฉืื - ืื ืืขืฆื ืืืขืืืืืึทืืขืจ ืืึธื ืืืื ืืืจืขืืืืื ืคึฟืึทืจ ืึทืืข ื ืืฆืขืจืก ืคืื ืื ืคืขืื ืืืจื ืึท ืืืขืืขืจืขืจ. ืืขืจ ืขืจืฉืืขืจ ืืึทื ืืืึธืก ืงืืื ืฆื ืืืื ืื ื ืืื PHP ืืื ืงืึทื ืืืฉืึทื ืืงืฉืึทื ืืื ldap, ืืื ืืืจ ืืืขืื ื ืืฆื ืืื. ืืื ืืึทืืจืึทืืื ืื ืืจืืืก ืืืึทืืข ืคืื โโื ืืฆื PHP ืฆื ืืืื ืงืึธืจืขืื ืคึผืึทืฉืืขืก - ืืขืืขืจ ืกืืกืืขื ืึทืืืื ืืกืืจืึทืืึธืจ ืืื ืืคืืื ืึท ืืืกื ืคืืจืฉืืื ื ืืืขื ืงืขื ืขื ืฆื ืืึทืื ืื ื ืืืืืง ืขื ืืขืจืื ืืขื ืฆื ืื ืงืึธื, ืืืื ื ืืืืืง, ืึธื ืกืคึผืขืฆืืขื ืกืืจืืื ืื ื.
ืึทืืื, ืืึธืื ืก ืึธื ืืืืื. ืขืจืฉืืขืจ, ืืึธืืืจ ืฉืืขืื ืื ืคึผืึทืจืึทืืขืืขืจืก ืคึฟืึทืจ ืงืึทื ืขืงืืื ื ืฆื ืื ืคืขืื:
$srv ="SERVER";
$srv_domain ="DOMAIN.COM";
$srv_login ="USERNAME@".$srv_domain;
$srv_password ="PASSWORD";
ืืขืจ ืืืืึทืืขืจ ืคืื ื ืืื ืฆื ืืึทืฉืืืกื ืืื ืืืึธืก OU ืืืจ ืืืขืื ืืืื ืคึฟืึทืจ ื ืืฆืขืจืก. ืืืจ ืืืขืื ืืึธื ืืึธืก ืืืจื ืื ืืขืจืกืขืคึผืืื ื ืืืึทืืืขืก ืคืื $ _GET ['ืึธืจื']. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืื ืืขืจ ืืึทื ืืฆืขืจ ืืืื ืฆื ืื ืึทืืจืขืก
$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";
ืืืึทืืขืืืืืง $ืืึธืกืงืจืืคึผื ืืื ืืืจืฃ ืฆื ืงืจืึธื ืื ืืืขืจื - ืฆื ืืืจ ืืึธืื ืืืคืืื ื ืื OU ืืื ืืืึธืก ืืืจ ืืืขืื ืืืื ืคึฟืึทืจ ื ืืฆืขืจืก ืึธืืขืจ ื ืืฉื. ืืืื ืขืก ืืขื ืขื ืงืืื ืฉืืืขืืขืืขื ืืืกืืขื ืืื ืื "ืกืืืืืฉ-ืคืึทื", ืืขืืึธืื $doscript=false, ืืขืจ ืืืืคึผื ืืืื ืคืื ืื ืฉืจืืคื ืืืขื ื ืืฉื ืืืื ืขืงืกืึทืงืืืืึทื, ืืื ืืขืจ ืึธื ืืืื ืืืึทื "main_table.html" ืืืขื ืืืื ืืขืืืืื (ืืื ืืืขื ืืึธืื ืืืจ ืืืขืื ืขืก ืืื ืื ืกืืฃ).
ืืืื ืืืจ ืืึธืื ืืืคืืื ื ืึทื ืึธื, ืืืจ ืืืื ืืืืึทืืขืจ ืฆื ืืืืึทืืขืจ ืึทืงืฉืึทื ื: ืืืจ ืึธื ืืืืื ืฆื ืฆืืขื ืึท ืืืขืืืืืึทืืขืจ ืืืึทื ืคึฟืึทืจ ืื ืืึทื ืืฆืขืจ:
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/ '>
ืืืจ ืึทืจืืึทื ื ืขืืขื ืกืืืืื ืคึฟืึทืจ ืึท ืืขืจ ืึธื ืืขื ืขื ืืืืกืืขื (ืืึธ, ืืื ืงืขื ืืืื ืึทืจืืึทื ืืขืจืขืื ื ืืื ืึท ืงืกืก ืืขืงืข, ืึธืืขืจ ืขืืืขืืข ืืืขืจืกืืขืก ืคืื IE ืืึธื ื ืืฉื ืืืขืื ืฆื ืึธื ื ืขืืขื ืกืืืืื ืฉืืขืื ืืื ืืขื ืืืขื, ืึทืืื ืืืจ ืืืื ืฉืจืืึทืื ืืื ืืืืึทื ืืื ืื ืฉืจืืคื):
<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>
ืืืจ ืืขื ืขื ืคืึทืจืืืง ืืื ืกืืืืื, ืืืฆื ืืืจ ืฉืจืืึทืื ืืขื ืืืื ืคืื ืื ืงืืืืื ืืื ืฆืืขื ืึท ืืึทืงืืืขื ืืื ืง ืฆื ืฆืืจืืงืงืืืขื ืฆื ืื ืืืืคึผื ืืืึทื:
<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>
";
ืืืจ ืืขืคืื ืืจื ืืืื ืคืืืืขืจืก ืืืจื AD ืืื ืืึทืงืืืขื ืืึทืื ืืืขืื ืื 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
ืืืืึทืืขืจ ืืืจ ืคึผืืึทื ืื ืฉืคึผืืฅ ืคืื ืื ืืืึทื:
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>";
ืืขืจื ืึธื, ืืืจ ืืึทืงืืืขื ืืื ืคึผืจืึธืฆืขืก ืืึทื ืืฆืขืจ ืืึทืื ืืื ืึท ืฉืืืืฃ, ืืฉืขืช ืฆื ืืึทืืึทืืื ืขืืืขืืข (ืืืฉื, ืืื ืกื) ืึทืงืึทืื ืฅ, ืืืจ ืคืฉืื ืึทืจืืึทื "ืืึทืืึทืืื" ืืื ืื "ืฆืืืขืจ" ืคืขืื ืืื ืื ืืึทื ืืฆืขืจ ืืขืืึทืืืก ืืื AD, ืึทืืึท ืืืืขืจื ืืืขื ื ืืฉื ืืืื. ืืขืืืืื ืืื ืื ืืืขืืืืืึทืืขืจ:
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, ัะพ ะพัะพะฑัะฐะถะฐะตะผ ะฟัะพัะตัะบ
ืืืจื ืืขื ืืืขื, ืืืื ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืงืืืขื ืื ืืืขืจื ืคืื ืื ืื ืืขืจ ืึทืืจืืืืื, ืืขืืขื ืงืขื (ืืึธืก ืืื ืืืืืืืง):
ืืื ืืขืจ ืืงืฉื ืืืจ ืคืึธืจื ืื ืึทืืจืืืืื ื ืึธืืขื ืงืืืื ืืืชืืืช ืืืชืืืช, ืึทื ืืขืจืฉ ืขืก ืืืขื ื ืืฉื ืึทืจืืขืื.
ืืื ืึทืจืืึทื ืืืืื ืื ืืืงืืืขื ืืึทืื ืืื ืื ืืืฉ:
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>";
ืืขืจื ืึธื, ืืืจ ืคืึทืจืืึทืื ืื ldap ืงืฉืจ, ืึธืืขืจ ืืืืึทืื ืึท ืึธื ืืึธื ืืืขืื ืื ืืืคึผืึธืกืืืืืืื ืคืื ืงืึทื ืขืงืืื ื ืฆื ืื ืกืขืจืืืขืจ:
ldap_close($ds);
}
else echo "<h4>Unable to connect to LDAP server</h4>";
echo '<br><br><br></body></html>';}
ืืขืจ ืืขืงืข "main_table.html" ืคึฟืื ืืื ืขืืืืื ืืง ืืื ืึท ืคึผืฉืื HTML ืืืึทื ืืื ืืื ืงืก, ืืื ืงืืงื ืขืคึผืขืก ืืื ืืึธืก:
<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>
ืืืื ืืืื ืงืึธื ืืขืืคึผืก ืืืขืจ ืขืก ืื, ืืื ืืืขื ืืืื ืฆืืคืจืืื, ื ืืฆื ืขืก!
ืืืจ ืงืขื ืขื ืืืื ืคืจืืื ืจืขืืึทืืืจื ืขืก ืืื ืืืจ ืืืืื (ืคึฟืึทืจืืขืกืขืจื / ืขืจืืขืจ) ืืื ืคืึทืจืฉืคึผืจืืืื ืขืก ืืืจื ืงืืื ืืืื.
ืืื ืืืืง!
ืืงืืจ: www.habr.com