Php de Kullanıcıyı Belirli Bir Süre Bekletmek

Tarih: Ekim 8th, 2008 | Yazar: | Kategori: Php | Etiketler: , , , , , , , , , , | 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:Dk: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;

coded by nessus

“Php de Kullanıcıyı Belirli Bir Süre Bekletmek” yazısında 2 Ahkam var.

  1. 1 anil 14:09 on Nisan 27th, 2010 anında kesmiş:

    Php dersleri çok güzel olmus emeğine sağlik olsun:)

  2. 2 bekir dursun 20:32 on Ocak 1st, 2012 anında kesmiş:

    bunu forum sitelerin entegre edip "bu kullanıcı şu tarihe kadar cezalı" şeklinde yazdırılabilir.


Ahkam Kesme Aparatı

  • *