|
»Forumlar »D?k?manlar
»PHP ile Sayfa Yenilenmesini Algılama
https://seditio.com.tr/eski1/forums.php?m=posts&q=894 |
| Author: Kaan, Posted: 2010-09-15 18:12 GMT. |
|
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 |
| Author: Aragorn-pc, Posted: 2010-09-17 18:54 GMT. |
|
Kod: [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 San?r?m burada userin girdi?i explorer'i g?steriyor ama kullan?mda olan bir s?r? explorer var php yenileme bu halde di?er explorer 'da da yenileme yap?yor mu acaba ? |
| Author: Kaan, Posted: 2010-09-17 23:05 GMT. |
|
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. |
| Author: Aragorn-pc, Posted: 2010-09-21 12:09 GMT. |
|
Bende ondan bahsediyordum |
| Author: kralmage, Posted: 2010-11-04 09:06 GMT. |
| kaan abi ben mesela sayfa yen?lemeyi engelleyip 5 dk da bir kendisi oto yenilese onu nas?l yapar?m? |
| Author: Kaan, Posted: 2010-11-04 19:55 GMT. |
| o zaman senin trafik (bandwhit) yetmez site her yenilendi?inde trafikden yer bilginiz olsun. |
| Powered by Seditio | Print version |