Php de Kullanıcıyı Belirli Bir Süre Bekletmek
Tarih: Ekim 8th, 2008 | Yazar: Ertuğrul Erkan | Kategori: Php | Etiketler: dersler, işlemi bekletmek, kullanıcıyı bekletmek, mysql, php, Php, php de bekletmek, php de sure, php ders, php dersleri, php ile bekletmek | 2 Yorum »Buyrun arkadaşlar;
Basit olmasına rağmen çok uğraştıran bir konu oldu bu benim için. Abuk sabuk işlerlede uğraştım yanlız bulunca da kendime kızdım
Şimdi arkadaşlar hemen anlatıma geçelim:
Diyelim bir çocuk var. Bu çocuk dersaneye gittiğinde başka hiçbir işlem yapamasın. Ders 1 saat sürüyor ve bu süreçde sadece derste oluyor. Bunu yapmak aslında çok kolaydır. Çünkü php nin kendisi bize bu kodları sunar:
şimdi değişkenleri yazalım:
$sure1 = time();
$sure2 = 60*10;
$toplamsure = $sure1 + $sure2;
$yazilisure = date(“H:i:s”, $toplamsure);
$kalan = $suresy – $sure1;
$kalanyazim = date(“i:s”, $kalan);
$baslamasure = date( ‘H:i:s’, time() );
$bitissure = $yazilissure;
bunlar kullanacağımız değişkenler oldu. Hemen kısaca anlatayım bunlarıda.
Arkadaşlar başlama anı bizim için çok önemli. Çünkü çocuk derse girdiği anda işlem başlıyor. Php burada garanti olsun diye bize time() fonksiyonunu vermiş. Time() bize php nin çalıştırıldığı pc deki saati saniye kavramında verir.
60*10 ise diğer bir kavramdır. 10 burada on dakikayı temsil eder. Bir dk 60 saniye olduğu için 60*10 dan yararlanırız. Neden böyle yapıyoruz dersek çünkü time() değeri sn dir ve süremizinde sn ye eşit olması gerekir…
Topma sure derste geçireceğimiz suredir. Çocuk derse girer + 1 Saat bekler. İşte bu yüzden toplama yaparız ki bize asıl süreyi versin.
Yazilis sure ise saniye cinsinden aldığımız zamanı St
k:Sn şeklinde yazdırır.
Kalan sure ise açıklamaya bile gerke sanıyorum
Aradaki sureyi vermek için vardır.
Şimdi burada bütün süreleri aldık ve zamanı ayarladık. Ama şöyle bir durum var ki bu sistemde de acayip bir açık var. Time() sürekli değişecektir. Nedeni ise pc den çektiğimiz saniye de ilerler. Bu yüzden saat hiç bitmez. Fakat bunu bir yere sabitleyebiliriz. Session diyenleri duyar gidiyim ama malesef o da olmaz. Çünkü kişi internet sayfasını kapattığı anda session silinir. Tabi onlar beraber dklarda…
Cookilerde olmaz. Rapidshare cookie kullanıyor ve ne durumda görüyoruz ![]()
Bizde en garanti yönetemi yapıyoruz: DB kullanıcaz…
Bu aldığımız verileri şu kodla db ye yazıyoruz:
$eklesure = mysql_query("UPDATE uyelik SET `surebasla`='$baslamasure' WHERE `nick`='$kullaniciadi'") or die ("Bir problem olustu");
$eklesure2 = mysql_query("UPDATE uyelik SET `surebitis`='$bitissure' WHERE `nick`='$kullaniciadi'") or die ("Bir problem olustu");
$eklesure3 = mysql_query("UPDATE uyelik SET `suresaniye`='$toplamsure' WHERE `nick`='$kullaniciadi'") or die ("Bir problem olustu") ve şu kodlada çekiyoruz:
$tablo = sprintf(“select * from uyelik where id=’$kullaniciadi’”) or die (“Bir problem olustu”);
$sorgu = mysql_query($tablo);
$sure1y = @mysql_result($sorgu,0,”surebasla”);
$sure2y = @mysql_result($sorgu,0,”surebitis”);
$suresy = @mysql_result($sorgu,0,”suresaniye”);
$baslamas = date( ‘H:i:s’, time() );
En başta verdiğim değişkenlerde bunla beraber anlam kazanıyor… Bu çektiğimiz kodu sureler.php diye include ederseniz daha güzel olur. En azından karmaşıklık olmaz…
Ve son olarak bu kod kontrol ediyoruz:
if($baslamasure < $sure2y)
{
echo "Su anda egitim var. Lütfen $kalanyazim kadar bekleyiniz...";
}else{
echo "Ders bitmiştir";
} Uzun oldu galiba ama kodu uzundu
Herkese iyi günler…
Benzer Yazılar;
- Session İle Yapabileceklerimiz...
- Blog Sistemi Yapalım - 1
- Php ve Mysql ile Not Defteri Yapalım
- Php de Özel Mesaj Sistemi Mantığı Nedir?
- Php ve Jeditable ile Yerinde Düzenleme

Php dersleri çok güzel olmus emeğine sağlik olsun:)
bunu forum sitelerin entegre edip "bu kullanıcı şu tarihe kadar cezalı" şeklinde yazdırılabilir.