Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

zaman kontolü?

Konu, 'ASP' kısmında Hasan Yýlmaz tarafından paylaşıldı.

  1. Hasan Yýlmaz

    Hasan Yýlmaz Üye

    Kayıt:
    5 Aralık 2002
    Mesajlar:
    33
    Beğenilen Mesajlar:
    0
    merhaba,
    arkadaşlar benim 1 sorum olacak,

    Ben bir test hazırladım ve bu testin bir süresi var 30 dk. Bu süre bitiminde işte kullanıcıya uyarı filam verilcek test resetlenecek .Bu süre kısıtlama işini nasıl yapacağız? (biliyormusun.net'te her soru için 30 sn veriliyor ben onu tüm teste 30dk vererek yapmak istiyorum tek soruya değil
    )
     
    Son düzenleme yönetici tarafından yapıldı: 14 Mart 2003
  2. Scorpion

    Scorpion Daimi Üye

    Kayıt:
    17 Ekim 2002
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    Javascript kullanarak yapabilirsin... JS ile sayfayı yenilersin yada ikinci bir sayfaya yonlendirirsin... Yani vaktiniz doldu şeklinde bir sayfa çıkar...
    Ancak Browser dan stop tuşuna basılınca sanırım süre işlemez.Aplet falan da kullanılabilir.
     
  3. Scorpion

    Scorpion Daimi Üye

    Kayıt:
    17 Ekim 2002
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    İkinci olarakda test sırasında test sonuçlarını işleyecek olan asp 'ye testin başlama saatini gönderirsin. işleme saati ile arasındaki fark 30 dak dan buyukse değerlendirme işlemini ona gore yaparsın...

    Js ile 30 dak dolunca bir uyarı mesajı verebilirsin... Hatta sayfaya bir sayaç ekleyip 30 dan geriye saydırabilirsin
     
  4. p4r4h4t

    p4r4h4t Aktif Üye

    Kayıt:
    21 Ekim 2002
    Mesajlar:
    397
    Beğenilen Mesajlar:
    0
    programatik olarak yapilamiyacak bir $ey deil

    JavaScript-de "setTimeout" fonksiyonunu incelyeniz.
     
  5. Hasan Yýlmaz

    Hasan Yýlmaz Üye

    Kayıt:
    5 Aralık 2002
    Mesajlar:
    33
    Beğenilen Mesajlar:
    0
    *************************************************
    İkinci olarakda test sırasında test sonuçlarını işleyecek olan asp 'ye testin başlama saatini gönderirsin. işleme saati ile arasındaki fark 30 dak dan buyukse değerlendirme işlemini ona gore yaparsın...
    *************************************************
    Bu aklıma yattı ama diğer çözümleride deneyeceğim.
     
  6. Hasan Yýlmaz

    Hasan Yýlmaz Üye

    Kayıt:
    5 Aralık 2002
    Mesajlar:
    33
    Beğenilen Mesajlar:
    0
    arkadaşlar javascript ile bu işimi tamamen halledecek kodu buldum dökümanlarımın arasında.(pcmagazinin arşivinde)
    işte sayfa şu

    ****************************************************
    <HTML>
    <TITLE>Zamanlayıcı</TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function display()
    {
    rtime=etime-ctime;
    if (rtime>60)
    m=parseInt(rtime/60);
    else
    m=0;
    s=parseInt(rtime-m*60);
    if(s<10)
    s="0"+s
    window.status="Kalan Süre: "+m+":"+s
    "Kalan Süre: "+m+":"+s
    window.setTimeout("checktime()",1000)
    }
    function settimes()
    {
    alert("Bu testi tamamlamak için 5 dakikanız var.")
    var time= new Date();
    hours= time.getHours();
    mins= time.getMinutes();
    secs= time.getSeconds();
    etime=hours*3600+mins*60+secs;
    etime+=300;
    checktime();
    }
    function checktime()
    {
    var time= new Date();
    hours= time.getHours();
    mins= time.getMinutes();
    secs= time.getSeconds();
    ctime=hours*3600+mins*60+secs
    if(ctime>=etime)
    expired();
    else
    display();
    }
    function expired()
    {
    alert("Süre Doldu");
    location.href="Sonraki.htm";
    }
    // -->
    </SCRIPT>
    <BODY BGCOLOR="#FFFFFF" onLoad="settimes()">
    <P><font size=+2 face=arial><b>Zamanlayıcı</b></font><p>

    Bu Javascript kullanıcıya belirli bir miktar süre vererek verilen süre bitince sayfanın otomatik olarak başka bir yönlenmesini sağlar.
    <HR>
    <FORM>
    <INPUT TYPE="button" VALUE="tamamla" onClick="location.href='bitti.html'">
    </FORM>
    <hr>
    ****************************************************

    Bu kod benim ihtiyacımı tamamen karşılıyor ama (merak işte:)) ASP ile herhangi bir çözüm yolu yok mu mesela scorpion arkadaşımızın 2 önerisi hoştu ama daha dinamik bir çözüm yolu ASP de var mı?
     
  7. Scorpion

    Scorpion Daimi Üye

    Kayıt:
    17 Ekim 2002
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    :super:
    Ama dediğim gibi JS beowserdan dur komutunda saymayı durduruyormu durdurmuyormu?
    Ona dikkat et eğer gerisayma ilşemi duruyorsa Hem saati gönder hem js yi kullan.
     
  8. acemi

    acemi Misafir

    ASP istemci tarafinda calismadigi icin ASP sayfasi, zaman bitince istemciyi uyaramaz. Mutlaka istemcinin bu sureyi saymasi veya belli araliklarla, ASP sayfasina "ne kadar zamanim kaldi" diye sormasi lazim.

    Sayfaya konulacak bir frame, belli araliklarla refesh edilerek ASP sayfasindan ne kadar zamanin kaldigini ogrenebilir.

    Zamani istemci tarafinda calisacak JavaScript kodu ile kontrol edilmesinin bazi dezavantajlari var. Orneginin birisi JavaScript kullanimini kapatir veya kendi hazirladigi HTML sayfasi ile teste katilirsa, sinirsiz zamana sahip olur.

    Bu nedenle zamanin kesinlikle sunucu tarafinda bir session degiskeninde tutulmasi lazim.
     
  9. Hasan Yýlmaz

    Hasan Yýlmaz Üye

    Kayıt:
    5 Aralık 2002
    Mesajlar:
    33
    Beğenilen Mesajlar:
    0
    Browserda dur a basınca süre kilitlenmiyor ama refresh yapınca yanı sayfada süreyi yeniden başlatıyor:(
     
  10. muharrem_tac

    muharrem_tac Bilgisayarcý

    Kayıt:
    17 Ekim 2002
    Mesajlar:
    3,948
    Beğenilen Mesajlar:
    0
    Meslek:
    Yazılım Geliştirici
    Şehir:
    İstanbul
    acemi5 'in söyledikleri tamamen doğru.Bu bir.

    Bu teknik pek kullanılmıyor ama istemci-sunucu teknolojilerini birleştirerek bir çözüm bulabiliriz.

    JavaScript koduna ASP takıları katarak:

    Kod:
    <HTML> 
    <TITLE>Zamanlayıcı</TITLE>
    <head> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    function display() 
    { 
    rtime=etime-ctime; 
    if (rtime>60) 
    m=parseInt(rtime/60); 
    else 
    m=0; 
    s=parseInt(rtime-m*60); 
    if(s<10) 
    s="0"+s 
    window.status="Kalan Süre: "+m+":"+s 
    "Kalan Süre: "+m+":"+s 
    window.setTimeout("checktime()",1000) 
    } 
    function settimes() 
    { 
    alert("Bu testi tamamlamak için [color=red]<%=veri("sure")%>[/color] dakikanız var.") 
    var time= new Date(); 
    hours= time.getHours(); 
    mins= time.getMinutes(); 
    secs= time.getSeconds(); 
    etime=hours*3600+mins*60+secs; 
    etime+=<%=veri("sure")*60%> ; 
    checktime(); 
    } 
    function checktime() 
    { 
    var time= new Date(); 
    hours= time.getHours(); 
    mins= time.getMinutes(); 
    secs= time.getSeconds(); 
    ctime=hours*3600+mins*60+secs 
    if(ctime>=etime) 
    expired(); 
    else 
    display(); 
    } 
    function expired() 
    { 
    alert("Süre Doldu"); 
    location.href="sonraki.asp"; 
    } 
    // --> 
    </SCRIPT> 
    <head>
    <body onLoad="settimes()"> 
    </body>
    </html>
    
    Burada soru süresinin veritabanından geldiğini varsayıyoruz.<%=veri("sure")%> yerine session.timeout değişkeni de verilebilir.Ya da buna benzer şekilde..Javascript koduna ASP takıları eklemek mümkün böyle birşeyler denemek lazım.
     
    Son düzenleme yönetici tarafından yapıldı: 15 Mart 2003