<?
//-- Telefon Rehberi --
// common.php
// Ortak olarak kullanilacak fonksiyonlar ve konfigurasyon opsiyonlari icerir.
// Bu dosya webden okunamamali veya cagrilamamali
// Yazan: Mustafa Hadi Dilek, Subat 2000

  
include("conf.php"); // Konfigurasyon dosyasi

  
define("_CRLF","\\n");
  
define("_QUOTE","\"");

//-----------------------------------
//--- Herhangi LDAP client yaziliminda bulunan ldapmodify programini kullanarak
//--- LDAP entrysinde degisiklik yapar
//--- Input parametreleri:
//----- Degisikligi yapmaya yetkili kullaniciin (dn) bilgisi (admin veya kullanicinin kendisi olabilir),
//----- Degisikligi yapmaya yetkili kullaniciin LDAP sunucusundaki sifresi,
//----- Uzerinde degisiklik yapilacak kullanicinin distinguished name (dn) bilgisi,
//----- Degisiklikleri iceren bir hash array
//--- Burada bir modify stringi, standart ldif formatinda olusturulur.
//--- Bu format 'man ldapmodify' ile gorulebilir.
//--- Veya Michigan Universitesinin ldap manual web sayfasinda ayrintili olarak var.
//--- www.umich.edu dan aranabilir.

  
function my_ldap_modify($auth_dn$auth_pwd$dn$changes) {

    
$modifystr _QUOTE.
                 
"dn: ".$dn._CRLF.
                 
"changetype: modify"._CRLF;

    while(list(
$key,$val)=each($changes)) {
      
$modifystr $modifystr.
                   
"replace: ".$key._CRLF.
                   
$key.": ".$val._CRLF.
                   
"-"._CRLF;
    }

    
$modifystr $modifystr._QUOTE;

    
exec("printf ".$modifystr." | "._LDAP_DIR._LDAP_MODIFY." -h "._LDAP_HOST." -p "._LDAP_PORT." -D ".$auth_dn." -w ".$auth_pwd);
  }
//-----------------------------------
//--- Sayfalarin ust tarafinda yer alacak kismi olusturur:
  
function CommonHeader($Title) {
?>
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-9">
  <LINK HREF="http://www.ulakbim.gov.tr/css/extranetGenel.css" REL="stylesheet" TYPE="text/css">
  <? include("rehber.css"); ?>  <!-- Stil dosyasi -->
  <TITLE><? echo $Title ?></TITLE>
</HEAD>

<BODY BGCOLOR="White">
  <DIV CLASS="title"><? echo $Title ?></DIV>
<?
  
}
//-----------------------------------
//--- Sayfalarin alt tarafinda yer alacak kismi olusturur:
//--- Input parametresi anahtari html linki; degeri ise linke ait metin olan associative arraydir
 
function CommonFooter($Footer) {
  if (!empty(
$Footer) && is_array($Footer)) {
    echo 
"\n<DIV CLASS=\"footer\">";
    
reset($Footer);
    while(list(
$Link$Text)=each($Footer)) {
      echo 
"\n<A HREF=\"$Link\">[$Text]</A>&nbsp;";
    }
    echo 
"\n</DIV>";
  }

   echo 
"\n</BODY>\n";
   echo 
"</HTML>\n";
 }
//-----------------------------------
// URL ve mail adreslerini link olarak basar. Dikkatli kullanilmali
 
function FormatLinks($str) {
   
$str preg_replace("/(\w+):\/\/([^ ]+)/""<A HREF=\"\\1://\\2\">\\1://\\2</A>"$str);  // her tur URL icin
   
$str preg_replace("/(\w+)@([^ ]+)/""<A HREF=\"mailto:\\1@\\2\">\\1@\\2</A>"$str);   // mail icin
   
return $str;
 }
//-----------------------------------
// Verilen LDAP attribute'unu basilabilecek halde alir:
 
function GetAttr($attr) {
   if (
is_array($attr)) $outstr trim(@$attr[0]);
   else 
$outstr trim($attr);

   return (
$outstr != "") ? $outstr "&nbsp;";
}
//-----------------------------------
// Remote makine internal networkumuzun icinde ise 'True' dondurur.
 
function ValidateHOST() {
   if (
preg_match("/^"._INTERNAL_NET."\.[0-9]+$/"getenv("REMOTE_ADDR")))
     return 
True;
   else
     return 
True;
 }
?>