2009-12-13 137 views
1

我下載了一個腳本,在我的兩個網頁上運行一個非常基本的計數器。自2009年4月份以來,它運行得非常好,但在過去的三週內它會突然消失,然後偶爾重新出現。本週它是每一天。首先櫃檯剛剛消失,現在除了橫幅以外,櫃檯的頁面不會加載。該頁面將最終加載,有時最多五分鐘。但沒有櫃檯顯示。那會晚一些。然後它可以再次消失!PHP計數器消失/重新出現

[http://www.thepenvro.com/][1]是主頁然後如果你點擊「新聞」,然後在「社交活動新聞」這是另一個有櫃檯的網頁。 (我們試圖看看誰對團聚信息感興趣)。頁面不穩定。他們可能是好的,或者他們在那裏,但是在兩頁的左下角缺少計數器,或者頁面只顯示沒有頁面內容或計數器的頁眉。所有沒有特定的順序。

我已經進入我的網站的服務器端並重置腳本(被Streamline.net tekkie告知這麼做)。它似乎並沒有幫助,但偶爾也會奇怪,這是不是巧合。

它會影響另一個腳本。我有一個電子郵件的表單,效果很好,但是當這個計數器消失時,它會在聯繫人頁面上將電子郵件功能的形式降低。我在表單的底部留下了一個便條,讓訪客在收到錯誤信息時發送電子郵件。當你能設法得到服從甚至改變屏幕完整的錯誤信息是:

 
FastCGI Error 
The FastCGI Handler was unable to process the request. 
Error Details: 
The FastCGI pool queue is full 
Error Number: 4 (0x80070004). 
Error Description: The system cannot open the file. 
HTTP Error 500 - Server Error. 
Internet Information Services (IIS) 

流線型問我複製的錯誤......我不能!我只能給他們我在這裏發佈的內容和截圖。所以如果是我的腳本或他們,我不知道。計數器的腳本如下。這也是我購買的東西。我首先想到的可能是IE8引起了麻煩,但是同樣的問題在Firefox中顯示。

最後一個注意事項....它不是電子郵件的形式,這是一個問題,因爲我也有運行在網站的子域之一,並沒有那裏的麻煩。但是我沒有在子域上的任何地方運行的計數器。我具有主要和子域的所有相同功能。

謝謝你的幫助...我是一個完整的新手,所以任何解決方案將受到感謝。我們正在爲5月份的團聚做宣傳,聖誕節後我有一個很大的電子郵件宣傳活動,我不希望這個網站全部搞砸了。如果有另一種計數器或者我版本的php版本太舊,我很樂意從信譽良好的來源購買更好的版本。

<?php 
/******************************************************************************* 
* Title: PHP hit counter (PHPcount) 
* Version: 1.2 @ October 26, 2007 
* Author: Klemen Stirn 
* Website: http://www.phpjunkyard.com 
******************************************************************************** 
* COPYRIGHT NOTICE 
* Copyright 2004-2007 Klemen Stirn. All Rights Reserved. 

*******************************************************************************/ 

// SETUP YOUR COUNTER 
// Detailed information found in the readme.htm file 

// Count UNIQUE visitors ONLY? 1 = YES, 0 = NO 
$count_unique = 1; 
// Number of hours a visitor is considered as "unique" 
$unique_hours = 1; 
// Minimum number of digits shown (zero-padding). Set to 0 to disable. 
$min_digits = 0; 

############################# 
#  DO NOT EDIT BELOW  # 
############################# 

/* Turn error notices off */ 
error_reporting(E_ALL^E_NOTICE); 

/* Get page and log file names */ 
$page = input($_GET['page']) or die('ERROR: Missing page ID'); 
$logfile = 'logs/' . $page . '.txt'; 

    /* Does the log exist? */ 
    if (file_exists($logfile)) { 

    /* Get current count */ 
    $count = trim(file_get_contents($logfile)) or $count = 0; 

    if ($count_unique==0 || $_COOKIE['counter_unique']!=$page) { 
    /* Increase the count by 1 */ 
    $count = $count + 1; 
    $fp = @fopen($logfile,'w+') or die('ERROR: Can\'t write to the log file 
    ('.$logfile.'), please make sure this file exists and is CHMOD to 666 (rw-rw-rw-)!'); 
    flock($fp, LOCK_EX); 
    fputs($fp, $count); 
    flock($fp, LOCK_UN); 
    fclose($fp); 

    /* Print the Cookie and P3P compact privacy policy */ 
    header('P3P: CP="NOI NID"'); 
    setcookie('counter_unique', $page, time()+60*60*$unique_hours); 
} 

/* Is zero-padding enabled? */ 
if ($min_digits > 0) { 
    $count = sprintf('%0'.$min_digits.'s',$count); 
} 

/* Print out Javascript code and exit */ 
echo 'document.write(\''.$count.'\');'; 
exit(); 

} else { 
die('ERROR: Invalid log file!'); 
} 

/* This functin handles input parameters making sure nothing dangerous is passed in */ 
function input($in) { 
$out = htmlentities(stripslashes($in)); 
$out = str_replace(array('/','\\'), '', $out); 
return $out; 
} 
?> 

回答

2

這與PHP代碼無關,而是與網絡服務器的配置無關。它可能每秒鐘被處理所有請求的次數太多。

嘗試從IIS看以下設置:

  • instanceMaxRequests
  • MAXINSTANCES
  • queueLength
+0

謝謝你們倆。我們不是那麼受歡迎!我們每天獲得5次點擊。我給這個錯誤屏幕Streamline,如果有最大請求的問題,實例隊列長度...是不是服務器端CGI實用程序?我怎樣才能找出限制是什麼...如果有限制,他們不會說嗎?對不起,很厚。如果這是服務器端問題,我想知道該問什麼或告訴他們。他們所說的只是重新編寫了腳本,我實際上並不知道那是誠實的。它通常不會做任何事情。這個問題本身最終只會迴歸。 – Lauren 2009-12-13 13:22:01

1

如果您訪問計數器直接就可以看到此錯誤消息:

<h1>FastCGI Error</h1> 
The FastCGI Handler was unable to process the request. 
<hr> 
<p>Error Details:</p> 
<ul> 
<li>The FastCGI pool queue is full</li> 
<li>Error Number: 4 (0x80070004).</li> 

<li>Error Description: The system cannot open the file. 
</li> 

</ul> 
<h2>HTTP Error 500 - Server Error.<br>Internet Information Services (IIS)</h2> 

我會說這是Tomh說的,它會得到太多的命中,所以當一個請求正在從文件讀取時,另一個請求嘗試打開它並失敗,或者由於權限問題而無法打開它。

+0

還有第二種選擇:在同一臺服務器上獲得大量流量的另一個站點正在吸收所有資源,而沒有任何資源到OP的站點。 – 2010-03-01 21:00:27

0

很多人在使用streamline.net時都遇到同樣的問題,包括我自己在內。我現在有一個網站,一天中有大約50%的時間,每週都有這個錯誤。

我的建議,換成新的提供者。

Streamline.net不會做任何事情來幫助你,並會用模糊/無法回答的方式讓你脫穎而出。我只是在等待我的下一筆支票,然後我要去和別人購買主機。

相關問題