Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2025, 20:34
Аватар для cupoma58
Интересующийся
Отправить личное сообщение для cupoma58 Посмотреть профиль Найти все сообщения от cupoma58
 
Регистрация: 10.11.2016
Сообщений: 28

Реализация счётчика
Нашёл счётчик на PHP+mySQL+JS. На страничку вставляется кодом:
cookie_detect=' ';
document.cookie = 'kamsoft=1; path=/'; 
cookie_detect += 'c=' + (document.cookie?'Да':'Нет'); 
document.write ('<img src="counter/counter.php"' + cookie_detect + '&p=' + window.location.pathname + '&rand=' + Math.random() + 'alt="счётчик" border="0" width="88" height="57" />');

Он, по идее, реализует изображение счётчика (file.png), с наносимыми на него, через PHP, цифрами. Поскольку счётчик - не появился, хотелось-бы быть уверенным в работоспособности этого кода.
Буду признателен за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2025, 22:17
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,597

Наверное так:
cookie_detect='';
document.cookie = 'kamsoft=1; path=/'; 
cookie_detect += 'c=' + (document.cookie?'Да':'Нет'); 
document.write ('<img src="counter/counter.php?' + cookie_detect + '&p=' + window.location.pathname + '&rand=' + Math.random() + '" alt="счётчик" border="0" width="88" height="57" />');

Иначе у тебя параметры в php не передаются, а пишутся как атрибут img.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый Вчера, 10:42
Аватар для cupoma58
Интересующийся
Отправить личное сообщение для cupoma58 Посмотреть профиль Найти все сообщения от cupoma58
 
Регистрация: 10.11.2016
Сообщений: 28

Это - трёх-уровневый счётчик. Общее количество просмотров, просмотры за сегодня и количество посетителей. Насколько я понимаю - за создание текста на счётчике (file.png) - отвечает php-файл. А скрипт - срисовывает это изображение. Я не до конца понимаю содержимое скобочек (кроме - рандома), не нашёл материала.
Предложенный вариант - не сработал, к сожалению.
Ответить с цитированием
  #4 (permalink)  
Старый Вчера, 12:21
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

Сообщение от Aetae
'Да':'Нет'
Из-за кириллицы может не работать.
Сообщение от Aetae
counter.php
Покажи.
Ответить с цитированием
  #5 (permalink)  
Старый Вчера, 13:33
Аватар для cupoma58
Интересующийся
Отправить личное сообщение для cupoma58 Посмотреть профиль Найти все сообщения от cupoma58
 
Регистрация: 10.11.2016
Сообщений: 28

Сообщение от Rise Посмотреть сообщение
Из-за кириллицы может не работать.
Покажи.
Здесь, добавления файла, нет. Это - код:
<?php
// запрещаем вывод предупреждений
error_reporting(-1);

include("connect_db.php");

if (!extension_loaded("gd")) {
    echo"<font color='#ff0000'>Не загружен модуль GD</font>";
    exit;
} 

// определяем ip-адрес и дату
$ip = (isset($_SERVER["REMOTE_ADDR"])) ? $_SERVER["REMOTE_ADDR"] : false;
$date = date("Y-m-d");

// перед добавлением информации в БД нужно применить addslashes(), для JS
$cookie = addslashes($today_hosts);
$referer = addslashes($r);                                          // &r 
$java = addslashes($je);                                            // &je
$browser = addslashes($na);                                         // &na
$page = addslashes($p);                                             // &p

$result = mysql_query("INSERT INTO kscount VALUES ('".$ip."','".$cookie."','".$java."','".$browser."','".$page."','".$date."')");

// хиты (просмотры страниц) за все время
$result3 = mysql_query("UPDATE countall SET countall = countall + 1");

$result2 = mysql_query("SELECT countall FROM countall");
$num_results2 = mysql_num_rows($result2);
for ($i = 0; $i < $num_results2; $i++) {
    $row = mysql_fetch_array($result2);
    $all_hits = htmlspecialchars(stripslashes($row["countall"]));
}

// хиты за сегодня
$result4 = mysql_query("SELECT * FROM kscount WHERE date='$date'");
$today_hits = mysql_num_rows($result4);

// хосты (посетители) за сегодня
$result5 = mysql_query("SELECT DISTINCT usip FROM kscount WHERE date='$date'");
$today_hosts = mysql_num_rows($result5);

// если число будет длиннее 15 цифр или неизвестно, то выведем знак ?
if (strlen($all_hits) > 15 || !isset($all_hits)) {$all_hits = "?";}             
if (strlen($today_hits) > 15 || !isset($today_hits)) {$today_hits = "?";}       
if (strlen($today_hosts) > 15 || !isset($today_hosts)) {$today_hosts = "?";}  
  
// создаем картинку 
// запрещаем кэширование, чтобы картинка не сохранялась в кэше браузера, а обновлялась при каждой загрузке
header("Expires: Mon, 25 Jul 2005 10:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-type: image/png");
$image = ImageCreateFromPng("counter/counter.png");

// выбираем цвет для текста счетчика                  
$color = ImageColorAllocate($image, 255,255,0);        
$color2 = ImageColorAllocate($image, 0,0,255);         
$color3 = ImageColorAllocate($image, 0,0,0);           

// рисуем, например, строку $all_hits, цветом $color, шрифтом 14, лву: х=2 у=2
ImageString($image,5,2,2,"$all_hits",$color);                                                        
ImageString($image,5,2,21,"$today_hits",$color2);
ImageString($image,5,2,40,"$today_hosts",$color3);

// создаём картинку
ImageGIF($image);

// очищаем
imagedestroy($image);
?>

с.26 - как показывает база/таблица, срабатывает, однозначно.
Это - новый, установочный, код:
cookie_detect=' ';
document.cookie='kamsoft=1;path=/'; 
cookie_detect+='c='+(document.cookie?'Да':'Нет'); 
document.write(
    '<img src="counter/counter.php"'
    +cookie_detect+
    '&r=' +escape(top.document.referrer)+ 
    '&je='+navigator.javaEnabled()+
    '&na='+navigator.appName+navigator.appVersion+
    '&p='+window.location.pathname+
    '&rand='+Math.random()+
    'alt="счётчик" border="0" width="88" height="57" />'
);

Последний раз редактировалось cupoma58, Вчера в 13:36.
Ответить с цитированием
  #6 (permalink)  
Старый Вчера, 14:41
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

cupoma58,
Найди другой счетчик, современный, а то, судя по navigator.javaEnabled(), это совсем древний.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с одновременой работой формы обратной связи и счетчика qverty2016 jQuery 4 03.02.2016 18:20
Конфликт скриптов: удвоение счетчика при работе другого скрипта Ленча jQuery 3 06.07.2015 20:53
Реализация сложного Tooltip IvanBond Работа 3 22.08.2013 14:34
Реализация функции include BreatheInTheVoid Общие вопросы Javascript 4 23.09.2010 14:23
Принцип работы счетчика liveinternet paveljava5 Общие вопросы Javascript 5 02.08.2010 11:53