• 18-12-2010, 16:46:53
    #1
    Üyeliği durduruldu
    Arkadaşlar iyi forumlar,

    Aşağıdaki ekte belirttiğim form'da şöyle bir şey yapmak istiyorum. Sınıf Seç: diye bir bölüm var bu sınıflara 18 kişilik sınır,limit, kontenjan koymak istiyorum yani 4. Sınıf'ı sadece 18 kişi seçebilrsin 19 kişiye uyarı gelsin dolu diye bunu nasıl yapabilirim yardımlarınız için şimdiden tşkler..

    form.asp
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1254"%>
    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <title></title>
    <script language="javascript">
    	function kontrol(form) {
    		if(form.a1.value==""){
    		alert("T.C Numaranızı Belirtiniz");
    		return false;
    		}
    		if(form.a2.value==""){
    		alert("Adınızı ve Soyadınızı Belirtiniz.");
    		return false;
    		}
    		if(form.a3.value==""){
    		alert("Telefon Numaranızı Belirtiniz.");
    		return false;
    		}
    		if(form.a4.value==""){
    		alert("Sınav Saatini Belirtiniz.");
    		return false;
    		}
    		if(form.a5.value==""){
    		alert("Okuduğunuz Sınıfı Belirtiniz.");
    		return false;
    		}
    	return true;
    	}
    </script>
    </head>
    
    <body>
    <center>
    <form action="isle.asp" method="post" onsubmit="return kontrol(this)">
    <table width="395" border="0" class="yazi">
      <tr>
        <td width="169" height="21" align="left">
    	<font face="Calibri" size="2" color="#333333">T.C Numaranız</font></td>
        <td width="216" height="21" align="left">
    	<font face="Calibri" size="2">
    	<input type="text" name="a1" size="30" style="border: 1px solid #E2E2E2; font-family:Calibri; font-size:8pt"></font></td>
      </tr>
      <tr>
        <td height="17" align="left"><font face="Calibri" color="#333333" size="2">Adınız 
    	ve Soyadınız</font></td>
        <td height="17" align="left">
    	<font face="Calibri" size="2">
    	<input type="text" name="a2" size="30" style="border: 1px solid #E2E2E2; font-family:Calibri; font-size:8pt"></font></td>
      </tr>
      <tr>
        <td height="18" align="left"><font face="Calibri" color="#333333" size="2">Telefon Numaranız</font></td>
        <td height="18" align="left">
    	<font face="Calibri" size="2">
    	<input type="text" name="a3" size="30" style="border: 1px solid #E2E2E2; font-family:Calibri; font-size:8pt"></font></td>
      </tr>
    	<tr>
        <td height="20" align="left"><font face="Calibri" size="2" color="#333333">
    	Sınav Saati</font></td>
        <td height="20" align="left">
    								<FONT class="veri">
    								<font color="#FFFFFF" face="Tahoma" size="1">
    	<SELECT name="a4" class="Input" style="border:1px solid #000000; font-family: Calibri; background-color:#DFEDFD; font-size:8pt" size="1">
              <option selected>Saat Seçiniz</option>
    			<option value="10:00">10:00</option>
    			<option value="15:30">15:30</option>
    			<option value="17:30">17:30</option>
            </SELECT></font></FONT></td>
      </tr>
      <tr>
        <td valign="top" align="left"><font face="Calibri" size="2" color="#333333">
    	Okuduğunuz Sınıf</font></td>
        <td align="left">
    								<FONT class="veri">
    								<font color="#FFFFFF" face="Tahoma" size="1">
    	<SELECT name="a5" class="Input" style="border:1px solid #000000; font-family: Calibri; background-color:#DFEDFD; font-size:8pt" size="1">
              <option selected>Sınıf Seçiniz</option>
    			<option value="4. Sınıf">4. Sınıf</option>
    			<option value="5. Sınıf">5. Sınıf</option>
            </SELECT></font><font color="#FFFFFF" face="Calibri" size="2">&nbsp; </font></FONT>
    								</td>
      </tr>
      <tr>
        <td valign="top" height="19" align="left">&nbsp;</td>
        <td height="19" align="left">
    	<br>
    	<font size="2">
    	<input name="button3" type="submit" class="butonlar" id="button3" value="Gönder" style="border:1px solid #D7D7D7; color: #000000; font-family: Calibri; " /><font face="Calibri">
    	</font>
            <input name="button2" type="reset" class="butonlar" id="button4" value="Temizle" style="border:1px solid #D7D7D7; color: #333333; font-family: Calibri; " /></font></td>
      </tr>
      <tr>
        <td colspan="2">
    	<p><font face="Calibri" size="2" color="#333333">Not: Sınıflar 18 
    	Kişiliktir.</font></td>
      </tr>
      </table>
    </form>
    <p><font size="2" face="Calibri"><br />
    <!--
    	...
    -->
    </font>
    </p>
    </center>
    </body>
    </html>
    isle.asp
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1254"%>
    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <title></title>
    
    </head>
    
    <body>
    <center>
    <table width="367" border="0" class="yazi">
    <tr>
    <td>
    <p style="text-align: center">
    <%
    	yol=server.MapPath("data/db.mdb")
    	set baglanti=server.CreateObject("Adodb.connection")
    	baglanti.open("provider=microsoft.jet.oledb.4.0;data source="&yol)
    	
    	' Burada zararlı ifadeler temizliyoruz.
    	function guvenlik(data) 
    	data = Replace (data ,"`","",1,-1,1) 
    	data = Replace (data ,"=","",1,-1,1) 
    	data = Replace (data ,"&","",1,-1,1) 
    	data = Replace (data ,"%","",1,-1,1) 
    	data = Replace (data ,"!","",1,-1,1) 
    	data = Replace (data ,"#","",1,-1,1) 
    	data = Replace (data ,"<","",1,-1,1) 
    	data = Replace (data ,">","",1,-1,1) 
    	data = Replace (data ,"*","",1,-1,1) 
    	data = Replace (data ,"And","",1,-1,1) 
    	data = Replace (data ,"'","",1,-1,1) 
    	data = Replace (data ,"Chr(34)","",1,-1,1) 
    	data = Replace (data ,"Chr(39)","",1,-1,1) 
    	data = Replace (data ,"select","",1,-1,1) 
    	data = Replace (data ,"join","",1,-1,1) 
    	data = Replace (data ,"union","",1,-1,1) 
    	data = Replace (data ,"where","",1,-1,1) 
    	data = Replace (data ,"insert","",1,-1,1) 
    	data = Replace (data ,"delete","",1,-1,1) 
    	data = Replace (data ,"update","",1,-1,1) 
    	data = Replace (data ,"like","",1,-1,1) 
    	data = Replace (data ,"drop","",1,-1,1) 
    	data = Replace (data ,"create","",1,-1,1) 
    	data = Replace (data ,"modify","",1,-1,1) 
    	data = Replace (data ,"rename","",1,-1,1) 
    	data = Replace (data ,"alter","",1,-1,1) 
    	data = Replace (data ,"cast","",1,-1,1) 
    	guvenlik=data 
    	end function 
    	
    	' Burada ilk olarak dim adsoyad,... diyerek oluşturacağımız değişkenlerin isimlerini belirtiyoruz.
    	' Daha sonra değişkenlere eşit gelecek verileri request.Form ile alıyoruz.
    	' Burada trim(guvenlik()) diyerek kötü niyetli kişilerin işlerini zorlaştırıyoruz. Yularıdaki güvenlik fonksiyonumuzu burada çalıştırıyoruz.
    	dim a1,a2,a3,a4,a5,a6,a7
    	a1=trim(guvenlik(request.Form("a1")))
    	a2=trim(guvenlik(request.Form("a2")))
    	a3=trim(guvenlik(request.Form("a3")))
    	a4=trim(guvenlik(request.Form("a4")))
    	a5=trim(guvenlik(request.Form("a5")))
    	a6=request.ServerVariables("REMOTE_ADDR")
    	a7=FormatDateTime(Date)
    	
    	' Flood koruması gerçekleştiriyoruz
    	if session("x")="" then
    	session("x")=0  
    	else  
    	session("x")=session("x")+1
    	end if 
    	
    	if CInt(session("x"))>5 then ' Eğer 5 kereden fazla bu sayfaya geldiyse aşağıdaki hatayı vermesini sağlıyoruz. Buradaki 5 yerine siz dilediğiniz bir rakamı yazabilirsiniz.
    	Session.TimeOut=1 ' Uzaklaştırılma süresi
    	%><font face="Calibri" size="3" color="#333333">
        Flood koruması devrede olduğu için bu sayfaya bir süreliğine ulaşamayacaksınız. Lütfen daha sonra tekrar deneyiniz.
    	<%
    	response.end   
    	end if
    	
    	' Aslında default.asp' de bu kontrolü yapmıştık. Eğer boş alan bırakılırsa hata veriyordu.
    	' Burdada diyelim ki biri direkt olarak www.siteadi.com/isle.asp sayfasına girdi, Default.asp' den gelmedi. O zaman boş bir şekilde veri kaydı gerçekleşir.
    	' Bu kontrolü yaparakta bunu engellemiş olduk. Eğer biz bunu yapmasak boş mesajlar gönderilebilinirdi.
    	if a1="" then
    	response.Redirect("form.asp") ' response bir cevap verme nesnesidir. redirect ise yönlendirme nesnesidir.
    	else
    	' Kayıt işlemi gerçekleşiyor
    	set kaydet=baglanti.execute("insert into form(a1,a2,a3,a4,a5,a6,a7) values('"&a1&"','"&a2&"','"&a3&"','"&a4&"','"&a5&"','"&a6&"','"&a7&"')")
    %>
    	<br /><br />
    	<b>
    
    <img border="0" src="images/webdev-ok-icon.png" width="128" height="128"></b></font></span><font face="Calibri" size="3" color="#333333"><br /><br />
        işleminiz başarılı 
    bir şekilde tamamlanmıştır.
        <br />
        <br />
    	<b><a href="javascript:history.back();"><font color="#333333">Geri Dön</font></a></b><font color="#333333">
    </font>
        </font>
    </span><font face="Trebuchet MS" size="2" color="#333333">
    
    <%
    	end if
    %>
    
    </font>
    </td>
    </tr>
    </table>
    </center>
    </body>
    </html>
  • 18-12-2010, 18:02:08
    #2
    Üyeliği durduruldu
    isle.asp 'de execute ile kayıt yaptığın yeri, yani

    set kaydet=baglanti.execute("insert into form(a1,a2,a3,a4,a5,a6,a7) values('"&a1&"','"&a2&"','"&a3&"','"&a4&"','"&a5&"','"&a6&"','"&a7&"')")
    burayı

    set kaydet=server.createobject("ADODB.recordset")
        sql="select * from form"
        kaydet.open sql,baglanti,1,3
        toplamkayit = kaydet.recordcount 
        if toplamkayit => "18" then
        response.write "<script>alert('18 Kişilik Limit Dolmuştur!')</script>"
        response.write "<script type=text/javascript>"
        response.write "<!--"
        response.write "window.location='form.asp';"
        response.write "-->"
        response.end
        else
        kaydet.addnew
        kaydet("a1")=a1
        kaydet("a2")=a2
        kaydet("a3")=a3
        kaydet("a4")=a4
        kaydet("a5")=a5
        kaydet("a6")=a6
        kaydet("a7")=a7
        kaydet.update
        end if
    bura ile değiştir.

    Mantık: Verileri kaydederken, önce tabloya bağlanıp kaç adet veri olduğunu sorguluyoruz (.recordcount ile)

    Ardından if döngüsü ile 18 'e eşit ya da büyük ise mesaj yazdırıp, form.asp 'ye yönlenmesini sağladık,

    eğer 18 den düşükse kayıt işlemini gerçekleştir dedik.

    (denemedim ama çalışması lazım.)

    bu kadar
    kolay gelsin.
  • 18-12-2010, 18:50:50
    #3
    Üyeliği durduruldu
    çalışssada çalışmasada tşk ederim deniyim bir
  • 18-12-2010, 19:20:04
    #4
    Üyeliği durduruldu
    malesef olmadi 2. gönderiden sonra 18 uyarısını veriyor 4. sınıfada 5. sınıfdada aynı
  • 18-12-2010, 21:02:35
    #5
    Üyeliği durduruldu
    yardım edicek arkadaş yokmu acaba?
  • 18-12-2010, 22:24:31
    #6
    Üyeliği durduruldu
    ben yapıyı anlayamadığım için genel bir cevap verdim.

    sql="select * from form"

    burayı, böyle denermisiniz

    sql="select * from form where a5='"&a5&"'"
  • 19-12-2010, 00:20:04
    #7
    Üyeliği durduruldu
    Yardımlarınız için teşekkür ederim, fakat 2 kere form dolduruyorum hemen Uyarı veriyor 18 kişi doldu diye tek o kaldı acaba dbdenmi kaynaklanıyor kayıt ederken id: 15,16 'dan başlıyor kayıt ediyor 1,2,3,4 diye girmiyor id sayısı ondan olabilirmiki

    Bununla değiştirdim fakat yine a5 5.Sınıf seçmiyorum seçmesende 18 uyarısı veriyor :/
    
    sql="select * from form where a5='"&a5&"'"
  • 19-12-2010, 02:31:11
    #8
    Üyeliği durduruldu
    ilginç

    bir sayfa oluşturup aşağıdaki kodları denermisiniz.

    <%
    yol=server.MapPath("data/db.mdb")
    set baglanti=server.CreateObject("Adodb.connection")
    baglanti.open("provider=microsoft.jet.oledb.4.0;da ta source="&yol)

    set rs = baglanti.execute ("select * from where a5='5. Sınıf'")
    response.write rs.recordcount
    %>

    sayfaya 5. Sınıf olan kaç kayıt varsa toplamını yazması lazım.
  • 19-12-2010, 15:10:10
    #9
    Üyeliği durduruldu
    Malesef yine olmadı rica etsem birde siz denermisiz.

    http://www.dosya.tc/download/2dprk1/form.rar.html