Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Помогите со счетчиком


Рекомендуемые сообщения

Установил счетчик BS Image Counter на www.reklamaforyou.net.ru счетчик отрабатывает некорректно, особенно это видно под Explorer-ом, данные качаются, а графическая составляющая нет. Если Кто-нибудь может, подскажите в чем дело, Пожалуйста Пример здесь, Внизу слева!!!!

Ссылка на комментарий
Поделиться на другие сайты

Ну если просмотрите HTML код увидите ошибок, интересно что под Firefox и под IE код различен.

Если покажите нам сам изходник сайта, PHP код, можно найти и конкретную ошибку :)

Ссылка на комментарий
Поделиться на другие сайты

на странице выложил следуя указаниям <?php include("php-bin/bscounter-php/count.php"); ?> и

<?php bscounter("imia","image", "LED", "png", 5, 5); ?>

скрипт:

<?php

// BS Counter PHP (v2.5.3)

// Copyright 1999-2005 Brian Stanback <brian at stanback dot net>

// This software is protected under the GNU General Public License (see LICENSE)

$pathElem=pathinfo(__FILE__);

$scriptPath=$pathElem['dirname'];

//

// Set config options (see the docs/README for config instructions)

//

// WWW path where png digit images are located (include trailing slash)

$digits_dir = $scriptPath . "/bscounter-common/images/digits/";

// Directory that houses the xml data files (include trailing slash)

$data_dir = $scriptPath . "/../../bscounter-common/data/";

//

// Begin script

//

$time = date("z1y");

$total = 0;

$hosts = array();

//

// Record the hit and print out the count

//

function bscounter($file = "default", $type = "text", $style = "default", $imgtype = "png", $nbdigits = 5, $allow_reloads = 0) {

global $total, $digits_dir;

record_hit($file, $allow_reloads);

if ($type == "image") {

for ($i=0; $i<($nbdigits - strlen($total)); $i++) {

$zeros .= '0';

}

$total = $zeros . $total;

foreach (preg_split("//", $total, -1, PREG_SPLIT_NO_EMPTY) as $num) {

echo "<img src=\"$digits_dir$style/$num.$imgtype\" alt=\"$num\" />";

}

} elseif ($type == "text") {

echo number_format($total);

}

}

function record_hit($file, $allow_reloads) {

global $data_dir, $time, $total, $hosts;

$total = 0;

// Resolve hostname if web server hasnt already (for country statistics)

if (!$_SERVER['REMOTE_HOST']) {

$_SERVER['REMOTE_HOST'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);

}

// Parse the XML stats file for hit count

if (file_exists("$data_dir$file.xml")) {

parse_xml("$data_dir$file.xml");

}

// Count hits in interm log file while checking for reloads

if (file_exists("$data_dir$file.log")) {

$deny_update = count_interm("$data_dir$file.log", $allow_reloads);

}

if ($deny_update != 1 and $allow_reloads != 1) {

foreach ($hosts as $host) {

if ($host == $_SERVER['REMOTE_HOST']) { $deny_update = 1; break; }

}

}

// Append hit to interm log file

if ($deny_update != 1) {

if (file_exists($data_dir)) {

$fh = fopen("$data_dir$file.log", "a");

if (flock($fh, LOCK_EX)) {

fseek($fh, 0, SEEK_END);

fwrite($fh, $time . "\t" . validate_input($_SERVER['HTTP_USER_AGENT']) . "\t" . validate_input($_SERVER['HTTP_REFERER']) . "\t" . validate_input($_SERVER['REMOTE_HOST']) . "\n");

flock($fh, LOCK_UN);

}

fclose($fh);

$total++;

} else {

echo "Counter Error: Data directory not found\n";

}

}

}

//

// XML Parsing Routines

//

function parse_xml($file) {

global $total, $hosts;

$fh = fopen($file, "r");

if (flock($fh, LOCK_SH)) {

while (!feof($fh)) {

$line = fgets($fh, 4096);

if (preg_match("/<total>(\d+)<\/total>/", $line, $regs)) { $total = $regs[1]; }

elseif (preg_match("/<host value=\"(.*)\" \/>/", $line, $regs)) { array_push($hosts, $regs[1]); }

}

flock($fh, LOCK_UN);

}

fclose($fh);

}

//

// Interm log processing

//

function count_interm($file, $allow_reloads) {

global $total;

$deny_update = 0;

$fh = fopen($file, "r");

if (flock($fh, LOCK_SH)) {

while (!feof($fh)) {

$line = fgets($fh, 4096);

$total++;

if ($allow_reloads != 1) {

list($access_time, $user_agent, $referer, $host) = explode("\t", trim($line));

if ($host == $_SERVER['REMOTE_HOST']) { $deny_update = 1; }

}

}

flock($fh, LOCK_UN);

}

fclose($fh);

$total--;

return $deny_update;

}

//

// Remove all 'innapropriate' characters

//

function validate_input($in) {

return preg_replace("#[^A-z0-9-_.+=%&/\?\: ]#", "", $in);

}

?>

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте пользуват относительного путя

Замените

$digits_dir = $scriptPath . "/bscounter-common/images/digits/";

На

$digits_dir = "bscounter-common/images/digits/";
Изменено пользователем Darhazer
Ссылка на комментарий
Поделиться на другие сайты

не помогает, если смотреть скрипт странички из Explorer-а, то там на цифры какая-та совсем странная ссылка появляется: <img src="/home/zashibis/public_html/php-bin/bscounter-php/bscounter-common/images/digits/LED/0.png" alt="0" /> а насколько я понимаю должно быть: <img src="/bscounter-common/images/digits/LED/0.png" alt="0" />. Вот откуда рождается такое начало у ссылки на изображение не совсем ясно.

Ссылка на комментарий
Поделиться на другие сайты

zashibis: путь /home/zashibis/public_html/php-bin/bscounter-php/bscounter-common/images/digits/LED/0.png - это абсолютный путь на сервере, а из браузера он соответственно не виден, так как у браузера корнем считается обычно директория public_html

Меня интерисует вопрос, Вы сделали замену, как показал Darhazer? Сделайте, должно помочь!

Ссылка на комментарий
Поделиться на другие сайты

Если сделать такую замену, то будет не /home/zashibis/public_html/php-bin/bscounter-php/bscounter-common/images/digits/LED/0.png

а /home/zashibis/public_html/php-bin/bscounter-phpbscounter-common/images/digits/LED/0.png

Как видно "/" между bscounter-php и bscounter-common/ пропадает...

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте тогда так

echo "<img src=\"$digits_dir$style/$num.$imgtype\" alt=\"$num\" />";

Заменит на

echo "<img src=\"bscounter-common/images/digits/LED/$num.$imgtype\" alt=\"$num\" />";
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...