#!/usr/bin/perl
#
# CGI AS - Personel Tel / e-Posta Rehberi Uygulamasi - Ana modul 

use DBI;
require "parametre.pl";
require "fonksiyonlar.pl";

print "Content-type: text/html\n\n";

print <<_SON_;
<head>
<meta http-equiv="Content-Language" content="tr">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>MySQL Uygulama Ornegi</title>
_SON_

css();      #  CSS Komutlarını gönder

print <<_SON_;

</head>
<body style="font-family: Arial">

<p align="center"><b>
<font size="4" color="#003300">CGI A.Ş.</font><br>
<font size="2" color="#003300">Telefon / e-Posta Rehberi</font></b></p>

<form method="POST" action="rehber.cgi">
<center>
<p>


<table width="550" border="0">
  <tr>
_SON_

@harfler = split("", "ABCÇDEFGHIİJKLMNOÖPQRSŞTUÜVWXYZ");
foreach $harf ( @harfler ) {
   print "<td align=\"center\"  bgcolor=\"#000000\">";
   print "<a href=\"rehber.cgi?harf=$harf\">";
   print "<font color=\"#ffffff\" size=\"2\"><b>$harf</b></font></a>";
   print "</td>\n";
}
#
# Tüm listeyi göstermek için "*" seçeneği
print "<td align=\"center\" bgcolor=\"#000000\">";
print "<a href=\"rehber.cgi?harf=*\">";
print "<font color=\"#ffffff\" size=\"2\"><b>*</b></a>";
print "</td>\n";

print <<_SON_;
     <td align=center bgcolor="#dddddd">
               <font size="2">
               <input type="text" size="10" name="aranan">  
               <input type="submit" value="Bul">
     </td>
  </tr>
</table>
<table width="550" cellpadding="2" border="0">
  <tr>
      <td bgcolor="#777777"><b><font size="2" color="ffffff">Soyadı, Adı</b></td>
      <td bgcolor="#777777"><b><font size="2" color="ffffff">Tel</b></td>
      <td bgcolor="#777777"><b><font size="2" color="ffffff">e-Posta</b></td>
      <td bgcolor="#777777"><b><font size="2" color="ffffff">Görevi</td>
      <td bgcolor="#777777"><b><font size="2" color="ffffff">İşyeri</b></td>
_SON_

# Eger kullanici yetkili bir bilgisayardan baglanmissa "Edit" butonunu
# goster.
# Yetkili bilgisayarlarin IP numaralari programin  parametrelerinin
# belirlendigi "parametre.pl" dosyasinda tanimlaniyor.
#
$yetki = 0;   # kullanicinin yetkisiz oldugunu var say

foreach $ip (@yetkili) {
   $yetki = 1 if ($ENV{'REMOTE_ADDR'}=~ /^$ip/);
}

if ($yetki) {
   print "<td bgcolor=\"#777777\" align=\"center\">";
   print "<b><font size=\"2\" color=\"#ffffff\">E</b></td>";
}

print "</tr>\n";

# MySQL sunucusuyla baglantiyi kur
$dbh = DBI->connect( $veri_kaynagi, $mysql_kullanicisi, $sifre)
       or hata("$veri_kaynagi veri tabani ile baglanti kurulamadi \n");
#
#
# Veri tabanında kaç kayıt olduğunu öğren
$sql = "select count(*) from personel;";
$sth = $dbh -> prepare($sql);
$sth -> execute() or hata("$sql komutu çalıştırılamadı!<p>\n");
($kayit_sayisi) = $sth -> fetchrow_array();

# SQL komutunu olustur. 
# Eğer hiç CGI parametresi yoksa ilk kez çalışıyor demektir, o zaman
# sadece ilk 10 kaydi goster
#
# Eğer "harf=A" gibi bir CGI parametresi varsa sadece soyadı belirtilen
# harfle başlayan personelin kayıtlarını göster

# Eğer "aranan=text" gibi bir parametre varsa kaydının herhangi bir
# yerinde "text" geçek kayıtları göster.

%FORM_DEGERLERI = form_verilerini_al();
if (!$FORM_DEGERLERI{'harf'} && !$FORM_DEGERLERI{'aranan'}) {
    $sql  = "select kayit_no,soyad,ad,tel,eposta,gorev,isyeri ";
    $sql .= "       from personel ";
    $sql .= "order by soyad,ad limit $ilk_sayfa_kayit_sayisi;";
    $gosterilen_kayit_sayisi = $ilk_sayfa_kayit_sayisi;
}

if ($FORM_DEGERLERI{'harf'}) {
   $sql  = "select count(*) from personel ";
   #
   # Eğer harf olarak "*" seçildiyse "where" koşulu olmayacak, tüm
   # kayıtlar listelenecek

   if ($FORM_DEGERLERI{'harf'} ne "*") {
      $sql .= " where soyad like ";
      $sql .= "\"$FORM_DEGERLERI{'harf'}%\" ";
   }
   $sql .= ";";
   
   $sth = $dbh -> prepare($sql);
   $sth -> execute() or hata ("$sql komutu çalıştırılamadı!<p>\n");
   ($gosterilen_kayit_sayisi) = $sth -> fetchrow_array();
   #
   # Listeleme için "harf" ile başlayan kayıtları seçen SQL
   # komutunu hazırla
   $sql  = "select kayit_no,soyad,ad,tel,eposta,gorev,isyeri ";
   $sql .= "       from personel ";
   #
   # Eğer harf olarak "*" seçildiyse "where" koşulu olmayacak, tüm
   # klayıtlar listelenecek

   if ($FORM_DEGERLERI{'harf'} ne "*") {
      $sql .= " where soyad like ";
      $sql .= "\"$FORM_DEGERLERI{'harf'}%\" ";
   }
   $sql .= " order by soyad,ad;";
}

if ($FORM_DEGERLERI{'aranan'}) {
   $sql  = "select count(*) from personel where ";
   $sql .= "CONCAT(soyad,\" \",ad,\" \",tel,\" \",eposta,";
   $sql .= "\" \",gorev,\" \",isyeri) like ";
   $sql .= "\"\%$FORM_DEGERLERI{'aranan'}%\";";
   $sth = $dbh -> prepare($sql);
   $sth -> execute() or hata ("$sql komutu çalıştırılamadı!<p>\n");
   ($gosterilen_kayit_sayisi) = $sth -> fetchrow_array();
   #
   # Listeleme için içinde "aranan" geçen kayıtları seçen SQL
   # komutunu hazırla
   $sql  = "select kayit_no,soyad,ad,tel,eposta,gorev,isyeri ";
   $sql .= "       from personel ";
   $sql .= " where ";
   $sql .= "CONCAT(soyad,\" \",ad,\" \",tel,\" \",eposta,";
   $sql .= "\" \",gorev,\" \",isyeri) like ";
   $sql .= "\"\%$FORM_DEGERLERI{'aranan'}%\" order by soyad, ad;";
}

# SQL komutunu on hazirliga gonder
$sth = $dbh -> prepare($sql);

# SQL komutunu calistir.
$sth -> execute() or hata("$sql komutu çalıştırılamadı!<p>\n");

# SQL komutu sonuclarini goruntule
$zebra = 1;
while (($kayit_no,
        $soyad,
	$ad,
	$tel,
	$eposta,
	$gorev,
	$isyeri) = $sth -> fetchrow_array()) {
        
        $renk = "#ffffff";
	$renk = "#eeeeee" if ($zebra < 0);

        print "<tr bgcolor=\"$renk\">
              <td><font size=\"2\">$soyad, $ad</td>
              <td><font size=\"2\">$tel</td>
              <td><font size=\"2\"><a href=\"mailto:$eposta\">$eposta</a></td>
              <td><font size=\"2\">$gorev</td>
              <td><font size=\"2\">$isyeri</td>\n";
    
        
	#	
	# Eğer kullanıcı yetkili ise kayıt edebilmesi için
	# "Edit" butonu göster.
	if ($yetki) {
           print " <td><a href=\"edit.cgi?kayit_no=$kayit_no\">";
           print "              <img src=\"/resimler/edit.gif\"";
	   print "                   border=\"0\">";
           print      "</a>";
	   print  "</td>\n";
        }

       print "</tr>\n";
        
       $zebra = $zebra * (-1);
}

print "</table>\n";
print "<center><font size=\"2\">";
if ( $yetki ) {
   print "<a href=\"edit.cgi?islem=Yeni\">Yeni Kayıt Ekle</a><br>\n";
}
print "$gosterilen_kayit_sayisi / $kayit_sayisi kayıt";
print "</center>\n";
print "</form>\n";

print "</body> </html>\n";

exit;