#!/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;