Burada anlatılanlar, tarayıcıda HTML biçimleriyle görüntülenen sunucuda php ile yazılan şöyleşi sistemini oluşturur. Örnek uygulama sitede kullanıma sunulmuştur. Buradaki içerik "Chatty" yazılım parçalarını temel alarak hazırlanmıştır.
KONULAR
HTML biçimleri ve javascript kullanarak şöyleşi hazırlamak.
"Chatty" iskelet yapısıyla sorunu kolayca çözmüştür. Biz burada tarayıcıların yeni olanaklarını göz önünde bulundurarak bir sayfa içinde değişik bölümlerin değişik sunucu programlar tarafından kullanılmasını ele aldık.
Veri Tabanı Tabloları
Kullanıcılar
Sistemden yararlanacak kullanıcılar ve kullanıcıların mesajları "Chatty" için kullanılan veri tabanının aynısıdır. Değişiklik yapılmamıştır. Ama ileride kullanıcılar "Aybim Kullanıcı Sistemi" içinde yeniden düzenlenecektir.
#
# 'users' (kullanıcılar) tablosu yapısı
#
DROP TABLE IF EXISTS users;
CREATE TABLE users(
id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password VARCHAR(255),
email VARCHAR(255),
active VARCHAR(1) DEFAULT 'n',
sent_on TIMESTAMP,
UNIQUE(username)
);
Mesajlar
Her kullanıcı mesaj gönderdiğinde ya da yeni bir kullanıcı sisteme giriş yaptığında buradaki tabloya bilgi girişi olur. Tablodaki eski bilgiler otomatik silinir. Mesajlar tablonun içeriğinden de anlaşılacağı gibi en çok 256 byte olur.
#
# 'msg' (mesajlar) tablosu yapısı
#
DROP TABLE IF EXISTS msg;
CREATE TABLE msg(
id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255),
msg VARCHAR(255),
color VARCHAR(1),
sent_on TIMESTAMP
);
Söyleşide önemli parçalar
Söyleşimiz dört temel parçadan oluşur. Bu parçaların kullanımı aşağıdaki başlıklarda anlatılmıştır.
Giriş ekranı
Giriş ekranı iki ayrı parçadan oluşur. Birincisi kullanıcı olmamış ve yeni tanımlama yapmak isteyenler içindir. İkincisi ise sistemde tanımı olan kullanıcılar içindir. Kullanıcı girişlerinde fazla bilgi istemek Internet kullanıcılarının pek sevmediği durumdur. Bu nedenle ilk üyelikte en az bilgiyi almak gerekir. Örnek sistemde yeterli bilgi kullanıcı kod, şifresi ve e-posta adresidir. Daha sonra kullanıcı kendisi hakkında başka bilgiler girebilir, sistemde resmini tanıtım için kullanabilir... Bu konuda daha geniş biçimde "Aybim Üyelik Sistemi" altında ele alınacaktır (şu anda kullanıma açılmadı)...
Söyleşi ekranı
Söyleşi ekranı üç ana bölümden oluşur. Birincisi eski mesajların görüntülendiği bölüm, ikincisi sisteme giriş yapan kullanıcıların listelendiği bölüm, sonuncusu ise mesaj giriş bölümüdür. Kullanıcı giriş yaptığında herkesin bulunduğu "Söyleşi Odasına" girmiş olur. İsteyen kullanıcılar sistemdeki kullanıcıları seçerek ayrı bir "Söyleşi ortamı" oluşturabilirler. Burada herşey HTML biçimlerinden oluştuğu için aralıklarla sunucu programlara erişim sağlanarak bilgi güncellemesi yapılır. Bu tür işlemler aşağıda "Zamanlanmış İşlemler" olarak anlatılmıştır.
Zamanlanmış işlemler
Giriş yapan her kullanıcı o andan başlayarak kullanıcıların adlarını almak için sunucudaki users.php kodlamasını çalıştırır. Bu işlemin zamanlanması sistem yoğunluğuna göre değişir. Artan mesaj ve kullanıcı sayısına göre zaman aralığı azaltılır ya da çolağtılır. Aynı anda mesaj tarihçesine söyleşilerin kopyaları yazdırılır. Böylece kullanıcı söyleşi için mesaj göndermese bile gönderilen mesajları görebilir (talk.php sunucu programı aralıklarla bu amaç için kullanılır).
Kullanıcılar
Sisteme giriş yapan her kullanıcı buradaki listeye eklenir. Kullanıcılar sistemde etkin olduklarında listede yer alırlar. Liste aralıklarla sunucu programı tarafından güncellenir. HTML içindaki zaman ayarlı bir Javascript bu amaç için kullanılır.
Yazılan mesajlar
Kullanıcı bir mesaj gönderdiğinde mesaj hemen mesaj listesinde görüntülenir. Aynı anda sunucu veri tabanına işlenir. Sonra talk.php diğer kullanıcılara bu mesajı gönderip listede görünmesini sağlar.
Zamanlanmış işlemlerde tarayıcıların DOM ve iframe gibi yeni biçim çeşitleri kullanılmıştır. Eski tarayıcılar görüntü elde edemeyebilir ya da tarayıcıları hata verebilir.
Mesaj gönderme
Kullanıcı mesaj gönderirken yazılanlardan sonra Enter tuşunu kullanabildiği gibi düğmeleri (Gönderme düğmesi gibi) de kullanma olanağı vardır.