เชตเซ‡เชฌ เชเชกเซเชฐเซ‡เชธ เชกเชพเชฏเชฐเซ‡เช•เซเชŸเชฐเซ€ PHP + LDAP เชฌเชจเชพเชตเชตเซ€

เชเชตเซเช‚ เชฌเชจเซเชฏเซเช‚ เช•เซ‡ (เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚) เชฎเซ‹เชŸเซ€ เชเซเช‚เชฌเซ‡เชถเชฎเชพเช‚ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ€ เชฏเซ‹เช—เซเชฏ เชธเช‚เช–เซเชฏเชพ เชธเชพเชฅเซ‡ เช˜เชฃเซ€ เชฆเซ‚เชฐเชธเซเชฅ เช“เชซเชฟเชธเซ‹ เชนเชคเซ€. เชฌเชงเซ€ เช‘เชซเชฟเชธเซ‹ เชเช• เชธเชพเชฎเชพเชจเซเชฏ เชกเซ‹เชฎเซ‡เชจ เชธเชพเชฅเซ‡ เชเช• เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡, เชฆเชฐเซ‡เช• เช‘เชซเชฟเชธเชจเซ‡ เช‘เชฐเซเช—เซ‡เชจเชพเช‡เชเซ‡เชถเชจ เชฏเซเชจเชฟเชŸ (OU) เชคเชฐเซ€เช•เซ‡ เชธเช•เซเชฐเชฟเชฏ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ (เชคเซเชฏเชพเชฐเชฌเชพเชฆ AD เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡) เชฎเชพเช‚ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชœเซ‡เชฎเชพเช‚ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ.

เชเชกเซเชฐเซ‡เชธ เชฌเซเช•เชจเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชญเชœเชตเชคเซ€ เชŸเซ‡เช•เซเชธเซเชŸ เชซเชพเช‡เชฒเชจเซ‡ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชจเชฟเชฏเชฎเชฟเชคเชคเชพเชฎเชพเช‚เชฅเซ€ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชเชกเซ€เชฎเชพเช‚เชฅเซ€ เชœเชฐเซ‚เชฐเซ€ เช•เชฐเซเชฎเชšเชพเชฐเซ€เชจเซ€ เชธเช‚เชชเชฐเซเช• เชฎเชพเชนเชฟเชคเซ€ เชเชกเชชเชฅเซ€ เช…เชจเซ‡ เชตเชฟเชจเชพ เชชเซเชฐเชฏเชพเชธเซ‡ เชฎเซ‡เชณเชตเชตเชพเชจเซ€ เชคเช• เช†เชชเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เชนเชคเซ€.

เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชนเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชคเซˆเชฏเชพเชฐ เชฏเซ‹เช—เซเชฏ เชตเชฟเช•เชฒเซเชชเซ‹ เชจ เชนเชคเชพ, เชคเซ‡เชฅเซ€ เชฎเชพเชฐเซ‡ เชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชนเชพเชฅ เช…เชจเซ‡ เชฎเชพเชฅเชพเชฅเซ€ เชฌเชงเซเช‚ เช•เชฐเชตเซเช‚ เชชเชกเซเชฏเซเช‚.

เชšเชพเชฒเซ‹ เช เชนเช•เซ€เช•เชคเชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ€เช เช•เซ‡ เชธเซŒ เชชเซเชฐเชฅเชฎ เชคเชฎเชพเชฐเซ‡ เชถเซเช‚ เชตเชพเชชเชฐเชตเซเช‚ เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชคเซ‡ เชธเชฐเชณ เช›เซ‡ - เช…เช‚เชคเชฟเชฎ เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเช•เชพ เชกเซ‹เชฎเซ‡เชจเชจเชพ เชคเชฎเชพเชฎ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชฌเซเชฐเชพเช‰เชเชฐ เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฒเชฌเซเชง เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช. เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เชœเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เช›เซ‡ ldap เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃเชฎเชพเช‚ PHP, เช…เชจเซ‡ เช…เชฎเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚. เชนเซเช‚ PHP เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเชพ เชฎเซ‹เชŸเชพ เชซเชพเชฏเชฆเชพเชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชชเซ‡เช•เซเชท เชธเชฐเชณเชคเชพ เชฎเชพเชจเซเช‚ เช›เซเช‚ - เชฅเซ‹เชกเซ€ เชชเชฃ เชธเชฎเชœ เชงเชฐเชพเชตเชคเซ‹ เช•เซ‹เชˆเชชเชฃ เชธเชฟเชธเซเชŸเชฎ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐ, เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชคเชพเชฃ เชตเชฟเชจเชพ, เช•เซ‹เชกเชฎเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเซ€ เชถเช•เชถเซ‡.

เชคเซ‹, เชšเชพเชฒเซ‹ เชถเชฐเซ‚ เช•เชฐเซ€เช. เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เชกเซ‹เชฎเซ‡เชจ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชธเซ‡เชŸ เช•เชฐเซ€เช:

$srv ="SERVER";
$srv_domain ="DOMAIN.COM";
$srv_login ="USERNAME@".$srv_domain; 
$srv_password ="PASSWORD";

เช†เช—เชณเชจเซ‹ เชฎเซเชฆเซเชฆเซ‹ เช เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เช•เชฏเชพ OU เชฎเชพเช‚ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชถเซ‹เชงเซ€เชถเซเช‚. เช…เชฎเซ‡ $_GET['place'] เชฎเชพเช‚เชฅเซ€ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เช…เชŸเช•เชพเชตเซ€เชจเซ‡ เช† เช•เชฐเซ€เชถเซเช‚. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเชฐเชจเชพเชฎเชพเช‚ เชชเชฐ เชœเชพเชฏ เช›เซ‡ server/index.php?place=เชชเซเชฐเชฅเชฎ, เชชเช›เซ€ เชšเชฒ $เชธเซเชฅเชณ เชฎเซ‚เชฒเซเชฏ เช…เชธเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชชเซเชฐเชฅเชฎ.

$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";

เชšเชฒ $doscript เชฎเซ‚เชฒเซเชฏ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ - เชญเชฒเซ‡ เช…เชฎเซ‡ OU เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช…เชฎเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชถเซ‹เชงเซ€เชถเซเช‚ เช•เซ‡ เชจเชนเซ€เช‚. เชœเซ‹ โ€œเชธเซเชตเชฟเชš-เช•เซ‡เชธโ€ เชฎเชพเช‚ เช•เซ‹เชˆ เชฎเซ‡เชณ เชธเซ‚เชšเชฟเชฌเชฆเซเชง เชจเชฅเซ€, เชคเซ‹ $doscript=false, เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ‹ เชฎเซเช–เซเชฏ เชญเชพเช— เช…เชฎเชฒเชฎเชพเช‚ เช†เชตเชถเซ‡ เชจเชนเซ€เช‚, เช…เชจเซ‡ เชชเซเชฐเชพเชฐเช‚เชญ เชชเซƒเชทเซเช  โ€œmain_table.htmlโ€ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชถเซ‡ (เชนเซเช‚ เชคเชฎเชจเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชœเชฃเชพเชตเซ€เชถ. เชคเซ‡ เช–เซ‚เชฌ เชœ เช…เช‚เชคเซ‡).

เชœเซ‹ เช†เชชเชฃเซ‡ OU เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡, เชคเซ‹ เชชเช›เซ€ เช…เชฎเซ‡ เช†เช—เชณเชจเซ€ เช•เซเชฐเชฟเชฏเชพเช“ เชชเชฐ เช†เช—เชณ เชตเชงเซ€เช เช›เซ€เช: เช…เชฎเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชชเซƒเชทเซเช  เชฆเซ‹เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€เช เช›เซ€เช:

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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹