2013-03-28 11 views
1

간단한 방문자는 스크립트 내 페이지 (나는 그것이 매우 부정확하고 나쁜 알고 있지만, 지금이 순간에 테스트 용으로 만 사용)에 통합 (PHP) 단순 방문자 카운터를:내가 가진 카운터

<?php 
$file = "counts.html"; 

//if cookie isn't already set,then increase counts by one + save ip, and set a cookie to pc... 
$cookie_namee='mycounterr-456'; 
if (!isset($_COOKIE[$cookie_namee])) { 
    file_put_contents($file, (!file_exists($file) ? 0: (file_get_contents($file)+1))); 
    setcookie($cookie_namee, "Checked", time()+99999, '/'); 
} 
?> 

이 있습니까 방문자의 IP도 얻는 방법? (echo $ GET_REMOTE_IP; does not work).

+0

$ _SERVER 변수를 살펴보면 필요한 경우 IP 및 기타 여러 정보 비트를 제공 할 수 있습니다. http://php.net/manual/en/reserved.variables.server.php – azzy81

+0

[PHP에서 클라이언트 IP 주소를 얻는 방법]은 중복 될 수 있습니까? (http://stackoverflow.com/questions/3003145/how-to) -get-client-ip-address-in-php) –

답변

3

일반적으로 $_SERVER['REMOTE_ADDR'] 변수를 통해 IP 주소를 가져올 수 있습니다.

0

w +를 사용하여 파일을 열면 코드가 자동 저장되어 약간의 코드를 저장할 수 있습니다. 당신이 IP 또는 무언가에 의해 수를 집행하기 정말 쉬운 방법을 원하는 경우

<?php 
// Inits 
$file = "/tmp/counts.html"; 
$cookie_namee='mycounterr-456'; 

// File, created if !exists 
$fh = fopen($file, 'w+'); 
// Get the count, 0 if the file is empty or just created 
$count = (int)fgets($fh); 

//if cookie isn't already set,then increase counts 
//by one + save ip, and set a cookie to pc... 
if (!isset($_COOKIE[$cookie_namee])) { 
    // Increment and write the new count 
    fwrite($fh, ++$count); 
    setcookie($cookie_namee, "Checked", time() + 111400); 
} 

fclose($fh); 

는, 당신은 Redis을 확인있어.

-3

페이지에 방문자를 표시하려면 코드 아래에 넣으십시오.

<?php 

include ("counts.html") 

?> 
3

만족스러운 "간단한"해결책을 찾지 못했기 때문에 나는 내 자신을 생각해 냈습니다. ip.txt라는 빈 파일을 생성하고 코드에서이 곳을 사용 :이 파일은 만료되지 않습니다 및 삭제 얻을 항목부터 얻을 방문자의 양에 따라 시간이 지남에 따라 다소 커질 수있는 것이다

$ip_all = file("ip.txt"); 
$ip_cur = $_SERVER['REMOTE_ADDR']."\n"; 
if (!in_array($ip_cur, $ip_all)) { 
    $ip_all[] = $ip_cur; 
    file_put_contents("ip.txt", implode($ip_all)); 
} 

echo "visitors: " . count($ip_all); 

하는 것으로 같은 쿠키. 그러나 이미 언급했듯이 가능한 한 간단하고 걱정하지 않기를 바랍니다. 또한 나는 웹 크롤러와 다른 로봇이 그들을 돌려 줄 것인지 의심하기 때문에 쿠키에 의존하고 싶지 않습니다.

1

간단한 :

<?php 
$cookie_name = 'counter'; 
$file = 'count.txt'; 

if (!isset($_COOKIE[$cookie_name])) { 
    $count = strval(file_get_contents($file)); 
    file_put_contents($file, $count + 1); 
    setcookie($cookie_name, "Checked", time() + 111400); 
} 
?> 
2

안녕이 내가 방문자의 IP를 등록하는 데 사용하고 있습니다 것입니다.

function get_IP() { 

    // ADRES IP 
    if  (getenv('HTTP_CLIENT_IP'))  $ipaddress = getenv('HTTP_CLIENT_IP'); 
    else if(getenv('HTTP_X_FORWARDED_FOR')) $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); 
    else if(getenv('HTTP_X_FORWARDED'))  $ipaddress = getenv('HTTP_X_FORWARDED'); 
    else if(getenv('HTTP_FORWARDED_FOR')) $ipaddress = getenv('HTTP_FORWARDED_FOR'); 
    else if(getenv('HTTP_FORWARDED'))  $ipaddress = getenv('HTTP_FORWARDED'); 
    else if(getenv('REMOTE_ADDR'))   $ipaddress = getenv('REMOTE_ADDR'); 
    else         $ipaddress = 'UNKNOWN'; 
    // 
    return $ipaddress; 
} 
+0

이 코드가 얼마나 정확한지 궁금합니다. 자료를 읽는 링크가 있습니까? –