Zamanlayıcı fonksiyonu Nasıl Kurulur

6 Cevap php

Ben Online Sınav Yönetimi yapıyorum, ben 5 dakika için bir sınav için bir zaman süresi belirledik.

Öğrenci bu sınava katılacak olduğunda, zamanlayıcı azalan başlar.

Ben javascript kullanarak bu zamanlayıcı yaptı.

Öğrencinin birinci sayfa zamanlayıcı başlar yenileyin sorun nedir. Nasıl zaman sayfa yenilendiğinde ise statik yapabilirsiniz.

6 Cevap

You cannot avoid the timer from resetting because when a page reload, all HTML and JS reloads. You can store the current time in a "cookie". Look up "Using cookies in Javascript".

Aşağıdaki gibi iş akışı olacaktır

  1. Sayfa yükleri ve bir zamanlayıcı başlar.
  2. Kullanıcı sayfayı yeniden yükler.
  3. Onbeforeunload (ve onunload) için Javascript olayları dinlemek ve şimdiki zaman saklayan bir çerez yazmak.
  4. Sayfa geri yükler olduğunda, çerez bu sefer okumak ve kullanmak.
  5. Zamanlayıcı sona erdiğinde, çerez temizlemek için emin olun.

Kısacası: Çerezler veya AJAX (PHP)

AJAX zamanlayıcı. Bir php sayfa öğrenci ve javascript için süre saklanan zaman "ikinci" veya ancak uzun düşeriz php anlatacağım "hatırlamak" yapın.

Alternatif olarak, bir çerez kullanmayı deneyin.

Cookie varsa 1) Giriş

2) If not set the cookie to expire in 5 minutes from the start time. If yes, check if Cookie is expired.

3)If the cookie is expired, show "Time up" if not, keep waiting.

Sorun Javascript tarayıcınızın adres çubuğuna çalıştırmak ve gibi gerçekten güvenli bir test ortamında iyi bir seçenek değildir olmasıdır.

Sayfalara veya sayfa yenilemeler arasındaki çevresinde kalacaktı javascript tek şey kurabiyeler.

Periyodik sol zaman için çerez değerini ayarlayın ve eğer onun 0 değil bu değerde zamanlayıcı sayfa yük kontrol ve başlayabilirsiniz.

PHP böyle bir şey yapmak:

<script type="text/javascript">
var remainingtime = <?php echo $remainingtime; /* remaining seconds */ ?>;
</script>

Sonra JavaScript gelen bu değişkenin değerini okuyabilir.

EDIT: Daha sonra tabii ki JavaScript değer sahte olabilir çünkü zaman, doğru ise sunucu tarafında kontrol etmelisiniz.

Cant. Ancak, başka bir şey yapabilirsiniz, az kibar Diyelim ki:

Bu öğrenci X şimdiden sınav başladı ve sayfayı yeniler ise, ;) bu değeri okumak ve onun şansını kapalı darbe söyleyerek veritabanını güncellemek için kullanın ajax

Zamanlayıcı, sunucu tarafında çalışacak ve AJAX kullanarak yoklar.