Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Счётчик переходов по ссылкам
 
 автор: Адоп Акробат   (22.09.2004 в 20:17)   письмо автору
 
 

Здравствуйте!!!
Дупустем у меня есть ссылка

<a href="www.rambler.ru">Rambler</a>

И мне нужна узнать сколько раз вызвалася этот запрос

Посещений: "Здесь пишет сколько раз вызвался этот запрос"


Как мне это зделать???

   
 
 автор: LimP   (22.09.2004 в 20:22)   письмо автору
 
   для: Адоп Акробат   (22.09.2004 в 20:17)
 

заводи переменную-счетчик,помещай ее в базу и каждый раз при клике на эту ссылку (это можно сделать при помощи onClick )эта переменная $count = $count+1;
вот так,все просто...

   
 
 автор: cheops   (22.09.2004 в 20:27)   письмо автору
 
   для: Адоп Акробат   (22.09.2004 в 20:17)
 

Ну... можно несколько видоизменить ссылки, например
<a href="http://www.mysite.ru/counter.php?url=www.rambler.ru">Rambler</a> 

А в файле counter.php организовать подсчёт ссылки и переадресацию по реальной ссылке:
<?php
    
// Учитываем посещение по ссылке url
    // .......
    // Осуществляем редирект на URL
    
echo "<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL="
.$_GET['url']."'>
            </HEAD></HTML>"
;
?>

   
 
 автор: Адоп Акробат   (22.09.2004 в 20:41)   письмо автору
 
   для: cheops   (22.09.2004 в 20:27)
 

Спасибо чеопс этот способ поинтересней

   
 
 автор: cheops   (22.09.2004 в 20:58)   письмо автору
 
   для: Адоп Акробат   (22.09.2004 в 20:41)
 

>Спасибо чеопс этот способ поинтересней
Мне будет приятнее если в русской транслитации меня будут называть хеопс :)))

   
 
 автор: Адоп Акробат   (23.09.2004 в 04:10)   письмо автору
 
   для: cheops   (22.09.2004 в 20:58)
 

Окей будет здаланно :)

   
 
 автор: Димитрий   (11.03.2005 в 16:23)   письмо автору
 
   для: cheops   (22.09.2004 в 20:27)
 

Сдраствуйте Хеопс.
Ваш совет мне понравился, только я не могу досконально разобраться.
Я открыл тему анекдотов, и данный вид счётчика вроде меня устраивает:
Мне надо указать на главной странице сколько переходов (просмотров) было по страницам. Страниц будет много, и с каждой должно считывать в один счётчик.
Вопрос: Как на страницу вывести подсчёт файла "counter.php", да и меня смущает значение "CONTENT", ведь через "include" благодаря CONTENT страницу "counter.php" не вызовешь. Вот и вопрос стоит так.
Мне надо на страницу "index.php" в каталоге "anegdot" вывести подсчёт.
Я пробовал много видов счётчика, например:
<?php
function Test()
{
static $a = 0;
echo $a;
$a++;
}
?>
Но и не знаю как вывести результат.
Спасибо за внимание.

   
 
 автор: Valeri   (11.03.2005 в 17:05)   письмо автору
 
   для: Димитрий   (11.03.2005 в 16:23)
 

а зачем вызывать при CONTENT инклудем файл counter.php ?
При такой постановке

<?php 
    
// Учитываем посещение по ссылке url 
    // ....... 
    // Осуществляем редирект на URL 
    
echo "<HTML><HEAD> 
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL="
.$_GET['url']."'> 
            </HEAD></HTML>"

?> 

получается переход на counter.php и его никуда инклудить не надо, тоесть это будет выглядить примерно так, есть переменная счетчика, у Вас она $a

<?php 
    
//  из БД или текстового файла достаем $a
    // прибавляем к ней 1 
 
$a+=1;
   
// опять заносим $a в БД или текстовый файл
    // Осуществляем редирект на URL 
    
echo "<HTML><HEAD> 
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL="
.$_GET['url']."'> 
            </HEAD></HTML>"

?> 


там где Вам надо показать количество переходов по ссылке Вы достаете опять $a и выводите ее на экран. Никакие include здесь не надо.

   
 
 автор: Димитрий   (11.03.2005 в 18:33)   письмо автору
 
   для: Valeri   (11.03.2005 в 17:05)
 

Я врубиться не могу:
Как конкретно мне поступить на трёх видах страниц:
1. counter.php - код,
2. index.php - вывод результата,
3. клики на оставшихся страницах, от куда будет результат в index.php.

Я вроде понимаю, а результата не вижу.

у меня загвозка на index.php

   
 
 автор: cheops   (11.03.2005 в 21:55)   письмо автору
 
   для: Димитрий   (11.03.2005 в 16:23)
 

Встречные вопросы:
1) Как выводятся анекдоты на просмотр? Чем отличается URL страниц с анекдотами друг от друга? Используется ли для этого база данных.
2) Вам важен сам принцип перехода по ссылке или вам нужны все просмотры страницы, включая переходы из поисковых систем. Если вам нужны все переходы, вы можете воспользоваться счётчиком PowerCounter, доступной для свободной загрузки из раздела downloads http://www.softtime.ru/info/downloads.php

   
 
 автор: Димитрий   (11.03.2005 в 22:19)   письмо автору
 
   для: cheops   (11.03.2005 в 21:55)
 

1) Как выводятся анекдоты на просмотр? Чем отличается URL страниц с анекдотами друг от друга? Используется ли для этого база данных.

Вывобятся в том же окне по ссылке:
<a HREF="counter.php?url=002.php">...слово...</a>
URL: собственный путь без папки, там же все остальные файлы: counter.php, index.php
В файле counter.php пока написано:

<?php 
    
// Учитываем посещение по ссылке url 
    // ....... 
    // Осуществляем редирект на URL 
    
echo "<HTML><HEAD> 
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL="
.$_GET['url']."'> 
            </HEAD></HTML>"

?>

Я не знаю что дописывать.

2) Вам важен сам принцип перехода по ссылке или вам нужны все просмотры страницы,

Важен сам принцип перехода по ссылке. Надо сделать на одной странице index.php показ счётчика, который будет контролировать все клики со свех других страниц анекдотов.
В указанном пути находятся первых 22 анекдота

Основная проблема: установить показ на странице index.php

   
 
 автор: Valeri   (12.03.2005 в 06:37)   письмо автору
 
   для: Димитрий   (11.03.2005 в 22:19)
 

>В файле counter.php пока написано:
>

>&lt;?php 
>    // Учитываем посещение по ссылке url 
>    // ....... 
>    // Осуществляем редирект на URL 
>    echo &quot;&lt;HTML&gt;&lt;HEAD&gt; 
>            &lt;META HTTP-EQUIV='Refresh' CONTENT='0;
>URL=&quot;.$_GET['url'].&quot;'&gt; 
>            &lt;/HEAD&gt;&lt;/HTML&gt;&quot;; 
>?&gt;
>

>Я не знаю что дописывать.
Вас уже спрашивали - используется ли база данных или текстовый файл для хранения показаний счетчика ? В зависимости от ответа будет сказано что дописывать.
>
>[i]2) Вам важен сам принцип перехода по ссылке или вам нужны
>все просмотры страницы,

>
>Важен сам принцип перехода по ссылке. Надо сделать на одной
>странице index.php показ счётчика, который будет
>контролировать все клики со свех других страниц анекдотов.
>В указанном пути находятся первых 22 анекдота
>
>Основная проблема: установить показ на странице
>index.php
В index.php Вы прописываете функцию обращения туда где хранятся данные счетчика ( в БД или текстовом файле) и вытаскивыете переменную счетчика, а потом выводите ее через
echo "$".
Скорее всего Вы не знаете как привязать переход по ссылке с заносом в БД или текстовый файл, а так же как потом вытащить эту переменую.

   
 
 автор: Димитрий   (12.03.2005 в 21:07)   письмо автору
 
   для: Valeri   (12.03.2005 в 06:37)
 

>В index.php Вы прописываете функцию обращения туда где хранятся данные
>счетчика ( в БД или текстовом файле) и вытаскивыете переменную счетчика, а
>потом выводите ее через
>echo "$".

Совершенно верно, только дествительно, не знаю как привязать переход по ссылке с заносом в текстовый файл.

   
 
 автор: cheops   (12.03.2005 в 10:28)   письмо автору
 
   для: Димитрий   (11.03.2005 в 22:19)
 

Где вы собираетесь хранить результаты подсчёта: в базе данных или в файлах?

   
 
 автор: Димитрий   (12.03.2005 в 21:09)   письмо автору
 
   для: cheops   (12.03.2005 в 10:28)
 

>Где вы собираетесь хранить результаты подсчёта: в базе данных или в файлах?

в файле.

   
 
 автор: Valeri   (12.03.2005 в 23:47)   письмо автору
 
   для: Димитрий   (12.03.2005 в 21:09)
 

давно не работал с файломи и на вскидку не смогу все полностью написать
а вообще смотрите функцию fopen() там должно быть все написано, как открыть файл только на чтение - это для index.php
и как на чтение и запись - это для count.php

   
 
 автор: cheops   (13.03.2005 в 01:57)   письмо автору
 
   для: Димитрий   (12.03.2005 в 21:09)
 

Пусть имеется текстовый файл count.txt, в котором перечислены все значения принимаемые параметром url
001.php = 4
001.php = 0
002.php = 14
003.php = 8

Тогда, увеличивать значение счётчиков, в зависимости от того, какое из значений принимает параметр url можно при помощи следующего кода
<?php 
  
// Извлекаем из строки запроса параметр page
  
$page $_GET['url'];
  
// Имя файла
  
$filename "count.txt";
  
// Открываем файл для чтения 
  
$fd fopen($filename"r"); 
  
// Читаем его содержимое в буффер 
  
$bufer fread($fdfilesize($filename)); 
  
// Закрываем файл 
  
fclose($fd); 
  
// Редактируем содержимое переменной 
  
$bufer preg_replace_callback("|($page = )([\d]+)|i",
                                 
"increment_number",$bufer); 
  
// Открываем файл для записи 
  
$fd fopen($filename"w"); 
  
// Записываем содержимое строки $buffer 
  
fwrite($fd$bufer); 
  
// Закрываем файл 
  
fclose($fd); 
  
// функция обратного вызова
  
function increment_number($matches
  {
    return 
$matches[1].(++$matches[2]);
  }
?>

Этот код следует поместить перед редиректом.

   
 
 автор: Sasha   (13.10.2005 в 13:14)   письмо автору
 
   для: cheops   (13.03.2005 в 01:57)
 

А как всётаки сделать вывод числа переходов на другой страничке??

   
 
 автор: Loki   (13.10.2005 в 13:26)   письмо автору
 
   для: Sasha   (13.10.2005 в 13:14)
 

Зависит от того, как страница на которую переходят формируется. Можно через рефферер, а можно через редирект. А можно и просто посмотреть последовательность переходов с одного ip

   
 
 автор: Sasha   (13.10.2005 в 14:31)   письмо автору
 
   для: Loki   (13.10.2005 в 13:26)
 

Гм.
Я сделал ссылку, как указано выше, при переходе имеем увеличение числа на 1, а как вывести только это число из текстового файла?

   
 
 автор: Sasha   (13.10.2005 в 18:19)   письмо автору
 
   для: Loki   (13.10.2005 в 13:26)
 

Тоесть из файла

001.php = 4 
001.php = 0 
002.php = 14 
003.php = 8

вывести значение, например первой страницы, т.е. 4 , а не 001.php = 4 ?

   
 
 автор: Loki   (13.10.2005 в 21:44)   письмо автору
 
   для: Sasha   (13.10.2005 в 18:19)
 

например так:

<?
//$line - строка из файла
$mas=explode($line"=");
eho trim($mas[1]);
?>

   
 
 автор: Sasha   (15.10.2005 в 01:45)   письмо автору
 
   для: Loki   (13.10.2005 в 21:44)
 

Дело в том, что нужно это осуществить на другой странице.

Пока ничего не выходит, одни ошибки.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования