Linkedin Instagram Facebook Twitter Mail Youtube Whatsapp

Asp.Net ile Site İçi Arama Motoru Yapımı

Asp.net ile site içi arama motorunu yapmaya  başlayalım. Hemen her web sayfasında olması gereken bir uygulama olduğu gibi asp.net ile yapmakta ayrı bir deneyim olacaktır. Öncelikle yeni bir web uygulaması oluşturalım ve gerekli kütüphaneleri dahil ettikten sonra default.aspx sayfamıza toolbox bölümünden bir textbox ekleyelim. Şimdi bir de buton ekleyelim ve ardından bir web form ekleyerek adını da arama.aspx olarak kaydedelim. Butonun içerisine çift tıklayarak gerekli kodları yazalım.

Response.Redirect("arama.aspx?kelime=" + TextBox1.Text + "");

 

Şimdi arama.aspx sayfamıza kelime adında bir değer gönderdik. Gelecek değer textbox içinden gelecek değerdir. Şimdi o değeri sayfamıza alacağız. Şimdi arama.aspx sayfamızı tekrar açarak Page_Load kısmına şu kodları yazalım.

string gelen = guvenlik(Request.QueryString["kelime"].ToString());

Şimdi de QueryString ile gelen değeri gelen adında bir değişkene atayıp ardından bir “guvenlik” adında süzgeçten geçirdik.

OleDbConnection baglanti = newOleDbConnection("Provider=Microsoft.jet.oledb.4.0; Data source=" + Server.MapPath("App_Data\\database.mdb"));
baglanti.Open();

 

Bağlantı nesnesi oluşturup bağlantıyı açıyoruz.

OleDbDataAdapter adapter = newOleDbDataAdapter("Select * From makale WHERE kategoriadi and baslik and aciklama LIKE '%" + gelen.Replace("'", "'") + "%'", baglanti);

 

DataAdapter’i de oluşturduktan sonra iş bitmiş sayılır. Bütün iş sorguda bitiyor zaten. Bu sorgu farklı şekillerde kullanılabilir.

DataSet Ds = newDataSet();
adapter.Fill(Ds, "Tablo"); Repeater1.DataSource = Ds;
Repeater1.DataBind();

 

Bu işlemleri de yaptıktan sonra  arama.aspx sayfasına bir Repeater ekliyoruz. Şimdi guvenlik süzgecinden bahsedelim.

publicstring guvenlik(string cevir) {
cevir = Regex.Replace(cevir, ",", ""); cevir = Regex.Replace(cevir, "/", "");
cevir = Regex.Replace(cevir, "\n", ""); cevir = Regex.Replace(cevir, "/?", "");
cevir = Regex.Replace(cevir, "/*", ""); cevir = Regex.Replace(cevir, "'", "");
cevir = Regex.Replace(cevir, "&", ""); cevir = Regex.Replace(cevir, "<", ""); cevir = Regex.Replace(cevir, ">", "");
cevir = Regex.Replace(cevir, "=", "");
return cevir; }

 

Bu güvenlik fonksiyonu sql injection için yazılmıştır. Tamamen güvenlik içindir ve yaygın olarak kullanılmaktadır. Bu sayede gelen değeri aldık. Şimdi Repeater’in içine yazılacak kodlara bakalım.

<asp:RepeaterID="Repeater1"runat="server">
<ItemTemplate> <%#Eval("baslik")%>
ItemTemplate>
<SeparatorTemplate>
<hrstyle="border-style: dottednonenonenone; border-color: #C0C0C0; border-top-width: 2px;"/>
SeparatorTemplate>
asp:Repeater>

 

Normal düzeyde bir site içi arama motoru bu şekilde tasarlanabilir.Ekleme çıkarmalar ile birlikte kendinizce uyarlayabilirsiniz. Asp.net ile site içi arama motoru yapımı işinize yarar umarım. İyi çalışmalar.

Bir Yorum Yaz