[ANASAYFA] [LINUX] [AVUÇİÇİ] [WINDOWS] [WEB] [INTERNET] [BİLGİSAYAR] [ANTİK BİLGİ] [ARAMA]
POPÜLERLER
htmlders
sayisal loto sans topu
elmekyonlen
TDGTW-WarXing
eposta yazim kurallari
BearShare Morpheus ve iMeshi Hizlandirma Yolu
proxy-hiz
komutlar
linux ile windowslari uyutmak
squidle2kat
yedekleme
PDA ve cep telefonu icin www sayfasi yapimi
İlker Fıçıcılar
Javascript ile html sayfasina gömülü bir eposta arama motoru yapımını anlatan bir yazı. Yazıda scripti otomatik hazırlamak için gereken unix shell scripti ile hazır bir örnek de yer alıyor.
Geçenlerde bir arkadaşın sayfasını hazırlarken bir "E-posta Adresi Arama" özelliğinin iyi olabileceğini düşündük. Sayfa Tripod'da yer aldığından, bu özelliği Tripod'un cgi servisiyle de yapabilmek mümkündü, ama veritabanındaki adresler fazla olmadığından daha basit bir çözüm olarak Javascript düşünülebilirdi.
Eposta araması, aranan isme karşılık gelen eposta adresi sayfanın yapısı bozulmadan ve yeni bir sayfa yüklenmeden küçük bir alanda belirse iyi olur dedik ve işe koyulduk.
Javascript'teki .indexOf yapısını kullanarak yaptığım çözümü, örnek olması için yalnızca birkac eposta adresiyle birlikte aşağıya alıyorum; kodun ardından ise birkaç açıklama, kodla birlikte kullanılacak form ve bu kodu oluşturmak için kullanılabilecek Unix shell scripti yer alıyor:
< !-- Eposta Adresi Aramak icin Javascript Kodu -->
< script language="JavaScript">
< !--
Ad = new Object();
Adr = new Object();
Ad[0] = "???";
Adr[0] = "adres bulunamadı";
Ad[1]="ayşe ayla şeker";
Adr[1]="ayla@neyahu.com";
Ad[2]="ilker ficicilar";
Adr[2]="ilkref@gocyties.com";
Ad[3]="zeliha zümrüt";
Adr[3]="zumrut@nedebiyat.nege.edu.tr";
var Adet = 3
function ara() {
var Kisi = 0;
var Durum = false;
var Nesne = document.forms[0].arayiver.value.toLowerCase();
if (Nesne != null) {
for ( var i=1; i < = Adet; i++) {
if (Ad[i].indexOf(Nesne) != -1) {
Durum=true;
Kisi = i;
}
}
document.forms[0].adres.value = Adr[Kisi];
}
}
// -->
< /script>
Görüldüğü gibi gayet basit bir şekilde, formdaki arayiver isimli
girdiyi önce küçük harfli bir hale dönüştürüyor, sonra da küçük
harflerden oluşmuş Ad dizisinde indexOf ile arıyoruz, bulduğumuzda
ise karşılık gelen en son e-posta adresini formdaki adres isimli
nesneye yazıyoruz. Bu adres isimli yer ister bir text alanı, ister
bir girdi kutucuğu isterseniz de bir "button" olabilir.
Biz sonuncusunu kullandık:
< html> < body bgcolor=white>
< meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-9">
< br>
< table border=1 cellspacing=0 cellpadding=0 width=200 align=top>
< tr> < td bgcolor=black> < center> < font color=white> E-posta Adresi Arama< /font>
< /center> < /td> < /tr> < tr> < td>
< form name="form1" action="javascript:ara()">
< table border="0">
< tr> < td> < font size="2"> Aranan Ad ve/veya Soyad:< br> < /font> < /td> < /tr>
< tr> < td> < font size="2">
< input type="text" name="arayiver" value="" onClick="ara()">
< /font> < /td>
< td> < font size="2"> < input type="button" value=" Ara " onClick="ara()">
< /font> < /td> < /tr>
< tr> < td> < font size="2">
< !--
Bu da farkli bir yontem ile adres gostermek icin (ama digeri iptal edilmeli)
< input type="text" size=30 name="adres" value="" onClick="ara()"> < br>
-->
< input type="button" name=adres value=" Adres Burada Belirecek " >
< /font> < /td> < /tr>
< /table>
< /form>
< /td> < /tr> < /table>
< br>
< /body> < /html>
Bu arada bir hatırlatma: eğer bu form sayfadaki ilk form değilse, koddaki forms[0] kısımları ona göre ayarlanmalı. Yani, ilk form ise forms[0], ikinci form ise forms[1], üçüncü ise forms[2] vs. kullanılacak.
Bir de, bu javascript kodunu faklı adreslerle yeniden oluşturmak kolay
olsun diye ufak bir Unix sh scripti ayarladım, aşağıdaki script
"arkeo.adr" dosyasına
adres ad soyad
şeklinde girilmiş bilgi satırlarını kullanarak
"mailara.js" dosyasını
oluşturuyor, bu ise yukarıdaki javascript kodunun farklı adreslerle
oluşturulmuş biçimi.
Aşağıdaki shell scriptiyle kullanilabilecek örnek "arkeo.adr" dosyası satır satır şunları içerebilir:
ilkref@geocities.com Ilker Ficicilar
ayse@neyahu.com Ayse Yilmaz
bilgi@nükleer.findthere.com Nukleer Enerji Karsiti Platform
root@agk.ekitap.gen.tr Gece Kusu - sistem yoneticisi
...
script ise bu:
#!/bin/sh
#
# e-posta arama javascripti ureteci
#
# ilker Ficicilar
# ilkref@gocyties.com
#
# adres ad soyad
# seklindeki girdileri kullanarak uygun javascript kodunu olusturur.
#
dosya=arkeo.adr
cat < < EOF1 > mailara.js
< !-- Eposta Adresi Aramak icin Javascript Kodu -->
< script language="JavaScript">
< !--
Ad = new Object();
Adr = new Object();
Ad[0] = "???";
Adr[0] = "adres bulunamadi";
EOF1
# Bu kisim veritabanini olusturuyor.
i=0
cat $dosya | while read qw
do
i=`expr $i + 1`
set $qw
adr=$1
shift
# buyuk harfleri kucuk harflere donusturuyoruz
ad=`echo $* | tr A-Z a-z`
echo "Ad["$i"]="$ad";"
echo "Adr["$i"]="$adr";"
done > > mailara.js
adet=`wc $dosya`
set $adet
adet=$1
echo > > mailara.js
echo "var Adet =" $adet > > mailara.js
echo > > mailara.js
# scriptin devami
cat < < EOF2 > > mailara.js
function ara() {
var Kisi = 0;
var Durum = false;
var Nesne = document.forms[0].arayiver.value.toLowerCase();
if (Nesne != null) {
for ( var i=1; i < = Adet; i++) {
if (Ad[i].indexOf(Nesne) != -1) {
Durum=true;
Kisi = i;
}
}
document.forms[0].adres.value = Adr[Kisi];
}
}
// -->
< /script>
EOF2
Bu shell scriptini örneğin "jsyap" adıyla kaydedip chmod u=rwx jsyap ile calıştırılabilir bir komut haline getirdikten sonra ./jsyap diyerek, daha önce "arkeo.adr" dosyasına yazdığınız adresler kullanılarak "mailara.js" dosyasının oluşturulmasını sağlayabilirsiniz. Daha sonra geriye yalnızca yukarıda verilen form örneğini ve "mailara.js" dosyasını birleştirerek bir HTML sayfasında kullanmak kalıyor.
Bir örnek sayfa olarak da buradaki epostaara.html dosyasını inceleyebilirsiniz.
Kolay gelsin
İlker Fıçıcılar
Mayıs 2000