1

我下载了一个脚本来在我网站的两个页面上运行一个非常基本的计数器。自 2009 年 4 月以来,它一直运行良好,但在过去的三周内,它会突然消失,然后偶尔会再次出现。这周是每一天。起初计数器只是消失了,现在除了横幅之外,带有计数器的页面不会加载。该页面最终会加载,有时最多五分钟。但没有柜台显示。那是很久以后的事了。然后它可以再次消失!

[ http://www.thepenvro.com/][1] 是主页 然后,如果您点击“新闻”,然后点击“社交活动新闻”,这是另一个有计数器的页面。(我们正在尝试查看谁对重聚信息感兴趣)。页面不稳定。它们要么没问题,要么存在但缺少两页左下角的计数器,或者页面将仅显示没有页面内容或计数器的标题。没有特别的顺序。

我已经进入我网站的服务器端并重置脚本(Streamline.net tekkie 告诉我这样做)。它似乎没有帮助,但时不时地想知道这是否只是巧合。

它会影响另一个脚本。我有一个很好用的电子邮件表单,但是当这个计数器消失时,它会关闭联系人页面上的表单到电子邮件功能。我在表格底部放了一条注释,供访问者在收到错误消息时发送电子邮件。当您可以设法让 SUBMIT 甚至更改屏幕时,完整的错误消息是:

FastCGI 错误
FastCGI 处理程序无法处理请求。
错误详情:
FastCGI 池队列已满
错误号:4 (0x80070004)。
错误描述:系统无法打开文件。
HTTP 错误 500 - 服务器错误。
互联网信息服务 (IIS)

Streamline 要求我复制错误...我不能!我只能给他们我在这里发布的内容和截图。所以我不知道是我的剧本还是他们。计数器的脚本如下。这也是我买的东西。我首先认为可能是 IE8 导致了问题,但同样的问题出现在 Firefox 中。

最后一点....这不是发送电子邮件的问题,因为我在站点的一个子域中也有这种问题,并且那里没有问题。但我也没有在子域的任何地方运行计数器。我对主域和子域具有所有相同的功能。

感谢您的帮助...我是一个完整的新手,因此我们将不胜感激地收到任何解决方案。我们正在为五月的重聚做宣传,圣诞节后我有一个大型的电子邮件活动要出去,我不希望网站都被搞砸。如果有替代计数器或者如果我拥有的版本的 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;
}
?>
4

3 回答 3

2

这与 PHP 代码无关,而与网络服务器的配置有关。它可能每秒被击中太多次而无法处理所有请求。

尝试从 IIS 中查看以下设置:

  • instanceMaxRequests
  • 最大实例数
  • 队列长度
于 2009-12-13T12:43:20.340 回答
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 所说的,它获得了太多的点击,所以当一个请求从文件中读取时,另一个请求尝试打开它并且它失败了,或者它只是因为权限问题而无法打开它。

于 2009-12-13T12:46:49.417 回答
0

很多人在使用 streamline.net 时都遇到过同样的问题,包括我自己。我目前有一个与他们合作的网站,该网站在一周中的每一天都有大约 50% 的时间出现该错误。

我的建议,换一个新的供应商。

Streamline.net 不会做任何事情来帮助你,只会用模糊/不准确的答案来欺骗你。我只是在等待我的下一张薪水支票,然后我将与其他人一起购买托管服务。

于 2010-03-01T20:56:58.887 回答