master & login & logout durumlarını tek tek denedim. çalışıyor sanırım
<?
error_reporting (E_ALL | E_STRICT);
session_start();
class online {
var $online_uyeler;
var $dosyaadi = "online.txt";
var $file;
var $readFile;
function online(){
$this->file = fopen ($this->dosyaadi , "w+");
$this->readFile = fopen ($this->dosyaadi , "r");
}
function yazdir(){
$icerik = "";
while (list($anahtar,$deger) = each($this->online_uyeler)) {
$icerik .= $anahtar."-".$deger.";";
}
$icerik = substr($icerik,0,strlen($icerik)-1);
if (is_writable($this->dosyaadi)) {
if(fwrite($this->file,$icerik) !== false){
fclose($this->file);
return true;
}
}
return false;
}
function oku(){
if(is_readable($this->dosyaadi) && filesize($this->dosyaadi) > 0){
$veri = "";
while(!feof($this->file)){
$veri .= fread($this->file,filesize($this->dosyaadi));
}
fclose($this->file);
return $veri;
}
return false;
}
function veri_ekle($uye_id,$kullaniciadi){
$this->veri_listele();
$this->online_uyeler[$uye_id] = $kullaniciadi;
$this->yazdir();
}
function veri_sil($uye_id){
$this->veri_listele();
unset($this->online_uyeler[$uye_id]);
//$this->yazdir(); üstte online üyeleri unset yapıyorsun sonra yazdir çağırınca yazdır içindeki each fonksiyonu dizi istiyor...
//sen online uyeleri dizilikten çıkardın :)
}
function veri_listele(){
$icerikler = $this->oku();
if($icerikler !== false){
$icerik = explode(';',$icerikler);
unset($this->online_uyeler);
for($i=0;$i<count($icerik);$i++){
$anahtar_deger = explode('-',$icerik[$i]);
$anahtar = $anahtar_deger[0];
$deger = $anahtar_deger[1];
$this->online_uyeler[$anahtar] = $deger;
}
}
}
function veri_goster(){
$this->veri_listele();
return $this->online_uyeler;
}
}
//Kullanım Şekli..
$yeniOnline= new online; //Class'ımızı yarattık.
$_GET['login'] =1 ;$_GET['master'] = 1;
if(isset($_GET['login'])){
$yeniOnline->veri_ekle($_SESSION["uye_id"],$_SESSION["kullaniciadi"]); //Kullanıcı login olduğu an kullanıcı eklenecek.
}
if(isset($_GET["logout"])){
$yeniOnline->veri_sil($_SESSION["uye_id"]); //Kullanıcı çıkış yaptığı an kullanıcı silinecek.
}
if(isset($_GET["master"])){
$uyeler = $yeniOnline->veri_goster(); //Kullanıcıları gösterir.
if($uyeler){
while (list($anahtar,$deger) = each($uyeler)) {
echo $deger."<br />";
}
}else{
echo "Sitede online üye yok.";
}
}
?>