Asp Web Sitesi Projesi

NOT: Bu makalenin daha iyi anlasilmasi için Asp Ögrenci Kayit Projesi adli makalemi incelemenizde fayda görüyorum.

NOT: Makaleme baslamadan önce belirtmek isterim ki: Bu projede gördügünüz her sey veritabanindan çekilerek yapilmistir. Sayfa tasarimlari tamamen size kalmistir. Burda önemli noktalar anlatarak sitenin  bazi kisimlarini size birakiyorum. Veritabani Access’tir bunu da projenin orijinal dosyalari içinde bulabilirsiniz.
 
 
not: *** seklinde alti yesille yazdiklarim yorumdur
 
Asp Web Sitesi Projesi
 
            Yapacagimiz site için ben 4 sayfa belirledim. Bunlar: Main Page(default.asp), Donanim Parçalari(Hardwares), Siparis(Order), Iletisim(Contact). Ve bunlara ek olarak birde yönetim sayfamiz(Admin) olacak ki login islemi yaptigimizda bu sayfada islemler yapabilelim. Yönetim sayfamizda Ana sayfada gördügünüz Haberler(News) basligi altinda bulunan haberlere ekleme, eklenmis haberi yayinlama , yayindan kaldirma ve silme islemleri yapacagiz.
            Bunlara ek olarak bütün islemler için kullanacagimiz veritabani baglantisi için gerekli ayarlarin bulunacagi config.asp sayfamiz olacak.
 
Config.asp Sayfasi Kodlari:
 

<%
dim baglanti,yol not: *** baglanti ve yol cümlesi tanimliyoruz
yol=server.mappath("db1.mdb") not: *** yol cümlesinde veritabanimizin yerini isaret ediyoruz
set baglanti=server.createobject("adodb.connection") not: ***baglanti nesnesi yaratiyoruz
baglanti.open "Provider=Microsoft.Jet.Oledb.4.0;Data Source="&yol not: ***baglantiyi actik
%>

 
            Kendi zevkimize göre ayarladigimiz ana sayfamiza bir bakis atalim.
 
DEFAULT.ASP Sayfasi Görünümü:
  Ana Sayfa
           
            
Default.asp Sayfasi Kodlari: 
 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!–#include file="config.asp"–> not: *** baglanti ayarlarinin bulundugu config.asp sayfasindaki kodlari sanki burada varmis gibi gösterdik 
 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ACAN COMPUTER HARDWARES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!–
.style1 {color: #999999}
.style2 {
      font-size: 24px;
      color: #990000;
      font-weight: bold;
}
–>
</style>
</head>
 
<body>
<center>
<table width="800" height="226" border="0">
 <tr>
    <td height="120" colspan="3"><img src="images/logo.jpg" width="800" height="120"></td>
    </tr>
 <tr>
    <td width="685" valign="top" bgcolor="#3399FF"><p align="center" class="style2">NEWS</p>
      <% not: *** haberleri çekmeye basliyoruz
set news=server.createobject("adodb.recordset") not: ***news adinda bir küme olusturduk
sql="select * from news where onay=true" not: ***veritabanindan onaylanmis olan haberleri cekmek için gerekli sql cümlecigini olusturduk
news.open sql,baglanti,1,3 not: ***ve kümemizi onaylanmis haberlerle doldurduk
%>
      <table width="634" border="0" > not: *** simdi bu haberleri bir düzen içerisinde ana sayafada gösterebilmek için kendar kalinligi 0 olan bir tablo olusturduk
        <%do while not news.eof%> not: *** haberlerin her birini teker teker alip bitirene kadar bu islemleri yap kodunu koyduk
        <tr>
         
            <li>
              <%response.write news("newnews")%> not: ***news kümesindeki haberi yazdiriyoruz
            </li>
         
        </tr>
        <%
news.movenext
loop
news.close
%> not: *** ve bi sonraki habere geçioyoruz yukarda do while ile girdigimiz kodun devami olan bu döngü anasayfaya cekilen her haberden sonra bi haber atlamaya yariyor yani diger habere geçiyoruz
      </table></td>
    <td width="171" height="203" valign="top" bgcolor="#FFFFFF"><div align="center" class="style2">
      <p>
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
            <param name="BGCOLOR" value="">
            <param name="movie" value="button1.swf">
            <param name="quality" value="high">
            <embed src="button1.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
      </p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button2.swf">
          <param name="quality" value="high">
          <embed src="button2.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
      </p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button3.swf">
          <param name="quality" value="high">
          <embed src="button3.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
      </p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button5.swf">
          <param name="quality" value="high">
          <embed src="button5.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
      </p>
 
<% if session("giris") = "tamam" then %> not: *** burada kullandigimiz kod aspde session dedigimiz konu ile ilgilidir. Yani login islemini gerceklestirdigimizde bir nesne yarattigimizi düsünün ve bu nesne giris dogru yapilirsa tamam diye bir kelimeye esitleyip ayarliyoruz login kismini admin sayfasinda daha genis anlatacagim.
<h3><a href="Admin.asp">Admin Page</a> not: *** eger giris islemi tamam ise sagdaki menumuzun altina admin sayfasina giris için bir link ayacak
<p><a href="cik.asp">Logout</a></p></h3> not: *** bu linkte güvenli cikis diye bildigimiz cikis islemi için gecerlidir. Yine bu konuyuda cik.asp sayfasini anlatirken daha genis deyinecegim.
<%end if%> not: *** bitirdik.
    </div></td>
 </tr>
 
<tr>
    <td height="82" colspan="5" valign="top" bgcolor="#3399FF">
      <% not: *** bu kisim veritabaninda bulunan daha önceden ekledigim donanim parçalarini cekmek içindir.
set hardwares=server.createobject("adodb.recordset") not: ***hardware adinda bir küme olusturduk
sql="select * from hardwares" not: *** veritabanimizdan bütün donanim parçalarini çekecek sql cümlecigimizi olusturduk
hardwares.open sql,baglanti,1,3 not: *** ve kümemizi donanim parçalariyla doldurduk
%>
<table border="0" width="800">
<%do while not hardwares.eof%> not: ***simdi do while ile bu kümedeki son parçaya gelene kadar her birini teker teker yazdiracagiz
 <a href="hardwares.asp"><img src="<%response.write hardwares("photos")%>" alt="<%=hardwares("compname")%>" width="95" height="130"></a> not: ***burada parçanin resmini çekiyoruz ve resmin üzerine geldigimizde adi görünmesi için bir islem yapiyoruz.
<%
hardwares.movenext not: *** bi sonraki parcaya geciyoruz
loop
hardwares.close
%>
</table>
      </td>
 </tr>
 <tr bgcolor="#990000">
    <td height="30" colspan="3"><div align="center" class="style1">
      <form id="form1" name="form1" method="post" action="Admin.asp"> not: *** form olusturduk ve bu formu admin.asp sayfasina login olabilmek için kullanacagiz
        <label>Username:
          <input type="text" name="username" />
        </label>
        Password:
 <label>
 <input type="password" name="password" />
 </label>
 <label>
 <input type="submit" name="Submit" value="Login" />
 </label>
      </form> not: ***formu kapatarak sifre ve kullanici adini admin sayfasina post ettik yani gönderdik. Bu kismi login islemi sirasinda daha detayli anlatacagim
      <p>Acan Hardware Components Company 2008-2009. All Rights Reserved by ACAN Company. </p>
    </div></td>
    </tr>
</table>
</center>
</body>
</html>

 
Bu sayade yukardaki kodlarla ana formumuzuda yani ana sayfamizida tamamlamis olduk. Simdi sag menüdeki Hardware sayfamiza bakalim.
 
Hardwares.asp Sayfasi Görünümü:
 Donanim
Sayfanin tamamini almadim sadece görmemiz gereken bu sayfada yaptigimiz islemi göstermek istiyorum. Veritabanindan parçanin resmini aciklamasini ve fiyatini cekiyoruz.
 
Hardwares.asp Sayfasi Kodlari:
 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!–#include file="config.asp"–> not: ***baglanti ayarlarimizi cekiyoruz
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ACAN COMPUTER HARDWARES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!–
.style1 {color: #999999}
.style2 {
      font-size: 24px;
      color: #990000;
      font-weight: bold;
}
.style5 {font-size: 14}
.style6 {font-size: 14px}
–>
</style>
</head>
 
<body>
<center>
<table width="800" height="437" border="0">
 <tr>
    <td height="120" colspan="2"><img src="images/logo.jpg" width="800" height="120"></td>
    </tr>
 <tr>
    <td width="649" height="286" valign="top" bgcolor="#0066CC"><div align="center">
         <p>
<%
set hardwares=server.createobject("adodb.recordset") not: *** hardwares adinda bir küme olusturduk
sql="select * from hardwares" not: *** bütün parçalari veritabanindan çekmek için gerekli sql cümlecigimizi olusturduk
hardwares.open sql,baglanti,1,3 not: *** ve kümemizi parçalari .ekerek doldurduk
%>
<table border="0"> not: *** düzenli görünmesi için bir tablo tasarladik
<tr>
<td class="style6">HARDWARE PHOTO</td>
<td class="style6">DESCRIPTION</td>
<td class="style6">PRICE</td>
</tr>
<%do while not hardwares.eof%> not: *** ve son parçaya kadar çekecegimiz do while döngüsünü tekrar girdik
<tr>
<td class="style5"><a href="order.asp"><img src="<%response.write hardwares("photos")%>" alt="BUY" width="95" height="130"></a></td> not: ***resmi aldik
<td class="style5"><%=hardwares("description")%></td> not: *** açiklamayi aldik
<td class="style5"><%=hardwares("price")%></td> not: ***fiyati aldik
</tr>
 
<%
hardwares.movenext not: ***ve bir sonraki parçaya geçtik
loop
hardwares.close
%></table></p>
  
    </div></td>
    <td width="147" valign="top"><p align="center">
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
        <param name="BGCOLOR" value="">
        <param name="movie" value="button1.swf">
        <param name="quality" value="high">
        <embed src="button1.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
      </object>
    </p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button2.swf">
          <param name="quality" value="high">
          <embed src="button2.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button3.swf">
          <param name="quality" value="high">
          <embed src="button3.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button5.swf">
          <param name="quality" value="high">
          <embed src="button5.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center">&nbsp;</p></td>
 </tr>
 <tr bgcolor="#990000">
    <td colspan="2"><div align="center" class="style1">Acan Hardware Components Company 2008-2009. All Rights Reserved by ACAN Company. </div></td>
    </tr>
</table>
</center>
</body>
</html>
 
 

 
Donanimlarin listelendigi sayfayi da bitirdikten sonra bir siparis vermemiz gerekecek. Simdi siparis(order.asp) sayfamizi yapalim.
 .
Order.asp Sayfasi Görünümü:
 Siparis
 
Burada siparisle ilgili bilgilerin alinabilmesi için gerekli alanlari yapiyoruz. Burada koydugumuz “send to webmaster” butonu bizi bu bilgilerin kaydilmesi için buy.asp sayfasina yönlendirecek.
 
Birkaç siparis verelim.
 Siparis Veriyoruz
 
Gerekli bilgileri doldurduk ve “send to webmaster“ dedik. Simdi order sayfamizda olanlara ve bu islemi kaydetmek için neler oluyor bir bakalim.
 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!–#include file="config.asp"–> not: ***bagsanti ayarlarimizi aldik
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ACAN COMPUTER HARDWARES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!–
.style1 {color: #999999}
.style2 {
      font-size: 24px;
      color: #990000;
      font-weight: bold;
}
–>
</style>
</head>
 
<body>
<center>
<table width="800" height="437" border="0">
 <tr>
    <td height="120" colspan="2"><img src="images/logo.jpg" width="800" height="120"></td>
    </tr>
 <tr>
    <td width="649" height="286" valign="top" bgcolor="#0066CC"><div align="center">
      <p>&nbsp;</p>
       <p>Select a Hardware to Order </p>
      <p>
       <% not: *** veritabanina ekledigimiz donadim parçlarini bir kümeye çekiyoruz
            set hardwares=server.createobject("adodb.recordset")
            sql="select * from hardwares"
            hardwares.open sql,baglanti,1,3
       %>
       <table border="0">
       <form action="buy.asp" method="post"> not: ***butonumuzun gönderecegi bilgileri bir form içine aliyoruz ve gördügünüz gibi bu bilgileri buy.asp sayfasina post ediyoruz yani gönderiyoruz
          <div align="left"></div>
       
       <tr>
       <td><div align="left"><b>Name:</b></div></td>
       <td>
          <div align="center">
            <input type="text" name="name" />
            </div></td>
       </tr>
       <tr>
       <td><div align="left"><b>Surname:</b></div></td>
       <td>
          <div align="center">
            <input type="text" name="surname" />
            </div></td>
       </tr>
       <tr>
       <td><div align="left"><b>E-Mail:</b></div></td>
       <td>
          <div align="center">
            <input type="text" name="email" />
            </div></td>
       </tr>
       <tr>
       <td><div align="left"><b>Address:</b></div></td>
       <td>
          <div align="center">
            <textarea name="address"></textarea>
            </div></td>
       </tr>
       <tr>
       <td><div align="left"><b>Phone:</b></div></td>
       <td>
          <div align="center">
            <input type="text" name="phone" />
            </div></td>
       </tr>
       <tr>
       <td><div align="left"><b>Hardwares:</b></div></td> not: ***donanimlari combobox a aliyoruz
       <td>
          <div align="center">
            <select name="compname">
              <option>-Select A Hardware-</option>
              <%do while not hardwares.eof%> not: *** bütün donanimlar için do while döngümüzü girdik
              <option><%=hardwares("compname")%></option> not: *** ve combobox in opitons yani seceneklerine bütün bu aldigimiz donanim adlarini giriyoruz.
              <%
       hardwares.movenext not: *** bi sonraki donanima geçip yine ayni islemleri yaptiracak döngümüz.
       loop
       hardwares.close
       %>
              </select>
            </div></td>
       </tr>
       </table>
       <input type="submit" value="SEND TO WEBMASTER" /> not: *** butonumuzu koyduk
       </p></form> not: *** formumuzu bitirdik.
      </div></td>
    <td width="147" valign="top"><p align="center">
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
        <param name="BGCOLOR" value="">
        <param name="movie" value="button1.swf">
        <param name="quality" value="high">
        <embed src="button1.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
      </object>
    </p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button2.swf">
          <param name="quality" value="high">
          <embed src="button2.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button3.swf">
          <param name="quality" value="high">
          <embed src="button3.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button5.swf">
          <param name="quality" value="high">
          <embed src="button5.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center">&nbsp;</p></td>
 </tr>
 <tr bgcolor="#990000">
    <td colspan="2"><div align="center" class="style1">Acan Hardware Components Company 2008-2009. All Rights Reserved by ACAN Company. </div></td>
    </tr>
</table>
</center>
</body>
</html>
 
 

 
Formdaki bilgileri buy.asp sayafasina gönderdik simdi buy.asp sayfasinda neler oluyor bi bakalim.
 
Buy.asp Sayfasi Görünümü:
 

<!–#include file="config.asp"–> not: *** baglanti ayarlarimizi aldik
<%
set buy=server.createobject("adodb.recordset") not: ***buy adinda bir küme olusturduk
sql="select * from buy" not: ***veritabanindan bütün siparisleri alacak bir sql cümlecigi olusturduk
buy.open sql,baglanti,1,3 not: *** ve kümeyi siperislerle doldurduk
dim name,surname,email,address,phone,compname
 
name=request.form("name") not: *** order sayfasindaki formdan gönderdigimiz bilgilerden siparis verenin adini name adinda bir degiskene esitliyoruz
surname=request.form("surname") not: *** ayni sekilde soyadi
email=request.form("email") not: *** email
address=request.form("address") not: *** adresi
phone=request.form("phone") not: *** telefonu
compname=request.form("compname") not: *** parca adini
 
buy.addnew not: *** ve addnew komutu ile kümemizdeki siparislere bir yeni siparis eklioyoruz
buy("name")=request.form("name") not: *** burada sadece name de yazabilirdik çünkü formdan bilgileri daha önce çekip degiskenlere esitlemistik ama bu sekilde de yapilabilir.
buy("surname")=request.form("surname")
buy("email")=request.form("email")
buy("address")=request.form("address")
buy("phone")=request.form("phone")
buy("compname")=request.form("compname")
buy.update not: *** ve yeni siparisi veritabanina attik
buy.close
Set buy=nothing
response.redirect("order.asp") not: ***order sayfasina geri döndük. Bu islemi yapmasak eger buy.asp sayfasinda kaliriz. Unutmyin aslinda biz order sayfasinda siparis veriyorduk ve butonumuz bizi bu sayafa yönlendirmisti ve bizim bu sayfada isimiz bittigi için geri order sayafasina dönmeliyiz.
%>

 
 
Siparisimiz bitmistir. Simdi Gelin login olup admin sayfasina yani yönetim sayfamiza bi bakalim. Ben kullanici adi ve sifreyi admin olarak daha önce veritabanina kaydettim.
Login
Sifremizi girdik ve login butonuna bastik. Bu bizi direk admin.asp sayfasina gönderecektir. Login olup admin sayfamiza bi bakalim. Yönetimde yapacagimiz islemlere.
 
Admin.asp Sayfasi Görünümü:
 
 Admin 1
Sayfa uzun oldugu için iki parça halinde inceleyelim. Bu kisimda NEWS basligi altinda yayinlanmayi bekleyen hiç haber bulunmadigini görüyoruz. Yani “No waiting new”. Bu islemi detayli anlatacagim.
 
Kirmizi ile gördügünüz haberler ise daha önceden eklenmis ve publish edilmis yani yayinlanmis yani ana sayfada gösterime verilmis haberlerdir. Demek istedigim istediginiz haberi ana sayfada yayindan kaldirmak gibi yada yayinlamak yada silmek gibi islemleri buradan yapacagiz.
 
Birde siparislerin geldigi kisma bi bakalim oda bu sayfada altta yani sayfanin böldügüm 2.ci parcasinda. Asagidaki resimde:
 Admin 2
 
Gördügünüz gibi verdigimiz siparisleri buraya çekecegiz ve isimiz biten sipariside delete linkimizle silecegiz. Simdi admin.asp sayafasinin kodlarini bir inceleyelim. Bu Kisim Oldukça Önemlidir! Login olma islemide burada detayli anlatacagim.
 
Admin.asp Sayfasi Kodlari:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!–#include file="config.asp"–> not: ***baglanti ayarlarimizi aldik
<%
if session("giris")<>"tamam" then not: *** daha önce bahsettigim login olma isleminin asil yapildigi yerdir. Burada bir session belirliyoruz daha öncede biraz bahsettigim gibi session olusturuyoruz. Yani girisimiz kullanci adi ve sifremiz dogru ise giris session umuz tamam halini alacaktir ve bize admin sayfasinin önünü acacaktir…
      username=request.form("username") not: ***ana sayfadan admin sayfasina login butonuna basarak gelioyorduk burada login formunda yazdigimiz kullanici adini aliyoruz
      password=request.form("password") not: *** buradada sifreyi
 
      sql="select * from admin where username=’"&username&"’ and       password=’"&password&"’ and permission= 1" not: ***veritabanimizda kayitli kullanicilari kontrol ediyoruz ki acaba bu kullanicinin yetkisi admin sayfasina girmek için uygunmu kontrol ediyoruz burada permission 1 olmasi demek admin yetkilisi demek olarak ayardim.
      set check=baglanti.execute(sql)
      if check.eof then
      response.redirect("default.asp") not: *** eger yetki gelmediyse bizi geri ana sayafaya yönlendiriyor yani admin girisi basarisiz ya sifremiz dogru degil yada yetkimiz 1 degil
      else
      session("giris")="tamam" not: *** else ile girdigmiz eger sifre yetki dogru ise yapacagimiz en önemli islem burasidir çünkü dikkat ederseniz giris artik “tamam” durumuna gelioyr yani admin sayfasina girisimiz aciliyor
      session("permission")=check("permission") not: ***bunlari yapmasanizda olabilir
      session("username")=check("username") not: *** bunuda yapmasanizda olabilir
      end if
end if
%>
<% if Session("giris")<>"tamam" AND Session("permission")<>1 Then Response.Redirect("default.asp")%> not: *** admin sayfasi için giris yetkimize bakiyoruz giris eger tamam degilse ve yetkimiz 1 degilse ana sayfaya dönüyoruz. Yani admin sayfasi için bu ikisi çok önem tasiyor aksi taktirde kendimizi hep ana sayfada bulacagiz bütün login islemleri basarisiz olacaktir.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ACAN COMPUTER HARDWARES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!–
.style1 {color: #999999}
.style2 {
      font-size: 24px;
      color: #990000;
      font-weight: bold;
}
–>
</style>
</head>
 
<body>
<center>
<table width="800" height="437" border="0">
 <tr>
    <td height="120" colspan="2"><img src="images/logo.jpg" width="800" height="120"></td>
    </tr>
 <tr>
    <td width="649" height="286" valign="top" bgcolor="#FFFFFF"><div align="center">
      <p>&nbsp;</p>
      <form action="addnews.asp" method="post"> not: *** haber eklemek için bizi addnews sayfasina post ediyor yani bir form actik formdaki bilgileri addnews.asp sayfasina gönderiyor.
      <p align="center"><b> Add News:</b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <textarea name="news"></textarea>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
             <input type="submit" value="ADD NEWS" />
             </form> not: *** formu kapattik gidecek bilgiler bu iki form arasinda kalanlar olacaktir
<h1>News</h1> not: *** büyükçe bir NEWS basligi koyduk
<hr> not: *** bir de altina çizgi attik
<%
      set news= server.createObject("adodb.recordset") not: *** simdi haberleri cekmek için news adinda bir küme olusturuyoruz
      sql = "select * from news where onay=false" not: *** sql cümlecigimizi olusturuyoruz dikkat edersiniz buraya cektigimiz haberler onaysiz olanlar yani onayi false olanlar
      news.open sql,baglanti,1,3 not: *** kümeyi onaysiz haberlerle doldurduk
      if news.eof and news.bof then%> not: *** eger kümede eleman yoksa bir uyari verecegiz
      <%response.write("No Waiting News") not: *** yazilacak olan uyari!!!
      end if
      %>
 
        <% do while not news.eof%> not: *** eger küme bos degilse do while döngüsü yapip bütün onaysiz haberleri bir tablo halinde buraya cekiyoruz
        <table border="1">
        <tr>
        <td bgcolor="green" width="300"><%=news("newnews")%></td> not: *** bu komutla haberin yazisini aldik
        <td ><a href="Onayla.asp?id=<%=news("id")%>">&nbsp Publish &nbsp</a><br /></td> not: *** onaysiz olan bu haberi onaylamak için bir link koyduk bu link bizi onayla.asp sayfasina gönderecektir soru isaretiyle koydugumuz ID ise hangi haberin yani onaylanmasi gereken hangi haberin onaylama isleminden geçegini belirleyerek onayla sayfasina gönderiyoruz.
 &nbnbsp;    <td>&nbsp;||&nbsp;</td>
      <td><a href="Sil.asp?id=<%=news("id")%>">Delete</a><br /></td> not: *** buda ilgili haberin silme linkidir. buradada soru isaretiyle ID sini gönderdipmize dikkat ediniz tipki onaylama islemi gibi. Cünkü hangi haberi silecegimizi ancak ID si ile bilebiliriz.
        </table>
        <%
      news.moveNext not: *** bi sonraki habere gecen döngü
      loop
      news.close
      set news = nothing
      %>
<hr>
<br>
<%
      set news= server.createObject("adodb.recordset")
      sql = "select * from news where onay=true" not: *** buradada yukaridaki gibi onaysiz degil de onayli haberleri çekme islemi yapiyoruz bütün islemler ayni… sadece onaylanmis olanlar geliyor bunuda true kelimesi ile ayirt ediyoruz.
      news.open sql,baglanti,1,3
      if news.eof and news.bof then
      response.write("No News")
      end if
      %>
        <% do while not news.eof%>
        <table border="1">
        <tr>
        <td bgcolor="red" width="300"><%=news("newnews")%></td>
        <td ><a href="Onaylama.asp?id=<%=news("id")%>">Unpublish</a><br /></td> not: *** onaylanmis haberi onaysiz hale getirip ana sayfadan yayindan kaldiriyoruz. Bunun içinde onaylama.asp adinda bir sayfamiz daha olmali yani onayla.asp sayfasinin tam tersi islem yapacagiz
      <td>&nbsp;||&nbsp;</td>
      <td><a href="Sil.asp?id=<%=news("id")%>">Delete</a><br /></td>
        </table>
        <%
      news.moveNext
      loop
      news.close
      set news = nothing
      %>
      <br>
       <h1> Orders</h1>      not: *** siparislerimizi çekiyoruz
       <hr />
            <% not: *** yaptigimiz islemler ayni haber çekmek gibi olacaktir.
      set buy= server.createObject("adodb.recordset")
      sql = "select * from buy where onay=false"
      buy.open sql,baglanti,1,3
      if buy.eof and buy.bof then
      response.write("No Buying Hardware")
      end if
      %>
        <% do while not buy.eof%>
        <table border="0">
        <tr>
<td><b>Name:</b></td>
        <td><%=buy("name")%></td>
      </tr>
      <tr>
<td><b>Surname:</b></td>
        <td><%=buy("surname")%></td>
      </tr>
      <tr>
<td><b>Email:</b></td>
        <td><%=buy("email")%></td>
      </tr>
      <tr>
      <td><b>Address:</b></td>
      <td><%=buy("address")%></td>
      </tr>
      <td><b>Phone:</b></td>
        <td><%=buy("phone")%></td>
      </tr>
            <td><b>Hardware Name:</b></td>
        <td><%=buy("compname")%></td>
      </tr>
      <tr>
      <td><a href="Sil2.asp?ID=<%=buy("id")%>">Delete</a><br /></td> not: ***sil2.asp ile de sil.asp den ayirt edilmesi için yani siparislerin silinmesi için.
        </table><hr>
        <%
      buy.moveNext
      loop
      buy.close
      set buy = nothing
      %>
    </div></td>
    <td width="147" valign="top"><p align="center">
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
        <param name="BGCOLOR" value="">
        <param name="movie" value="button1.swf">
        <param name="quality" value="high">
        <embed src="button1.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
      </object>
    </p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button2.swf">
          <param name="quality" value="high">
          <embed src="button2.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button3.swf">
          <param name="quality" value="high">
          <embed src="button3.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="147" height="34">
          <param name="movie" value="button5.swf">
          <param name="quality" value="high">
          <embed src="button5.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="147" height="34" ></embed>
        </object>
</p>
      <p align="center"><br>
        <a href="cik.asp">LOGOUT</a></p>
      </td>
 </tr>
 <tr bgcolor="#990000">
    <td colspan="2"><div align="center" class="style1">Acan Hardware Components Company 2008-2009. All Rights Reserved by ACAN Company. </div></td>
    </tr>
</table>
</center>
</body>
</html>
 
 
 

 
Gördügünüz gibi admin sayfasinda haberlerimizi ve siparislermizi kontrol altina aliyoruz tabi bunu yaparken de login islemlerine önem vermeliyiz.
 
Simdi Öncelikle Bir haber ekleme islemi gerçeklestirip bunu ana sayfada yayinlayalim.
 
Haberimizi giriyoruz.
 Haber Giriyoruz
Add New butonuna bastigimiz anda haber no waiting news yazan yere yerlesip yayinlamayi bekleyecek. Gelelim add news butonunun bu haberi kaydetmek için yapacagi islemler için bizi gönderecegi sayfaya. Yani addnews.asp sayfasina:
 
Addnews.asp Sayfasi Kodlari:
 

<!–#include file="config.asp"–> not: *** baglanti ayarlarimizi aldik
<%
Set news=server.createobject("adodb.recordset") not: *** haberler kümesi yani news adinda bi küme olusturduk
sql="select* from news" not: *** haberleri çekmek için sql cümlemizi olusturduk
news.open sql,baglanti,1,3 not: *** ve kümemizi haberlerle doldurduk
news.addnew not: *** yeni bir haber ekliyoruz
news("newnews")=request.form("news") not: *** admin sayfasindan post ettigimiz haberi aldik
news.update not: ***ve veritabanina kaydettik
news.close
Set news=nothing
response.redirect("Admin.asp") not: *** bu sayfada isimiz bittigi için geri admin sayfasina döndük
%>

 Haber Eklendi
 
Gördügünüz gibi haber suan onay bekliyor halde listemizde. Publish linkine basarak haberi ana sayfada yayinlanabilir hale getirecegiz.
 .
Onayla.asp Sayfasi Kodlari:
 

<!–#include file="config.asp"–> not: *** baglantimizi aldik
<%
id=request.queryString("id") not: *** publish linkiyle bir string göndermistik yani bir ID göndermistik. Bu IDyi aliyoruz
dim news
set news = server.createObject("adodb.recordset") not: ***haberlerimizi için bi küme actik
sql = "select * from news where id="&id not: ***kümeye bu ID li haberi alacak sql cümlesini olusturduk
news.open sql,baglanti,1,3 not: *** ve kümemizi bu ID li haberle doldurduk yani tek bir haber
%>
 
<%
news("onay") = true not: *** ve haberi onayladik
news.update not: *** kümemizdeki bilgiyi veritabanina kaydettik
news.close
set news = nothing
baglanti.close
set baglanti = nothing
response.redirect("Admin.asp") not: *** bu sayfada isimiz bitti tekrar admin sayfasina döndük
 
 
%>
 

 
Bakalim onaylanmis haber admin sayfasinda nasil görünüyor.
 Onaylanmis Haber
Gördügünüz gibi artik onay bekleyen baska haber yok ve deneme haber ekleme olarka yazdigimiz haberde suanda yayinda. Ana Sayfamizda de görüyormu bi bakalim.
 
 Ana Sayfa Haber Eklenmis Hali
 
En üstte görmüs oldugunuz gibi haberimiz yayinda. Ve sag menüye dikkat ederseniz session umuz hala “tamam” durumunda olugu için admin panaline girmek için artik tekrar login olmamiza sifre girmemize gerek yok cünkü henüz logout yapmadik yani cikis yapmadik.
 
Simdi logout yapalim.bu link bizi cik.asp sayfasina gönderecektir. Ve Logout linkinin cik.asp sayfasinda ne gibi islem yaptigimizi görelim.
 
 
cik.asp Sayfasi Kodlari:
 

<%
session.Abandon()
response.Redirect("default.asp")
%>

 
Bu kisa kodda görüldügü bigi sessionu öldürüyoruz yani abondon islemi ile artik session “tamam” durumunda degil.
 
 
Afiyet OLSUN 🙂

SELÇUK ÇELIK
Computer Information Systems
 
 

 

8 thoughts on “Asp Web Sitesi Projesi

  1. Bir windows forms uygulamasi, butona basinca yeni bir background thread aciyor, delegate ile saniyede bir veri uretiyor, veritabanina yaziyor ve ekranda gosteriyor.

    Bir asp.net projesi, ajax ile 3 saniyede bir veri alip veritabanindan bunlari gosteriyor..

    Bunu yazabilmemde yardymcy olabilecek olan var my çok önemli lütfen yardymcy olun lütfen…

  2.  merhaba iyi günler hocam. kodlarin görüntüsü yok ya resimler görünmüyor. insallah çabuk dönersiniz. acil bir ödevim var da 🙂

  3. emeginiz için tesekkürler. bende menü ve sayfa ekleme ile ilgili bi projeye ihtiyacim var. yardimci olursaniz sevinirim

  4. aspde  elimde bir haber scripti var içinde MYSQL.sql dosyasi var peki ben bunu Microsoft SQL 2005′ nasil atabilirim.. yardimlarinizi bekliyorum.. 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir