Total Users Online: 0 üye, 269 guest | Tarih/Saat: 2026-09-22 05:28
 
PHP ile Sayfa Yenilenmesini Algılama
2010-09-15 18:12 GMT  oklu Alnt
Kaan

User is: Online status   Gender_M
Posts: 2772
Ülke: İstanbul - 34
Meslek: Serbest Meslek
Age: 43

PHP ile Sayfa Yenilenmesini Alg?lama

Asl?nda garip bir y?ntem, ?okca ihtiya? duyulabilecek bir?ey de?il diye tahmin ediyorum.
Ama i?te, yeri gelince ihtiya? da olabiliyor.

A?a??da verece?im y?ntem tek ba??na sa?l?kl? bir kontrol-?l?me bi?imi de?il. E?er sayfa yenilemesinin alg?lanmas? ?ok ?nemli ise, mutlaka ekstra y?ntemler de geli?itirilmeli.
Kod:
echo '<pre>',print_r($_SERVER,true);

Bu kod ile, PHP taraf?ndan olu?turulan, sunucuya ve ortama dair baz? bilgileri tutan, $_SERVER dizesindeki verileri ekrana yazd?r?yoruz. Bunu yapmam?z?n sebebi, sayfaya direkt olarak girilmesi ile sayfa yenilendi?i zaman ortaya ??kan farkl?l??? orataya koyabilmek. Bu kodun bendeki ??kt?s? a?a??daki gibi :
Kod:
Array
(
    [HTTP_HOST] => localhost
    [HTTP_USER_AGENT] => Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3 FirePHP/0.4
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
    [HTTP_ACCEPT_ENCODING] => gzip,deflate
    [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
    [HTTP_KEEP_ALIVE] => 115
    [HTTP_CONNECTION] => keep-alive
    [PATH] => /usr/local/bin:/usr/bin:/bin
    [SERVER_SIGNATURE] =>
Apache/2.2.14 (Ubuntu) Server at localhost Port 80


    [SERVER_SOFTWARE] => Apache/2.2.14 (Ubuntu)
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => 127.0.0.1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => /var/www
    [SERVER_ADMIN] => webmaster@localhost
    [SCRIPT_FILENAME] => /var/www/i.php
    [REMOTE_PORT] => 50699
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] =>
    [REQUEST_URI] => /i.php
    [SCRIPT_NAME] => /i.php
    [PHP_SELF] => /i.php
    [REQUEST_TIME] => 1276953783
)

Bu kodu denerken, sayfay? yeniledi?inizde ek olarak ?u ??kt?y? g?r?rs?n?z :
Kod:
[HTTP_CACHE_CONTROL] => max-age=0

Bu farkl?l???n sebebi, taray?c?n?n ikinci iste?i yapt???nda, kar??l???nda ?nbellekten gelen bilgileri de?il, sayfay? as?l kaynaktan direkt olarak almak istedi?ini belirtmesidir.

??te bizde bu de?i?keni takip ederek, sayfan?n yenilendi?inin ya da sayfaya direkt olarak eri?ildi?ini anlamaya ?al???yoruz :
Kod:
if(!empty($_SERVER['HTTP_CACHE_CONTROL'])) {
  echo 'sayfa yenilendi';
}

Bu kontrol ile, sadece i?i kural?na g?re yapan taray?c?lar ile ba?ar? oran?m?z y?ksek olur. Ama bot dedi?imiz siteleri gezen programc?klar i?in farkl? y?ntemler de gerekli.

Ersin do?an: Deneysel, Php Web Programlama
Konuyla İlgili Diğer Başlıklar
randpolls gönder yeni sayfa
Oylamaya Göre Sayfa Sıralama
Sayfa Hızınızı Arttırma İpuçları
Sayfa Yorum Stili
Sayfa Seo Core Hack
Emlak, Oto Galeri, Rent A Car, ?iir, Edebiyat Script Sipari?lerinizi Verebilirsiniz.
Detaylar ??in: kaan@ntka.org

Seditio 170 ?ndir
Capte M?zik ?ndir
Seditio Toolbar ?ndir

 

Powered by Seditio © 2009-2012 All Rights Reserved