Benzer Konular
|
||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Basit Yaşamalısın | yakamozum | Aşk Hikayeleri | 2 | 11-01-2009 13:22 |
| Rapidsharede Basit Bir Püf Noktası | ByAsiL | Program İndir | 1 | 25-01-2008 01:45 |
| Basit Bir Ayrıntı | EnBiTâne | Bunları Biliyor Musunuz? | 3 | 25-12-2007 16:08 |
| Nedir Bu Aspx ? | hasanzorlu | Asp (Active Server Pages) | 6 | 29-09-2007 05:53 |
| Aspx ile 3.parti Bileşen Kullanmadan e-posta yollamak | hasanzorlu | Asp (Active Server Pages) | 0 | 08-09-2007 19:11 |
![]() |
|
|
Seçenekler | Stil |
|
|
#1 | |
|
Acemi ER
![]() Üyelik tarihi: Sep 2007
Yaş: 27
Mesajlar: 7
|
Bu Makalede asp.net ile nasıl basitçe forum oluşturulur ve forum oluşturmak için neler nerde nasıl kullanılıyor onları göreceksiniz.
İlk olarak ana sayfamızı oluşturarak devam edelim... Default.aspx in source kismina asagidaki kodlari yaziyoruz. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Basit Forum Uygulamasi</title> <script type="text/javascript" language="javascript"> // Kullanici Isimini yazip yazmadigini kontrol edip uyari Mesaji Veriyoruz. function Validate(theForm) { if (theForm.FrmKullaniciAdi.value == "") { alert("Lütfen isminizi yazin"); theForm.FrmKullaniciAdi.focus(); return (false); } return (true) } </script> </head> <body onload="javascript: document.form1.FrmKullaniciAdi.focus()"> <form id="form1" method="post" runat="server" onSubmit="return Validate(this)"> <table border="0" align="center" cellspacing="1" cellpadding="5"> <tr> <td width="100%" style="height: 94px"> <b>Foruma giriş Için Isminizi Yazin:</b> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top"> Isminiz : <asp:TextBox id="FrmKullaniciAdi" runat="server" Columns="15"></asp:TextBox> </td> <td valign="top" rowspan="2"> <asp:Button id="Button1" runat="server" OnClick="DoLogin" Text="Tamam"></asp:Button> </td> </tr> <tr> <td valign="top" align="right"> <asp:TextBox id="FrmSifre" Visible="False" runat="server" Columns="15" TextMode="Password"></asp:TextBox> </td> </tr> </table> </td> </tr> </table> </form> </body> </html> Daha sonra Default.aspx.cs ye asagidaki kodlari yaziyoruz. using System; using System.Data; using System.Data.OleDb; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { public void DoLogin(object sender, System.EventArgs e) { if (FrmKullaniciAdi.Text == "admin") // Eger kullanici isminiz bölümüne admin yazarsa hemen alt kisminda sifre girilmesi için bölüm çikacaktir { if (FrmSifre.Text == "Sifre") // Altta çikacak bölüme Sifre yazilirsa { Session["KullaniciAdi"] = FrmKullaniciAdi.Text; Session["admin"] = "yes"; Response.Redirect("Konular.aspx");// Kullaniciya Silme yetkisi verilerek konular bölümüne yönlendirir. } else { FrmSifre.Visible = true; // Eger Kullanici parolayi dogru girmezse izin vermez. } } else // Yukardaki kosullar olusmazsa yazilan adi hafizaya alarak Konular a yönlendirir. { Session["KullaniciAdi"] = FrmKullaniciAdi.Text; Response.Redirect("Konular.aspx"); } } } Simdi ise kullanıcının foruma konu eklemesi için KonuEkle.aspx i yaratalim <%@ Page Language="C#" AutoEventWireup="true" CodeFile="KonuEkle.aspx.cs" Inherits="KonuEkle" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Konu Ekle</title> <script type="text/javascript" Language="JavaScript"> function Validate(theForm) { if (theForm.frmPost.value == "") { alert("Lütfen Yeni Konu Ismini Girin"); theForm.frmPost.focus(); return (false); } return (true) } </script> </head> <body> <form id="AddTopic" method="post" runat="server" onSubmit="return Validate(this)"> <h2> BasitForum </h2> <p> Ilkbasta Girilen Kullanici Adi Ile Foruma Yeni Konu Ekliyebiliyoruz </p> <div id="outError" runat="server"> <table cellpadding="5" cellspacing="1" border="0" class="DataTable"> <tr> <td class="TableItem"> Konu Yaratan : <asp:Label ID="FrmAdi" Runat="server"></asp:Label> <br /> Yeni Konu Adi : (Maksimum 255 Karakter ) <br /> <asp:TextBox id="frmPost" runat="server" TextMode="MultiLine" MaxLength="255" Columns="40" Rows="5"></asp:TextBox> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%" align="right"> <asp:Button onClick="DoAddTopic" Text="Ekle" Runat="server" id="Button1"></asp:Button> </td> </tr> </table> </td> </tr> </table> <br /> <a href="Konular.aspx">Konulara Geri Dön</a> </div> </form> </body> </html> Daha sonra KonuEkle.aspx.cs ye asagidaki kodlari yaziyoruz. using System; using System.Data; using System.Data.OleDb; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class KonuEkle : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // Kullanici Adini Kontrol Ediyoruz. if (Session["KullaniciAdi"].ToString().Length < 1) { Response.Redirect("default.aspx"); } FrmAdi.Text = "<b>" + Session["KullaniciAdi"].ToString() + "</b>"; } public void DoAddTopic(object sender, System.EventArgs e) { string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Server.MapPath(".\\db\\forum.mdb"); // veritabanı Baglanti Cümlesi string strInsert = "INSERT INTO Konular (KonuBasligi, KonuSahibi) VALUES ('" + frmPost.Text + "', '" + Session["KullaniciAdi"].ToString() + "')"; // Kullanici tarafindan yazilan Konu adini ve kullanicin adini veritabanımizdaki Konular tablosundaki KonuBasligi ve KonuSahibi bölümlerine ekliyoruz. try { //Yeni baglanti yaratiyoruz OleDbConnection objConnect = new OleDbConnection(strConnect); // veritabanı ile baglantiyi açiyoruz. objConnect.Open(); OleDbCommand objCommand = new OleDbCommand(strInsert, objConnect); objCommand.ExecuteNonQuery(); // veritabanı ile baglantiyi kapatiyoruz. objConnect.Close(); // Konular.aspx' e Yönlendiriliyor Response.Redirect("Konular.aspx", true); } catch (Exception objError) { //Hata varsa mesaj yazdiriyoruz. outError.InnerHtml = "<b>* veritabanına baglanti hatasi</b>.<br />" + objError.Message + "<br />" + objError.Source; return; } } } Simdi ise forumun konularinin listelenmesi için Konular. aspx i kodluyoruz. Konular. aspx in source kismina asagidaki kodlari yaziyoruz. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Konular.aspx.cs" Inherits="Konular" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Konular</title> </head> <body> <form id="Form1" method="post" runat="server"> <h3> Basit Forum </h3> <div id="welcome" runat="server" /> <a href="KonuEkle.aspx">Yeni Konu Ekle</a> <p /> <div id="outError" runat="server"> <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" HeaderStyle-CssClass="TableHeader" AlternatingItemStyle-CssClass="AltTableItem" ItemStyle-CssClass="TableItem" CellPadding="4" ForeColor="#333333" GridLines="None"> <Columns> <asp:TemplateColumn HeaderText="Yazar"> <ItemTemplate> <asp:Label Runat='server' ID="lblAdminLink"> <%# DataBinder.Eval(Container.DataItem, "KonuSahibi") %> <% if (Session["admin"] == "yes") { %> <br> <a href="KayitSilme.aspx?T=T&ID=<%# DataBinder.Eval(Container.DataItem, "KonuID") %>"> Sil</a> <% } %> <br> </asp:Label> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="Konu"> <ItemTemplate> <asp:Label Runat='server' ID="lblSubject"> <a href="Mesajlar.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "KonuID") %>&S=<%# DataBinder.Eval(Container.DataItem, "KonuBasligi") %>"> <%# DataBinder.Eval(Container.DataItem, "KonuBasligi") %> </a> </asp:Label> </ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="KonuTarihi" HeaderText="Yazildigi Tarih"></asp:BoundColumn> </Columns> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditItemStyle BackColor="#2461BF" /> <SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <AlternatingItemStyle BackColor="White" /> <ItemStyle BackColor="#EFF3FB" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> </asp:DataGrid> </div> </form> </body></html> Daha sonra Konular.aspx.cs ye asagidaki kodlari yaziyoruz. using System; using System.Data; using System.Data.OleDb; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Konular : System.Web.UI.Page { public void Page_Load(object sender, System.EventArgs e) { if (Session["KullaniciAdi"] == null)// kullanıcının girişte yazmis oldugu isim veritabanından okunur { Response.Redirect("default.aspx"); } welcome.InnerHtml = "Merhaba " + Session["KullaniciAdi"] + ", yeni konu ekleyebilir veya mevcut olan konulara bakabilirsiniz.<P>"; ListKonular(); } public void ListKonular() { string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Server.MapPath(".\\db\\forum.mdb"); string strSelect = "SELECT * FROM Konular ORDER BY KonuTarihi DESC"; try { //Yeni baglanti yaratiyoruz OleDbConnection objConnect = new OleDbConnection(strConnect); //veritabanı ile baglantiyi açiyoruz objConnect.Open(); OleDbCommand objCommand = new OleDbCommand(strSelect, objConnect); OleDbDataReader objDataReader; objDataReader = objCommand.ExecuteReader(); DataGrid1.DataSource = objDataReader; DataGrid1.DataBind(); if (DataGrid1.Items.Count == 0) // Eger konuya mesaj yazilmamissa mesaj verdiriyoruz. { outError.InnerHtml = "Henüz Mesaj Yazilmamis.."; } //DataReader ve veritabanı Baglantisini Kapatiyoruz objDataReader.Close(); objConnect.Close(); } catch (Exception objError) { outError.InnerHtml = "<b>* veritabanına baglanti hatasi</b>.<br />" + objError.Message + "<br />" + objError.Source; //Hata varsa mesaj yazdiriyoruz. return; } } } Forum yetkilisinin istenmeyen konu veya mesajlari silmesi için KayitSilme.aspx i olusturalim <%@ Page Language="C#" AutoEventWireup="true" CodeFile="KayitSilme.aspx.cs" Inherits="KayitSilme" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Kayit silme</title> </head> <body> <div id="outError" runat="server"> </div> </body> </html> KayitSilme.aspx.cs ye asagidaki kodlari yaziyoruz. using System; using System.Data; using System.Data.OleDb; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class KayitSilme : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Server.MapPath(".\\db\\forum.mdb"); // veritabanı Baglanti Cümlesi string strDELETE = "DELETE * FROM ";// String değer olusturuyor string strURL; if (Request.QueryString["T"] == "T") { strDELETE += "Konular WHERE KonuID = " + Request.QueryString["ID"]; // Silinecek konu KonuID sine bakilip silinmek üzere strDELETE degiskenine atanir. strURL = "Konular.aspx"; } else { strDELETE += "Mesajlar WHERE MesajID = " + Request.QueryString["ID"];// Mesaj silmek için MesajID sine bakilip silinmek üzere strDELETE degiskenine atanir. strURL = "Mesajlar.aspx?ID=" + Request.QueryString["TID"] + "&S=" + Request.QueryString["S"]; } try { OleDbConnection objConnect = new OleDbConnection(strConnect); // Yeni baglanti yaratiyoruz objConnect.Open();// veritabanı ile baglantiyi açiyoruz. OleDbCommand objCommand = new OleDbCommand(strDELETE, objConnect);// Verilen silme işlemini yapiyoruz objCommand.ExecuteNonQuery(); objConnect.Close(); // veritabanı ile baglantiyi kapatiyoruz. Response.Redirect(strURL); } catch (Exception objError) { outError.InnerHtml = "<b>veritabanınia baglanti hatasi</b>.<br />" + objError.Message + "<br />" + objError.Source; //Hata varsa mesaj yazdiriyoruz. } } } Ve son olarak ta Mesajlar.aspx i olusturuyoruz. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Mesajlar.aspx.cs" Inherits="Mesajlar" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Mesajlar</title> <script type="text/javascript" Language="JavaScript"> function Validate(theForm) { if (theForm.frmPost.value == "") { alert("Lütfen Mesajinizi Yaziniz."); theForm.frmPost.focus(); return (false); } return (true) } </script> </head> <body> <form id="AddPosting" method="post" runat="server" onSubmit="return Validate(this)"> <h2> Basit Forum</h2> <div ID="KonuBasligi" Runat="server"> </div> <p> Ilkbasta Girilen Kullanici Adi Ile Foruma Yeni Mesaj Ekliyoruz </p> <div id="Div1" runat="server"> <table cellpadding="5" cellspacing="1" border="0" class="DataTable"> <tr> <td class="TableItem"> Mesaj Yazan : <asp:Label ID="FrmAdi" Runat="server"></asp:Label> <br /> Yeni mesaj : (Maksimum 255 Karakter ) <br /> <asp:TextBox id="frmPost" runat="server" TextMode="MultiLine" MaxLength="255" Columns="40" Rows="5"></asp:TextBox> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%" align="right"> <asp:Button onClick="DoAddPost" Text="Ekle" Runat="server" id="Button1" CssClass="button"></asp:Button> </td> </tr> </table> </td> </tr> </table> <br /> <a href="Konular.aspx">Konulara Geri Dön</a> <br /> </div> <div id="outError" runat="server"> <asp:DataGrid EnableViewState="False" DataKeyField="MesajID" id="DataGrid1" runat="server" AutoGenerateColumns="False" HeaderStyle-CssClass="TableHeader" AlternatingItemStyle-CssClass="AltTableItem" ItemStyle-CssClass="TableItem" CellPadding="4" ForeColor="#333333" GridLines="None"> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White"></HeaderStyle> <PagerStyle NextPageText="Next >" PrevPageText="< Prev" BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center"></PagerStyle> <AlternatingItemStyle BackColor="White"></AlternatingItemStyle> <ItemStyle BackColor="#EFF3FB"></ItemStyle> <Columns> <asp:TemplateColumn HeaderText="Yazar"> <ItemTemplate> <asp:Label Runat='server' ID="lblAdminLink"> <%# DataBinder.Eval(Container.DataItem, "MesajiYaratan") %> <% if (Session["admin"] == "yes") { %> <br> <a href="KayitSilme.aspx?S=<%# Request.QueryString["S"] %>&TID=<%# Request.QueryString["ID"] %>&T=P&ID=<%# DataBinder.Eval(Container.DataItem, "MesajID") %>"> Sil</a> <% } %> <br> </asp:Label> </ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="Mesaj" HeaderText="Mesaj"></asp:BoundColumn> <asp:BoundColumn DataField="MesajTarihi" HeaderText="Yazildigi Tarih"></asp:BoundColumn> </Columns> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditItemStyle BackColor="#2461BF" /> <SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> </asp:DataGrid> </div> </form> </body> </html> Mesajlar.aspx.cs ye asagidaki kodu yaziyoruz. using System; using System.Data; using System.Data.OleDb; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Mesajlar : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { if (Session["KullaniciAdi"] == null) { Response.Redirect("default.aspx"); } FrmAdi.Text = "<b>" + Session["KullaniciAdi"].ToString() + "</b>"; ListMesajlar(); } private void ListMesajlar() { string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Server.MapPath(".\\db\\forum.mdb"); string strSelect = "SELECT * "; strSelect += "FROM Mesajlar "; strSelect += "WHERE KonuID=" + Request.QueryString["ID"] + " "; strSelect += "ORDER BY MesajTarihi DESC;"; try { OleDbConnection objConnect = new OleDbConnection(strConnect); objConnect.Open(); OleDbCommand objCommand = new OleDbCommand(strSelect, objConnect); OleDbDataReader objDataReader; objDataReader = objCommand.ExecuteReader(); DataGrid1.DataSource = objDataReader; DataGrid1.DataBind(); if (DataGrid1.Items.Count == 0) { outError.InnerHtml = "Henüz Mesaj Yazilmamis.."; } KonuBasligi.InnerHtml = "<h4>" + Request.QueryString["S"] + "</h4>"; objDataReader.Close(); objConnect.Close(); } catch (Exception objError) { outError.InnerHtml = "<b>* veritabanına baglanti hatasi</b>.<br />" + objError.Message + "<br />" + objError.InnerException + "<P>" + objError.Source + "<P>" + objError.StackTrace + "<P>" + strSelect; return; } } public string AdminVisible() { if (Session["admin"] == "yes") { return " Visible=true"; } else { return ""; } } public void DoAddPost(object sender, System.EventArgs e) { string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Server.MapPath(".\\db\\forum.mdb"); string strInsert = "INSERT INTO Mesajlar (Mesaj, MesajiYaratan, KonuID) VALUES ('" + frmPost.Text + "', '" + Session["KullaniciAdi"].ToString() + "', " + Request.QueryString["ID"] + " )"; try { OleDbConnection objConnect = new OleDbConnection(strConnect); objConnect.Open(); OleDbCommand objCommand = new OleDbCommand(strInsert, objConnect); objCommand.ExecuteNonQuery(); objConnect.Close(); Response.Redirect("Mesajlar.aspx?ID=" + Request.QueryString["ID"] + "&S=" + Request.QueryString["S"], true); } catch (Exception objError) { outError.InnerHtml = "<b>* veritabanına baglanti hatasi</b>.<br />" + objError.Message + "<br />" + objError.Source; return; } } } İndirmek için tıkla... BURADAN Konu hasanzorlu tarafından (18-09-2007 Saat 19:57 ) değiştirilmiştir.. |
|
|
|
|
|
|
#2 |
|
Acemi ER
Üyelik tarihi: Sep 2009
Mesajlar: 1
|
Arkadaşlar benim bu kodu acil kullanmam lazım bu kodu kopyalamamın bir yolu var mı????
|
|
|
|
|
|
#3 | |||
|
SİTE YÖNETİCİSİ
![]() Üyelik tarihi: Aug 2007
Yaş: 42
Mesajlar: 14,591
|
Alıntı:
İstediğiniz içerği az önce özel mesaj ile rapid linki olarak attım size..
|
|||
|
|
|
|
|
#4 |
|
Acemi ER
![]() Üyelik tarihi: Mar 2010
Yaş: 20
Mesajlar: 1
|
Databasedeki sütunların adlarını yada databasenin kendisini alabilirmiyim?
|
|
|
|
|
|
#6 |
|
Acemi ER
Üyelik tarihi: Jan 2011
Mesajlar: 1
|
İndirilmiyor dosya verdiğin adresten veri tabanı lazım bana yardım pls
|
|
|
|