testi bir kere çözebilsin.

haticephlvnhatice pehlevan

merhaba, hazırladığım sitede bir test hazırladım ve öğrenciden bu testi sadece bir kere çözmesini istiyorum. yani bir kere girebilecek teste. yapamıyorum ama :( proje ödevim. yardım edin lütfen. 

2014-01-03 22:13:30

Php

TeaMTurkeRŞenol TÜRKER

testin bir id numarası vardır umarım eğer yoksa bir tane oluşturun ve her test için bir id verin,

sonrasında bunun için birden fazla yöntem var bir kaç tane örnek vereyim;

test id'si için session oluşturabilirsiniz eğer test çözülürse bir session oluşturup buna göre kontorl sağlayabilirsiniz

veya yine aynı yolu izleyerek cookie oluşturabilirsiniz tabiki bunlar anlık çözümler kullanıcı tarayıcı kapatdığı an session kaybolur, cookie ise tarayıcının ön belleği temizlendiği zaman kaybolur.

en iyi çözüm bir tablo oluşturmak ve testi çözen üyeleri bu tabloda tutmak.

tablo için;

id (int)

test_id (int)

uye_id(int)

böyle bir tablo işinizi görecektir test çözüldüğü zaman testin ve üyenin id'sini tabloya kaydetdirirseniz bir daha aynı kullanıcı aynı testi çözemez eğer üyelik sisteminiz yoksa uye_id yerine kullanıcıların ip numaralarınıda tutabilirsiniz.

2014-01-03 22:52:02

haticephlvnhatice pehlevan

üyelerin e postaları farklı. e postadan kontrol yaparak da olabilir mi? yada cookie dediniz. <?php 

   if (!@$_COOKIE["s1"]){

      // Eğer çerez yoksa soru gösterilsin

        // soru çözüldükten sonrada s1 adında bir çerez oluştur

        setcookie("s1","soru", time()+315,360,000);

}else {

       echo "Bu testi daha önce çözdünüz..";

}

?>
 böyle yaptım fakat çalışmadı. :( 

2014-01-04 00:34:52

Edit:

Php

safiyesafiye

COOKIE ömrü bitince tekrar  cözer COOKIE denetlemesi yaparsan

epostaylada olur

test tablosunda

uyenin epsotasını kaydetmen gerek

uye varsa  sen cözmüssün

uye yoksa testti cöz

böyle  olur  sanki:-D

2014-01-04 20:07:12

Php

TeaMTurkeRŞenol TÜRKER

sağlıklı bir sonuç elde etmek istiyorsanız kesinlikle bir üyelik sistemi yazmanız lazım sisteminize ancak bu şekilde kesin bir sonuç elde edebilirsiniz.

uyelik sisteminizi yazdıktan sonra ise daha önce bahsetdiğim şekilde bir test tablosuna çözülen testin ve testi çözen üyenin idsini tutarak yapabilirsiniz.

kontorolünüzüde buna göre yapacaksınız örnek vereyim

cozulen_testler adında bir tablomuz olduğunu varsayalım ve uye bir test çözüyor;

çözeceği testin idsini alalım

$get = $_GET['test_id'];

$sor = mysql_query('select * from where test_id=".$get."');

if(mysql_affected_rows()){

   echo'BU TESTİ ZATEN ÇÖZDÜNÜZ';

}else{

//test daha önce çözülmemiş ise testi ekrana basacağız

$bas = mysql_fetch_assoc($sor);

echo $bas['test_soru'];

echo $bas['test_cevap_1'];

echo $bas['test_cevap_2'];

echo $bas['test_cevap_3'];

echo $bas['test_cevap_4'];

}

2014-01-04 23:17:13

Php

badyguard14Hilmi BORAN

Merhaba Hatice Hanım,

Soruları bir tabloda tuttuğunuzu ama testleri isim olarak tutmadığınızı varsayıyorum ve yol olarak izlemenizi tavsiye ettiğim yöntem şu;

Soru adeti :tahmini 25 olsun
kullanıcılar için eposta adreslerini tutan bir tablo, alanlar [id,eposta] 
kayıt veyahut var mı yok mu sorgusuna ek olarak id'yi sessiona atarsınız sonrasında,cevap tablosunda kullanıcının idsine göre sonuçların sayısını alırsınız 25'e denk ise çözmüştür değilse,  soruların cevaplarını kayıt ederken fazladan bir de kullanıcının idsini sessiondan alıp kayıt ettiriniz.Tabi bu yöntem bir kez işler şu hali ile ama soruların tekil idlerine göre bir koşul ile de bir çok test için kullanılabilir.

İyi çalışmalar.

2014-01-06 22:42:46

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro