• 28-03-2008, 21:53:30
    #1
    Şimdi arkadaşlar sorunum biraz karmaşık nasıl anlatırım bilemiyorum;

    Ben php ve mysql kullanarak bir toplist uygulaması yazmak istiyorum, fakat şu sitelere eklenecek olan counter kodu işleri biraz karıştırıyor. Şimdi benim ilk olarak kafamda tasarladığım iş şuydu sistemi kodlarım, daha sonrada bir tane "hit.php" gibi bir dosya kodlarım, benim sistemime kayıt yaptırır kullanıcı daha sonrada ben kullanıcıya;

    <script src="www.benimsite.com/hit.php?id=üyeidsi"></script>
    gibi bir kod veririm kullanıcı bunu sayfasına ekler; daha sonra o sayfa her çağrıldığında ona göre hit bilgilerini vs. mysql üzerinde güncellerim diyordum. Fakat toplist sistemlerine, reklam yönetim sistemlerine baktığımda kullanıcıya verilen kod hep js şeklinde. Örneğin adsense reklam kodlarını ;

    <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
    şeklinde veriyor. Yani benim düşündüğüm sistemde veriler php ile çekilirken burada js üzerinden çekilmiş.

    Şimdi sorunun aslına dönersek;

    Bu iki sistem arasındaki farklılıklar nedir, güvenlikmi, yoksa hızmı, bu işin mantığı nasıl çalışır, burada sayfalara eklenen js kodu verileri nasıl alır, ana siteye nasıl gönderilir, mysql'e nasıl eklenir bu veriler. Yani bu counter olayını kodlarken nasıl bir mantık kurup nasıl bir yol izlemem gereklidir. Bana bir akıl verirseniz çok mutlu olurum. İnşallah sorunumu anlatabilmişimdir. Şimdiden herkese teşekkür ederim.
  • 28-03-2008, 23:45:25
    #2
    Üyeliği durduruldu
    google'da js'yi derleyen muhtemelen pyhton filandır
    js'de mysql'e bağlanırken yine php kullanacaksın onun yerine
    phpye bağlan değerleri düzenleyip ona göre js oluştursun
  • 29-03-2008, 00:34:21
    #3
    öncelikle cevabınız için çok teşekkürler;

    phpye bağlan değerleri düzenleyip ona göre js oluştursun

    bu kısmı biraz daha açabilirmisiniz rica etsem örneğin benim toplist kodumu ekleyen siteye her ziyaretçi girdiğinde benim mysql deki o ziyaretçiye ait sayaç değeri 1 artacak bunu php - js - mysql kullanarak nasıl sağlarız yani işin mantığını nasıl kurmalıyım.
  • 29-03-2008, 22:08:23
    #4
    Evet bende bu konuyu merak ediyorum, birşeyler bulabilirsem yazarım buraya da.
  • 29-03-2008, 22:26:51
    #5
    Üyeliği durduruldu
    olsa olsa o js dosyasının içinde <a href="....."><img src="......." vardır.
  • 29-03-2008, 23:30:56
    #6
    yani kafamı karıştıran şey mesela adsense'de biz sadece sayfaya bir js kodu ekliyoruz, nasıl oluyorda bu js tıklama gösterim ip vs bilgileri alıyor veritabanına işliyor sonrada veritabanından ilgili reklamları geri js'e yolluyor sonrada o reklamlar bizim sitede çıkıyor. Bu sadece adsense değil birçok toplist uygulamasındada böyle. js le beraber mutlaka bir web dili daha kullanılıyor python, php yada vs. ama js ile etkileşimi nasıl sağlıyorlar. Ben buradaki mantığı çözemedim işte. Yardımlarınızı bekliyorum arkadaşlar.
  • 30-03-2008, 13:11:46
    #7
    var wsBanners=[
    ['<a target=_blank href=http://www.webservis.com.tr><img src=http://logo.webservis.gen.tr/logo/sh1.gif border=0></a>','3000'],
    ['<a target=_blank href=http://www.webservis.gen.tr/in.phtml?user='+wuser+'><img src=http://logo.webservis.gen.tr/logo/'+wbanner+'.gif border=0>','9000']];
    var wsIe=false;
    if(document.all){
    wsIe=true;
    }
    var wBIx=0;
    function getobject(obj){
    if (document.getElementById)
    return document.getElementById(obj)
    else if (document.all)
    return document.all[obj]   
    }
    function wsBC(){
    var hSt=wsBanners[wBIx][0];
    getobject("wbsbn").innerHTML = hSt;
    if(wBIx < wsBanners.length - 1) wBIx++;
    else wBIx=0;
    clearInterval(wsbid);
    wsbid=setInterval("wsBC()",wsBanners[wBIx][1]);
    }
    var wsbid="";
    if(parent.frames.kkwbs)var kkwbs=1;
    if(!document.getElementById('wbsbn'))var kkwbs=1;
    if(kkwbs)var kkwbs=1;
    if(!kkwbs)var kkwbs=2;
    var t=document.location;
    wsbid=setInterval("wsBC()",1000);
    var wlink='<a href=http://www.webservis.gen.tr/in.phtml?user='+wuser+' target=_blank><img src=http://38.98.82.236/analiz.php3?b=1&user='+wuser+'&k='+kkwbs+'&banner='+wbanner+'&referer='+document.referrer+'&l='+t+'&w='+screen.width+'&h='+screen.height+' border=0></a>';
    document.write(""+wlink+"");
    Webservis böyle bir kod kullanıyor. Burda asıl iş analiz.php3 dosyasında. analiz.php3 dosyası yalnız çalıştırıldığında sadece resim çıktısı veren bir kod olsun. Arka planındada adres urlsinden aldığı değişkenleri veritabanına kaydetsin.
    +wuser+ ve +wbanner+ kendi girdiğimiz değerler. referrer, zaman, sayfa adresi ve çözünürlük js ile alınır ama ip yi bilmiyorum. Ayrıca her çalıştırıldığında hit 1 artacak, ip alınabiliyorsa js ile kendin tekil hiti de hesaplarsın zaten.

    Bilgi alma işlemi böyle. Birde aldıktan sonra ona göre birşeyler göstermek mevzusu var. Bunda da aynı işlem kullanılabilir sanırım ama resim dosyası yerine yazı dosyası olur mu, nasıl olur onu bilemicem.
  • 30-03-2008, 14:55:28
    #8
    ilgin için çok teşekkürler forumxtr; evet sende bayağı araştırmışsın konuyu ve temel mantık senin dediğin gibi olmalı. bu arada bende biraz daha inceleyeyim kodları. tekrardan teşekkürler...
  • 30-03-2008, 23:01:09
    #9
    Mesela buda adsense kodu; genel olarak mantık şu; veriler get ile forumxtr arkadaşın dediği gibi bir dosyaya çekilmiş burada adsense'i kodlayanlar açık vermemişler o konuda dosya adı belli değil muhtemelen bir python dosyası veriler yollandıktan sonra o dosyaya buradaki js kodlarının içinden direk "iframe" ile o dosyayı çağırmışlar dosya derlenmiş olarak iframe olarak ekrana yazdırılıncada malum reklamlar ekranda gözüküyor. kodların sonuna doğru bakarsanız iframe'li kısmı görürsünüz. Özellikle bu konuda bana epeyi fikir veren forumxtr arkadaşa çok teşekkür ediyorum.

    google_ad_url = '';
    google_random = (new Date()).getTime();
    google_org_error_handler = window.onerror;
    function quoted(str) {
      return (str != null) ? '"' + str + '"' : '""';
    }
    function google_encodeURIComponent(str) {
      if (typeof(encodeURIComponent) == 'function') {
        return encodeURIComponent(str);
      } else {
        return escape(str);
      }
    }
    function google_write_tracker(tracker_event) {
      var img_url = window.google_ad_url.replace(/pagead\/ads/, 'pagead/imp.gif');
      var img_src = img_url + '&event=' + tracker_event;
      var img_tag = '<i' + 'mg height="1" width="1" border="0" ' +
                    'src=' + quoted(img_src) +
                    ' />';
      document.write(img_tag);
    }
    function google_append_url(param, value) {
      if (value) {
        window.google_ad_url += '&' + param + '=' + value;
      }
    }
    function google_append_url_esc(param, value) {
      if (value) {
        google_append_url(param, google_encodeURIComponent(value));
      }
    }
    function google_append_color(param, value) {
      if (value && typeof(value) == 'object') {
        value = value[window.google_random % value.length];
      }
      google_append_url('color_' + param, value);
    }
    function google_show_ad() {
      var w = window;
      w.onerror = w.google_org_error_handler;
      if (w.google_num_ad_slots) {
        w.google_num_ad_slots = w.google_num_ad_slots + 1;
      } else {
        w.google_num_ad_slots = 1;
      }
      if (w.google_num_ad_slots > 3) {
        return;
      }
      w.google_ad_url = 'http://pagead2.googlesyndication.com/pagead/ads?';
      w.google_ad_client = w.google_ad_client.toLowerCase();
      if (w.google_ad_client.substring(0,3) != 'ca-') {
         w.google_ad_client = 'ca-' + w.google_ad_client;
      }
      w.google_ad_url += 'client=' + escape(w.google_ad_client) +
                         '&random=' + w.google_random;
      google_append_url('hl', w.google_language);
      if (w.google_country) {
        google_append_url('gl', w.google_country);
      } else {
        google_append_url('gl', w.google_gl);
      }
      google_append_url('gr', w.google_region);
      google_append_url_esc('gcs', w.google_city);
      google_append_url_esc('hints', w.google_hints);
      google_append_url('adsafe', w.google_safe);
      google_append_url('oe', w.google_encoding);
      google_append_url('lmt', w.google_last_modified_time);
      google_append_url_esc('alternate_ad_url', w.google_alternate_ad_url);
      google_append_url('alt_color', w.google_alternate_color);
      if (w.google_skip) {
        google_append_url("skip", w.google_skip);
      } else if (w.google_prev_ad_formats) {
        google_append_url_esc('prev_fmts', w.google_prev_ad_formats.toLowerCase());
      }
      if (w.google_ad_format) {
        google_append_url_esc('format', w.google_ad_format.toLowerCase());
        if (w.google_prev_ad_formats) {
          w.google_prev_ad_formats = w.google_prev_ad_formats + ',' + w.google_ad_format;
        } else {
          w.google_prev_ad_formats = w.google_ad_format;
        }
      }
      google_append_url('num_ads', w.google_max_num_ads);
      google_append_url('output', w.google_ad_output);
      google_append_url('adtest', w.google_adtest);
      if (w.google_ad_channel) {
        google_append_url_esc('channel', w.google_ad_channel.toLowerCase());
      }
      google_append_url_esc('url', w.google_page_url);
      google_append_color('bg', w.google_color_bg);
      google_append_color('text', w.google_color_text);
      google_append_color('link', w.google_color_link);
      google_append_color('url', w.google_color_url);
      google_append_color('border', w.google_color_border);
      google_append_color('line', w.google_color_line);
      google_append_url('kw_type', w.google_kw_type);
      google_append_url_esc('kw', w.google_kw);
      google_append_url_esc('contents', w.google_contents);
      google_append_url('num_radlinks', w.google_num_radlinks);
      google_append_url('max_radlink_len', w.google_max_radlink_len);
      google_append_url('rl_filtering', w.google_rl_filtering);
      google_append_url('ad_type', w.google_ad_type);
      google_append_url('image_size', w.google_image_size);
      google_append_url('feedback_link', w.google_feedback);
      w.google_ad_url = w.google_ad_url.substring(0, 1000);
      w.google_ad_url = w.google_ad_url.replace(/%\w?$/, '');
      if (google_ad_output == 'js' && w.google_ad_request_done) {
        document.write('<scr' + 'ipt language="JavaScript1.1"' +
                       ' src=' + quoted(google_ad_url) +
                       '></scr' + 'ipt>');
      } else if (google_ad_output == 'html') {
        if (w.name == 'google_ads_frame') {
          google_write_tracker('reboundredirect');
        } else {
     
    // ********************************************************************
     İşte bu kısımda iframe açılmış
     
     
          document.write('<ifr' + 'ame' +
                        ' name="google_ads_frame"' +
                        ' width=' + quoted(w.google_ad_width) +
                        ' height=' + quoted(w.google_ad_height) +
                        ' frameborder=' + quoted(w.google_ad_frameborder) +
                        ' src=' + quoted(w.google_ad_url) +
                        ' marginwidth="0"' +
                        ' marginheight="0"' +
                        ' vspace="0"' +
                        ' hspace="0"' +
                        ' allowtransparency="true"' +
                        ' scrolling="no">');
         google_write_tracker('noiframe');
         document.write('</ifr' + 'ame>');
        }
      }
      w.google_ad_frameborder = null;
      w.google_ad_format = null;
      w.google_page_url = null;
      w.google_language = null;
      w.google_gl = null;
      w.google_country = null;
      w.google_region = null;
      w.google_city = null;
      w.google_hints = null;
      w.google_safe = null;
      w.google_encoding = null;
      w.google_ad_output = null;
      w.google_max_num_ads = null;
      w.google_ad_channel = null;
      w.google_contents = null;
      w.google_alternate_ad_url = null;
      w.google_alternate_color = null;
      w.google_color_bg = null;
      w.google_color_text = null;
      w.google_color_link = null;
      w.google_color_url = null;
      w.google_color_border = null;
      w.google_color_line = null;
      w.google_adtest = null;
      w.google_kw_type = null;
      w.google_kw = null;
      w.google_num_radlinks = null;
      w.google_max_radlink_len = null;
      w.google_rl_filtering = null;
      w.google_ad_type = null;
      w.google_image_size = null;
      w.google_feedback = null;
      w.google_skip = null;
    }
    function google_error_handler(message, url, line) {
      google_show_ad();
      return true;
    }
    window.onerror = google_error_handler;
    if (window.google_ad_frameborder == null) {
      google_ad_frameborder = 0;
    }
    if (window.google_ad_output == null) {
      google_ad_output = 'html';
    }
    if (window.google_ad_format == null && window.google_ad_output == 'html') {
      google_ad_format = google_ad_width + 'x' + google_ad_height;
    }
    if (window.google_page_url == null) {
      google_page_url = document.referrer;
      if (window.top.location == document.location) {
        google_page_url = document.location;
        google_last_modified_time = Date.parse(document.lastModified) / 1000;
      }
    }
    google_show_ad();