Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ WEB адрСсный справочник PHP + LDAP

Π’Π°ΠΊ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) большой ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… офисов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎΠ΅ количСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ВсС офисы соСдинСны Π² ΠΎΠ΄Π½Ρƒ ΡΠ΅Ρ‚ΡŒ с ΠΎΠ±Ρ‰ΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ офис Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ Π² Active Directory (Π΄Π°Π»Π΅Π΅ ΠΏΠΎ тСксту AD) ΠΊΠ°ΠΊ Organization Unit (OU), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΆΠ΅ заводились ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ.

НСобходимо Π±Ρ‹Π»ΠΎ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстро ΠΈ Π±Π΅Π· особСнных усилий ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ сотрудника ΠΈΠ· AD, Π° систСмных администраторов ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ Ρ€ΡƒΡ‚ΠΈΠ½Ρ‹ рСдактирования тСкстового Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ³Ρ€Π°Π» Ρ€ΠΎΠ»ΡŒ адрСсной ΠΊΠ½ΠΈΠ³ΠΈ.

Π“ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… подходящих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ нашлось, поэтому ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ всё своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΈ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ.

Начнём с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, это просто β€” ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ справочник Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ доступСн всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π΄ΠΎΠΌΠ΅Π½Π° посрСдством Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡƒΠΌ это PHP Π² связкС с ldap, ΠΈΡ… ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠΌ плюсом использования PHP я ΡΡ‡ΠΈΡ‚Π°ΡŽ Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ простоту β€” любой Ρ…ΠΎΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ систСмный администратор смоТСт внСсти, ΠΏΡ€ΠΈ нСобходимости, Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ Π² ΠΊΠΎΠ΄, Π½Π΅ особСнно Π½Π°ΠΏΡ€ΡΠ³Π°ΡΡΡŒ.

Π˜Ρ‚Π°ΠΊ, Π½Π°Ρ‡Π½Ρ‘ΠΌ. для Π½Π°Ρ‡Π°Π»Π° Π·Π°Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π΄ΠΎΠΌΠ΅Π½Ρƒ:

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΌ OU Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π”Π΅Π»Π°Ρ‚ΡŒ это Π±ΡƒΠ΄Π΅ΠΌ пСрСхватывая значСния ΠΈΠ· $_GET[‘place’]. НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ адрСсу server/index.php?place=first, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $place Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ first.

$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, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если Π½Π΅ нашлось совпадСний, пСрСчислСнных Π² Β«switch-caseΒ», Ρ‚ΠΎ $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/ '>

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ стили для Π±ΠΎΠ»Π΅Π΅ приятного внСшнСго Π²ΠΈΠ΄Π° (Π΄Π°, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ css-Ρ„Π°ΠΉΠ», ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вСрсии 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>";

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΡ€ΠΈ этом, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ слуТСбныС) ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ записи, просто прописываСм Β«hideΒ» Π² ΠΏΠΎΠ»Π΅ Β«ΠΊΠΎΠΌΠ½Π°Ρ‚Π°Β» Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² 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>

Если ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ β€” я Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ!

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ свободно Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ (ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ/ΡƒΡ…ΡƒΠ΄ΡˆΠ°Ρ‚ΡŒ) ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

Бпасибо за вниманиС!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com