• 09-01-2009, 18:43:24
    #1
    Eposta Aktivasyonu Gerekmekte
    Merhaba arkadaşlar
    Ben php nin gd kütüphanesiyle bir resim dosyasının üzerine sayaç verileri yazdırıyorum.Sayaç verileri metin belgesinde tutuluyor.Her açılışta değer 1 arttırılıyor.Ben her ziyaretçi başına bir artırılsın istiyorum.Yani ilk açışta 1 artcak.Daha sonra ziyaretçi sayfayı yenilediğinde tekrar artmıcak.Bunu Cookie ve Sessionlarla denedim, başarılı oldum ama bir html dosyasından <img src=link> şeklinde çağırdığımda session ve cookielerle çalışmıyor.Bende o şekilde kullanmak için ziyaretçinin ip adresini txt dosyasına depolayıp, ilk gelişte sayacı bir arttırıp, ip adresini metin belgesine yazıdırıcam.Daha sonra geldiğinde ip adresi metin belgesinde varsa değer artırılmıyacak.
    Aşşağıdaki kod düzeni çok hatalı oluyor.

    <?php
    $dosya="./dosya.txt"; 
    $ac = @fopen($dosya ,"r"); 
    $sayac = @fread($ac,filesize($dosya)); 
    fclose($ac); 
     
    $dosya2="./ip.txt";
    
    $ip=$_SERVER['REMOTE_ADDR'];
    $oku=@fread($ac3,filesize($dosya2));
    if (! ereg($ip,$oku)) {
    	$ac3=@fopen($dosya2,'a+');
    fputs($ac3,"_$ip_");
    fclose($ac3);
    	$ac2 = @fopen($dosya,"w");
     fputs ($ac2,$sayac); 
    fclose($ac2); 
    
    }
    $sayac++;
    ..
    ...
    ....
    Resim kodları
    ..................................
    
    ?>
    Resim kodlarında hata yok.Çok kez denedim.Bu sayac işlemlerimde hata var.Yardımcı olursanız sevinirim.
  • 09-01-2009, 19:53:48
    #2
    Txt kullanmanız pek yararlı olmaz ipler arttığı zaman işlem yapamaz hale gelirsiniz, db kullanmanızı tavsiye ederim, ben de şu an sitem için bir sayaçla uğaşıyordum size yardımı dokunursa kodlar bunlar;
    Sistem basitçe online ziyaretçileri bugün tekili ve toplam tekili sayıyor;
    Sql yapısı;
    CREATE TABLE `online` (
      `ip` varchar(50) NOT NULL,
      `time` varchar(50) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    CREATE TABLE `ziyaret` (
      `id` int(50) NOT NULL auto_increment,
      `ip` varchar(75) NOT NULL,
      `tarih` varchar(12) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=385 ;
    Kodlar;
    		<strong><li>Aktif Ziyaretci:</strong>"; 
    
    #---Aktif Ziyaretçi Sayýsý--------------------------------------------------------------------
    
    $ip = $_SERVER['REMOTE_ADDR']; 
    
    $past = time()-25; 
    
    mysql_query("DELETE FROM online WHERE time < $past"); 
    
    $result = mysql_query("SELECT time FROM online WHERE ip='$ip'"); 
    
    $time = time(); 
    
    if($row = mysql_fetch_array($result)){ 
    
    mysql_query("UPDATE online SET time='$time',ip='$ip' WHERE ip='$ip'");
    
    }else{ 
    
    mysql_query("INSERT INTO online (ip,time) VALUES ('$ip','$time')") or die(mysql_error()); 
    
    } 
    
    $result   = mysql_query("SELECT ip FROM online"); 
    
    $aktifkac = mysql_num_rows($result);
    
    echo " ".$aktifkac; 	
    
    echo " ".$dunku;
    
    #---Dün Tekil Toplam Kaç Kiţi Girmiţ----------------------------------------------------------		
    
    			echo "</li><strong><li>Bugun Tekil:</strong>"; 
    
    #---Bugün Tekil Toplam Kaç Kiţi Girmiţ--------------------------------------------------------	
    
    $bugun =date("Y-m-d");
    
    $so = mysql_query("select tarih from ziyaret where tarih='$bugun'");
    
    $bugunku = mysql_num_rows($so);
    
    echo " ".$bugunku; 			
    
    #---Bugün Tekil Toplam Kaç Kiţi Girmiţ--------------------------------------------------------			
    
    			echo "</li><strong><li>Toplam Tekil:</strong>"; 
    
    #---Toplam Tekil Kaç Kiţi Girmiţ--------------------------------------------------------------			
    
    $ipsi  = $_SERVER['REMOTE_ADDR'];
    
    $tarih = date("Y-m-d");
    
    
    
    $ipkontrol = mysql_query("select * from ziyaret where ip='$ipsi' order by id desc");
    
    $y  = mysql_fetch_assoc($ipkontrol);
    
    $vip   = $y['ip'];
    
    $vtarih= $y['tarih'];
    
    $bak = mysql_num_rows($ipkontrol);
    
    if($bak>0){  //if-
    
        if($vtarih<$tarih){
    
        $kayit_1 = mysql_query("insert into ziyaret (ip,tarih) values ('$ipsi','$tarih')");
    
        } 
    
    }//if-
    
    else{
    
    $kayit_2 = mysql_query("insert into ziyaret (ip,tarih) values ('$ipsi','$tarih')");
    
    }
    
    $toplamne = mysql_query("select * from ziyaret");
    
    $toplamziyaret  = mysql_num_rows($toplamne);
    
    echo " ".$toplamziyaret.'</li>';			
    
    ?>
  • 09-01-2009, 22:36:07
    #3
    Üyeliği durduruldu
    Dualwarior adlı üyeden alıntı: mesajı görüntüle
    Resim kodlarında hata yok.Çok kez denedim.Bu sayac işlemlerimde hata var.Yardımcı olursanız sevinirim.
    resimde cookie ve session çalışır.

    bir mantık hatanız olması gerekiyor. form güvenliği için kullanıyorum.

    örnek kodunuz varsa belirtebilirsiniz
  • 10-01-2009, 13:23:12
    #4
    Eposta Aktivasyonu Gerekmekte
    @macchess
    Yardımın için teşşekürler, deneme amaçlı yapmıştım ben,ilerde işler büyüyeceği için alt yapı yapmakta ve son çare mysql kullanmakta fayda var.Tekrar teşşekür ederim.
    @sdemirkeser
    İlgilendiğin için teşşekürler ederim.
    Benim yaptığım şöyle; tek dosyada session ve cookie kullanıcam.Mesala session_start(); ile başlayıp devam ediyorum.Eğer deger diye bir session yoksa deger diye bi session atıyorum.İlk seferde olmadığından sayacı bir arttırıcak ve session atıcak.Bu şekilde yaptım.Daha sonra session olduğu için sayaç arttırma ve session atama olmucak.Bu şekilde yaptım. mesala adı asd.php ise localdan çağırıyorum.Gayet güzel çalışıyor.
    Ama ev.html diye bi html dosyası oluşturup içine sadece <img src=./asd.php> yazıp kaydedip çalıştırınca her yenilediğimde değer artıyor.Sessionlar yokmuş gibi oluyor.Cookie ile de denediğimde aynısı oluyor.
    EDİT:
    Bişey farkettim, babamın bürosundan, resmi html dosyasına çağırdığımda çalışıyor, yani , ilk sefer artıyo sonra artmıyor.
    Ama evde denediğimde resmi html dosyasına çalıştırdığımda hep artıyor. :S