<div id="menuyazisi" class="menu"><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head><?php
ob_start();
session_start();
$sql=mysql_fetch_array(mysql_query("SELECT * FROM uyeler WHERE ka='$_SESSION[ka]'"));
$id=$sql['id'];
include("config.php");
if ( $_SESSION['ka'] == '' ) {header("Location: index.php"); }
elseif($_SESSION['ban']==1){ header("Location: ban.php");
}else{
mysql_query("UPDATE uyeler SET online='0' WHERE id='$id'");
session_destroy();
header("Location: index.php");}
$url = $_SERVER['HTTP_REFERER'];
echo "Başarıyla Cıkış Yaptınız... Bir Onceki Sayfaya Yonlendiriliyorsunuz Lutfen Bekleyin !<br><br><img src='images/await.gif'>";
echo '<meta http-equiv="refresh" content="5;URL=' . $url . '">';
?></div> Girişte Online Kolonu 1 Olurken Çıkış Yaparken 0 Olmuyor
7
●435
- 27-07-2009, 16:05:26Arkadaşlar Şimdilik Yapmadığım Ama Aklımda Olan Online Üyeleri Bir Sayfada Göstermek. Bunu İçin Şimdilik uyeler tablosunda online diye bir kolon oluşturdum. ve onu varsayılan değeri 0 giriş yapınca ora 1 oluyor ama çıkış yapınca bir türlü 0 yaptıramadım yani girişte problem yok çıkışta var. cikis.php dosyasının kodları ;
- 27-07-2009, 17:09:51Üyeliği durdurulduKodlar biraz garip olmuş
mysql_query("UPDATE uyeler SET online='0' WHERE id='$id'");
kısmında WHERE id = '$id' de sorun olabilir. $id yi nerden alıyor mesela anlamadım. Gerçi üstteki $sql[id] yi nerden alıyor onuda pek anlamadım.
Ama şöyle bir durum da var. Kullanıcı çıkış butonuna basmadaan direk tarayıcıyı kapatırsa, bu kodu çalıştırsanız bile online sütunu 1 olarak kalacaktır ve online görünmeye devam edecektir. Daha farklı bir yöntem kullanın bence, phpclasses.org dan üyelikle ilgili classları inceleyebilirsiniz. - 27-07-2009, 17:59:53başka yöntem aklıma gelmiyor ve merak ettiklerine gelince fetch_arrayın oldyğu sorguda WHERE ka='$_SESSİON[ka]' yani $_SESSİON[ka] da kullanıcı adı var giris.php ye yönlenince tanımlıyordum. ordan da kim giriş yaptıktıysa kullanıcı adı giriyor sonra kullanici adindan idsini alıyorum ve o id ile altta session yok edilmeden online kolonuna 0 ı yazdırmaya çalışıyordum ama olmadı.Vinsanity adlı üyeden alıntı: mesajı görüntüle
eğer bu asla olmuyacaksa başka yöntemler varsa söylerseniz sevinirim... - 27-07-2009, 18:15:12sweatcell adlı üyeden alıntı: mesajı görüntüle
dediğinizi tam anlayamadım sanırım kusura bakmayın. böyle mi demek istediniz;
online adında tablo açacam sonra zaman ip tarih ve uyeid adında 4 kolon sonra üstteki işlemleri mi yapacam ? - 27-07-2009, 18:23:00Üyeliği durdurulduBen üyelik sistemi yazarken eğer online kullanıcıları görmek istiyorsam şöyle birşey yapıyorum.
Üyelerin bulunduğu tabloya son işlem zamanını içeren bir sütun açıyorum. Her üye işleminde (sayfa değiştirme, yenileme, vs) bu sütunu güncelliyorum. Güncellerken o anki zamanı time(); fonksiyonu ile yazdırıyorum.
Online üyeleri listelerken bu tabloya göre son 5dk içinde işlem yapmış üyeleri;
SELECT * FROM uyele WHERE son_islem = '$bes' sorgusu ile listeliyorum. Burdaki
$bes = time() - 60*5; oluyor 5 dk öncesini alabilmek için.
Bu sayede adam tarayıcıyı kapatıp çıkmış olsa bile en fazla 5 dk sonra online listesinden düşüyor.
yinede sağolun arkadaşlar teşekkürler