Mesajlaşma Sistemi Gönderen: The_SPeeDBoY Tarih: 10 October 2007 04:25:16
İlk makalemi yazdığım için çok heyecanlıyım öncelikle bunu belirtmeliyim. Bu makaleyi yazmam için benden bilgilerini ve desteklerini esirgemeyen başta
@Fatih hocam olmak üzere
@cemaliozan hocama
@kocatürk hocama ve
@Akrep hocama teşekkürü bir borç bilirim.
Makalemin konusu Asp.Net ile geliştirilen bir Web sitesinde kullanıcıların birbirine mesaj göndermesi gönderilen mesajların okunması ile ilgili.
İlk olarak mesajın kullanıcıya gönderilmesini inceleyelim.
Eğer gönderilecek kişi, konu ya da mesajın içeriği boş ise kullanıcının bu bilgileri tam olarak doldurması yönünde bir uyarı ile işleme başlanıyor. Daha sonra oluşturulan sorgu ile yazılan kullanıcı adının olup olmadığı kontrol ediliyor. Eğer böyle bir kullanıcı yok ise uyarı verip işlem sonlanıyor. Değilse yeni bir seçim sorgusu oluşturup
TextBox_gonderilecek_kisi.Text de bulunan kullanıcının
idno’su
gonderilen_kisi olarak tanımlanan integer a atanıyor. Daha sonra
Session['kulnom'] ‘da saklanan giriş yapan kullanıcının idno su ile mesajın gönderileceği
gonderilen_kisi değerinin eşit olması durumunda kendinize mesaj gönderemezsiniz şeklinde kullanıcı uyarılıyor. Eğer şartların tümü mesaj göndermeye uygun hale gelirse mesajlar veritabanına
INSERT INTO yordamı ile kaydediliyor.
Peki bu ikisi ne işe yarıyor;
x:=gond_kisi.ToString : Bunu zaten biliyoruz. Gönderilecek kişinin idnosu.
y:=Session['mgonderen']: Bu ise mesajı gönderen kişinin kullanıcı adının saklandığı bir oturum ataması. Bunu da gönderen olarak mesajlar tablomuza kaydediyoruz. Gönderdiğimiz kişi mesajın kimden geldiğini bilsin diye.
Son olarak Kullanıcı’ya mesajının başarı ile mesajınız gönderildi uyarısını verip mesajı tabloya kaydettiriyoruz.
Kodlama dili (delphi)
procedure TWebForm1.mgonder_Click(sender: System.Object; e: System.EventArgs);
var
MyConnect:MySqlConnection;
MyCommand:MySqlCommand;
gonderilen_kisi,i:integer;
sorgu,x,y:string;
begin
if (TextBox_gonderilecek_kisi.Text='') or(TextBox_konu.Text='') or (TextBox_mesaj.Text='') then
begin
Response.Write('<script language="javascript"> alert('+#39+'Giriş İçin TÜm Alanları Doldurunuz!'+#39+'); </script>');
Exit;
end;
MyConnect:=MySqlConnection.Create('Server=localhost;Database=yegenim;uid=root;pwd=123123;');
MyConnect.Open;
// bir seçim sorgusu oluşturalım. ihtiyacımız olan bir Command nesnesi
MyCommand := MySqlCommand.Create ( 'SELECT Count(*) as Toplam FROM bilgiler where kuladi='+#39+ TextBox_gonderilecek_kisi.Text+#39,MyConnect);
// ve komutu ExecuteReader ile işletelim. Dönüş değeri bir DataReader nesnesi.
i:=Convert.ToInt32(MyCommand.ExecuteScalar);
MyConnect.Close;
if i<1 then
Begin
label_durum.Text := 'Böyle Bir Kullanıcı Bulunamadı';
end
else
begin
MyConnect.ConnectionString:='Server=localhost;Database=yegenim;uid=root;pwd=123123;';
MyConnect.Open;
// bir seçim sorgusu oluşturalım. Gerekli olan bir Command nesnesi
MyCommand.CommandText := 'SELECT Max(idno) as Toplam FROM bilgiler where kuladi='+#39+ TextBox_gonderilecek_kisi.Text+#39;
MyCommand.Connection :=MyConnect;
// Komutu ExecuteReader ile işletelim. Dönüş değeri bir DataReader nesnesi.
gonderilen_kisi:=Convert.ToInt32(MyCommand.ExecuteScalar);
if Session['kulnom'].ToString = gond_kisi.ToString then
begin
label_durum.Text:='Kendinize Mesaj Gönderemezsiniz!';
end
else
begin
x:=gond_kisi.ToString;
y:=Session['mgonderen'].ToString;
sorgu:='INSERT INTO mesajlar (kime_ait, gonderen, mesaj_baslik, mesaj_icerik) VALUES ("'+x+'","'+y+'","'+TextBox_konu.Text+'","'+TextBox_mesaj.Text+'")';
MyCommand.CommandText:=sorgu;
MyCommand.ExecuteNonQuery;
label_durum.Text:='Mesajınız Başarı İle Gönderildi';
end;
end;
MyConnect.Close;
end;
İkinci kısım ise gönderilen mesajların gönderilen kişilere gösterilmesi. Gönderilen kişilere diyorum çünkü bütün mesajlar aynı veri tabanında saklanıyor. Ve hatırlarsanız bunların ayırt edilmesi için
gonderilen_kisi diye bir tanımlama yapıp mesajlar veritabanımıza kaydettirmiştik. Şimdi ise bunun çalışma mantığına bakalım. Bu ise göndermeye göre çok daha basit bir yapıya sahip. Veritabanımızdan
kime_aitAlanına kaydedilen mesajlardan sessiondaki bulunan
idnoya göre sorgulama yapıyoruz çünkü diğer mesajları üyelerin görmesi işimize gelmez. Böylece kim giriş yaparsa mesaj Oku bölümünde kendi mesajlarını görüntülüyor. Tabi admin için özel bir durum oluşturup tamamını görüntülettirmek sizin elinizde

Tabi
Page_Load olayında kullanıcının session değerinin nill yada 0 olması durumunda response.redirect ile kullanıcıyı anasayfaya postalamayı size bırakıyorum

.
Kodlama dili (delphi)
procedure TWebForm1.Button_mesajoku_Click(sender: System.Object; e: System.EventArgs);
begin
baglan( 'SELECT * FROM mesajlar where kime_ait='+Session['kulnom'].ToString);
// PostBack değilse verilerimizi bağlıyoruz
if not (IsPostBack) then
DataGrid1.DataBind;
end;
Üst bölümde yer alan ve bağlantımızı sağlayan
baglan procedure’ü
Kodlama dili (delphi)
procedure TWebForm1.baglan(str: String);
var
MyConnect:MySqlConnection;
MyAdapter:MySqlDataAdapter;
MyDataset:DataSet;
begin
MyConnect:=MySqlConnection.Create('Server=localhost;Database=yegenim;uid=root;pwd=123123;');
MyConnect.Open;
MyAdapter:=MySqlDataAdapter.Create(str,MyConnect);
//Seçilen Tabloyu DataSete Aktar
MyDataset:=Dataset.Create;
MyAdapter.Fill(MyDataset,'mesajlar');
dataGrid1.DataSource:=MyDataset.Tables['mesajlar'];
Session['sqlstr']:=str;
MyConnect.Close;
end;
Ve ilk makalemin Sonuna geldim. Makalede adı geçen sistemin eksiklerinin ve hatalarının olduğunu biliyorum. Bunu da yorumlar ve tavsiyeler sayesinde giderip güzel bir şey ortaya çıkacağını umut ediyorum. İnşallah Sitedeki hocalarımızın sayesinde yazıya döktüğümüz bu makalenin arkadaşlara yararı olması temennisi ile hepinizi saygı ile selamlıyorum.
Bol kodlu günler diliyorum.
Ynt: Mesajlaşma Sistemi Gönderen: FetihlerFatihi Tarih: 10 October 2007 09:31:51
eline sağlık.
resmi sunucuya attım
Ynt: Mesajlaşma Sistemi Gönderen: Akrep Tarih: 10 October 2007 10:11:59
Teşekkürler, güzel çalışma...
Ynt: Mesajlaşma Sistemi Gönderen: kocaturk Tarih: 10 October 2007 12:25:27
Selçuk eline sağlık paylaşım için teşekkürler, bayramdan sonra inşallah bende bir şeyler paylaşmayı düşünüyorum bu konuda. dediğin gibi inşallah birilerinin işine yarar.
Ynt: Mesajlaşma Sistemi Gönderen: babahayati Tarih: 10 October 2007 13:58:58
eline sağlık Selçuk.