AKDENİZ FORUM


Ana Sayfa Benim Konularim Benim Mesajlarim
Geri git   AKDENİZ FORUM > VBulletin Destek & Webmaster Genel > Php, Asp, Flash, Java, Html
Kayıt ol Yardım Üye Listesi Arama Bugünki Mesajlar Bütün Forumları okunmuş kabul et

Php, Asp, Flash, Java, Html Php, asp, flash, java, html ve tüm web azılım dilleri hakkında bilgi paylaşımı yapabileceğiniz bölüm.

Cevapla
 
Seçenekler
Alt 07-14-2006   #1
Aytaç
AkdenizForum Kankası
 
Aytaç - ait Kullanıcı Resmi (Avatar)

Türkiyenin En Kaliteli Bilgi Paylasim Mekani AKdenizForum..
Kullanıcı Bilgileri
 
Üyelik Tarihi: Jul 2006
Yaş: 23
Mesajlar: 567
Üye No: 105
Extra Bilgiler
Tecrübe Puanı: 44
Rep Gücü : 59
Rep Derecesi : Aytaç is on a distinguished road
İletişim
ok ASP' de Site İçi Arama Motoru

Günümüzde neredeyse tüm web siteleri içerik olarak veritabanına dayanan bir tasarımla hazırlanıyor. Bunun için ASP ve PHP dilleri kullanılıyor. ASP ile hazırlanan tasarımlarda da ağırlıklı olarak MS Access veritabanı dosyaları kullanılıyor.

Hazırlamış olduğunuz web sitesi böyle bir siteyse, site içine bir arama motoru hazırlayabilirsiniz. Böylece, ziyaretçileriniz veritabanında bulunan kayıtlarda, istedikleri bir veya birkaç sözcüğe göre arama yapıp, bulunan kayıtları listeleyebilir ve istedikleri kaydı seçerek ekranda görüntüleyebilirler. Bu yazımızda ayrıntılı olarak bir site içi arama motoru tasarımını anlatacağız. ASP bilginizin olduğunu varsayarak ayrıntılı bilgi verilmeyecektir.

Öncelikle veritabanı dosyamızı hazırlayalım; MS Access ile yeni bir dosya oluşturun, adı "kayitlar.mdb" olsun, bu veritabanı dosyasının içinde "icerik" adında bir tablo bulunsun, tablomuzdaki alanlar ise,

ID : Otomatik sayı (Birincil Anahtar)
baslik : String (255 karakter)
metin : Not

şeklinde olsun. Bu veritabanında ID, kayıtlarımızın kimlik numarasını tutacak ve otomatik sayı olacak, "baslik" alanında, ilgili bölümün başlığı olacak, "metin" alanında ise ilgili sayfanın içeriğine ait kodlar bulunacak. Arama motorumuz bu tablonun "metin" alanını kullanacak.

Kodlarımızda SQL dilinin "LIKE" komutu ve VBScript' in "Replace" komutu anahtar olarak görev yapacak.

Veritabanına ait kayıtların görüntülendiği sayfaların hazır olduğunu varsayarak, "arama.asp" adında bir sayfa hazırlayacağız, bundan önce, "arama.inc" adında bir kod dizisi yazacağız ve bu kod dizisini "#include file" metoduyla, arama motorunun kullanılmasını istediğimiz sayfamıza dahil edeceğiz.

"arama.inc" Kodları


Kod:
<form name="arama" action="arama.asp" method="get">
<table border="1" cellpadding="3" cellspacing="0" width="120">
<tr><th colspan="2">Site İçi Arama</th></tr>
<tr><td align="right">Aranacak Sözcük :</td><td>
<input type="text" size="20" name="aranan"></td></tr>
<tr><td> </td><td><input type="submit" value="Gönder"></td></tr>
</table>
</form>
Bu kodlar bize aşağıdaki görüntüyü sağlayacaktır, ve metin kutusuna yazılan metin (örneğin Deneme), Gönder düğmesine tıklandığında "arama.asp" sayfamıza "arama.asp?aranan=Deneme" şeklinde gönderilecektir.




Şimdi arama.asp sayfamızın kodlarını hazırlayalım;

"arama.asp" Kodları "_" işareti satırın devam ettiğini göstermektedir.


Kod:
<% aranan = Request.QueryString("aranan") %>
<html>
<head>
<**** **********="content-type" content="text/html; charset=ISO-8859-9">
<**** **********="content-type" content="text/html; charset=windows-1254">
<title>Arama Sayfası : "<% =aranan %>" Sözcüğü Arama Sonuçları</title>
</head>
<body>
<h4>Sonuçlar</h4>
<%If Request.QueryString("aranan") = "" Then

Response.Write "<h5>Aranacak sözcüğü girin</h5>"
Response.Write "<br><a href=""javascript:window.history.back()""><h6>Geri </h6></a>"
Response.End

Else

aranan = Request.QueryString("aranan")End If %>
<% veritabani = Server.MapPath("databases/kayitlar.mdb")
baglantim = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="_ & veritabani
Set baglanti = Server.CreateObject("ADODB.Connection")baglanti.Op en baglantim
Set kayitlar = Server.CreateObject("ADODB.RecordSet")
aramasql = "SELECT * FROM icerik WHERE metin LIKE '%" & aranan & "%'_ ORDER BY id ASC"
kayitlar.Open aramasql, baglanti, 1, 3
If kayitlar.RecordCount =< 0 Then
Response.Write "<h4>Site içeriğinde uygun kayıt bulunamadı...</h4>"
Response.Write "<h5>Aranan Sözcük : " & aranan & "</h5>"
Response.Write "<br><a href=""javascript:window.history.back()""><h6>Geri </h6></a>"
Response.End
End If
%>
<%
kayitlar.PageSize = 20
SayfaSayisi = kayitlar.PageCount
Kayitlar.AbsolutePage = sayfano
%>
<table width="740" border="0" cellpadding="0 cellspacing="0" align="left">
<tr><td valign="top" width="150"><br>Bulunan kayıt: <b>
<% =kayitlar.RecordCount %></b><br>
<%
If kayitlar.RecordCount > 20 Then %>
<br>Her sayfada <font color="#ff0000"><% =kayitlar.PageSize %></font>_
sonuç görüntülenmektedir.<br>
<% End If %>
<br><br></td>
<td valign="top" width="590">
<%
' Buradaki fonksiyon, aranan sözcüğü kırmızı renkte görüntüleyecek
' şekilde değiştirmektedir.

Function degistir(karakter)
duzelt = karakter
duzelt = Replace(duzelt, aranan, "<font style='color:#ff3333'><b>_
" & aranan & "</b></font>")
degistir = duzelt
End Function
%>
<table border="0" cellpadding="5" cellspacing="0" width="500">
<tr><td width="360" valign="top"><b>Metin</b></td></tr>
<%
For i = 1 To kayitlar.PageSize
If kayitlar.EOF Then Exit For
%>
<tr><td valign="top"><% =degistir(kayitlar("metin")) %></td></tr>
<%
kayitlar.MoveNextNext
%>
</table>
</td></tr>
<tr><td> </td><td>
<%
' aşağıdaki kodlar, bulunan kayıtlar bir sayfadan fazla ise, diğer
' sayfalara link oluşturmaktadır.
<%
If SayfaSayisi <> 1 Then
%>
<br><br> Diğer Sayfalar :
<%
For i = 1 To SayfaSayisiIf i <> SayfaNo Then
%>
<b>[<a href="arama.asp?sa=<% =i %>&aranan=<% =aranan %>"> <% =i %> </a>]</b>
<% Else %>
<b>[ <% =i %> ]</b><%End IfNextEnd If%></td></tr></table>
</td></tr>
</table>
<br>

<%
kayitlar.Close
Set kayitlar = Nothing
baglanti.Close
Set baglanti = Nothing
' temizlik yapalım, oluşturduğumuz sunucu nesnelerini kapatalım ki
' sunucumuz yorulmasın.
%>
</body>
</html>
Bu kısa kodlar ile sayfanızda kayıtları alt alta görüntüleyebilirsiniz. Kısa metinler içeren kayıtlar için uygun olan bu tasarımda, uzun metinler içeren kayıtların olduğu sayfaların görüntülenmesi hoş olmayacaktır, bu durumda aşağıdaki satırları, altındakilerle değiştirerek kayıtlarınız için linkler oluşturabilir ve normalde kayıtlarınızı görüntülemek için kullandığınız sayfaya kayıtla ilgili bağlantı verebilirsiniz.

Görüntüleme sayfanızın kodlarını da yazın, dosya adı "goster.asp" olsun.


Kod:
<tr><td valign="top"><% =degistir(kayitlar("metin")) %></td></tr>
<a href="goruntule.asp?id=<% =kayitlar("id") %>"><% =kayitlar("baslik")_ %></a>
Kodların işinize yaraması dileğiyle, çalışmalarınızda başarılar.



๑۩۞۩. Fëanor Fëfalas. ۩۞۩๑


Aytaç isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Cevapla

Seçenekler

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Gitmek istediğiniz klasörü seçiniz

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar son Mesaj
Vbulletin Için Arama Motoru Optimizasyonu dEHSEt Vbulletin Genel Ayarları Ve Eklentileri 0 05-16-2007 06:35 PM
Arama Motoru Optimizasyonu dJ_FoxX Webmaster Genel 0 05-13-2007 05:46 PM
Google ile hack 2 Brad-Let WebSite Security 0 08-01-2006 12:33 PM
Site Mail Listesi Çalma Brad-Let WebSite Security 0 07-27-2006 06:59 AM


Saat: 11:29 PM


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Akdeniz forum Web Sitesi Bir Forum sitesi oldugun'dan öterin kullanicilar görüs almadan konularini aninda sitede yayinlayabilmektedir
bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir,
yine de sitemizde yasalara aykırı unsurlar bulursanız iletişim Yoluyla email adresine bildirebilirsiniz..


Diyet Uzmanı Sesli Chat oyun oyun hileleri oyun adtech ile reklam 2.0 seo yarışması Büyükçöplük.Com fx15
Sitemap
5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 450, 18, 19, 20, 21, 22, 23, 24, 25, 287, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 426, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 75, 258, 82, 83, 86, 87, 88, 89, 342, 260, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 117, 112, 111, 270, 120, 121, 122, 123, 124, 125, 126, 127, 128, 134, 130, 131, 316, 133, 221, 137, 142, 268, 138, 454, 145, 141, 139, 140, 163, 146, 172, 173, 147, 144, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 319, 194, 171, 170, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 195, 196, 197, 318, 198, 199, 220, 205, 206, 207, 208, 211, 212, 213, 214, 215, 216, 217, 218, 222, 226, 228, 230, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 244, 250, 251, 252, 257, 254, 253, 255, 259, 261, 269, 271, 503, 272, 273, 274, 275, 277, 283, 279, 280, 281, 282, 284, 285, 286, 288, 289, 290, 291, 295, 296, 304, 305, 308, 309, 310, 311, 312, 313, 314, 320, 321, 322, 323, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 415, 336, 337, 338, 340, 341, 343, 344, 345, 346, 347, 348, 349, 350, 351, 385, 396, 355, 356, 358, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 372, 374, 375, 376, 378, 379, 381, 382, 383, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 409, 410, 411, 412, 413, 414, 416, 417, 418, 419, 421, 422, 423, 424, 425, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 455, 456, 457, 458, 459, 460, 461, 462, 508, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 504, 505, 506, 507, 528, 529, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,