[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна помощь разобраться с кодом
vladsn07
Имеется код index.php как тут
http://www.hesk.com/demo/index.php?a=add

Сам файл лежит тут
http://yadi.sk/d/7m3e5T4sBufvx


Хочу собрать всю необходимую информацию по пользователю, компьютеру и автоматически при открывании этой странички вставить в формы.
Скрипт получения необходимы данных имеется и полностью он рабочий. Т.е. этим скриптом можно получить Ip адрес, а уже имея Ip адрес получить имя компьютера через dns, по имени компьютера получить кто сейчас залогинен на этом компьютере (берется из базы данных mssql) и получаю все необходимую инфу о пользователе (ФИО, mail и т.д.)

Сам скрипт получения данных такой

<?php
include ("mssql_config.php");
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ip_address = getRealIpAddr();
$hostname = gethostbyaddr ($ip_address);

$sql= "select u.employeeid , replace(u.username,'***\','') as username, p.name as compname, l.date, p.inventarynumber as invnumber from userlog l, userid u, pc p where l.id in (select MAX(id) from userlog group by pc_id) and l.user_id = u.id and l.pc_id = p.id and l.status = '0' and p.name=replace('".$hostname."','.***.local','') order by l.date desc";
$sql2 = mssql_query($sql);
$sql1=mssql_fetch_array($sql2);

$ldapServer = '192.168.0.1';
$ldapUserToAuth = 'Test01@*.local'; // Любая активная учётка в домене
$ldapUserPasswd = '***';
$ldapBase = 'dc=***, dc=local'; // Откуда начинать поиск (тут во всём домене)
$ldapFilter_user = '(&(objectclass=user)(objectcategory=Person)(samaccountname='. $sql1[1].'))';
$justthese_user = array('samaccountname','displayname','mail', 'department', 'employeeid', 'telephonenumber'); // имена полей, которые необходимо вытащить
$ldapFilter_comp = '(&(objectclass=computer)(cn='. $sql1[2].'))';
$justthese_comp = array('cn','description');

// Connecting to LDAP
$ldapconn = ldap_connect($ldapServer)
or die("Could not connect to $ldapServer");

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

// Авторизация
$ldapbind = ldap_bind($ldapconn, $ldapUserToAuth, $ldapUserPasswd);

$sr_user=ldap_search($ldapconn, $ldapBase, $ldapFilter_user, $justthese_user);
$info_user = ldap_get_entries($ldapconn, $sr_user);

$sr_comp=ldap_search($ldapconn, $ldapBase, $ldapFilter_comp, $justthese_comp);
$info_comp = ldap_get_entries($ldapconn, $sr_comp);



for ($i=0, $c=$info_user['count']; $i<$c; $i++)
{
echo $i. ' ----> ' . $info_user[$i]['displayname'][0] . ' ----> ' . $info_user[$i]['samaccountname'][0];
if (isset($info_user[$i]['mail'][0]))
echo ' ----> '.$info_user[$i]['mail'][0];
if (isset($info_user[$i]['telephonenumber'][0]))
echo ' ----> '.$info_user[$i]['telephonenumber'][0];
if (isset($info_user[$i]['department'][0]))
echo ' ----> '.$info_user[$i]['department'][0];
echo ' </br>' ;
}
//for ($i=0, $c=count($sql1); $i<$c; $i++)
//echo $sql1[2];

for ($i=0, $c=$info_comp['count']; $i<$c; $i++)
{
echo $i. ' ----> ' .$info_comp[$i]['cn'][0] . ' ----> ';
if (isset($info_comp[$i]['description'][0]))
echo ' ----> '.$info_comp[$i]['description'][0];
}
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.