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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: счётчик нажатия на линк

Сообщения:  [1-10]    [11-20]  [21-26] 

 
 автор: cccp   (24.11.2005 в 15:09)   письмо автору
 
   для: cccp   (24.11.2005 в 14:42)
 

Посмотрите,
нашол такой вот скрипт.
Работает хорошо. Он вообше-то для счётчика скачивания файлов, но я ему указал файл .php считать, получается тоже самое.

Поскажите как можно сюда добавить строчку для результата типа:
последний раз нажато : 24-11-2005 в 12:00

Неимоверно благодарен !!!


<SCRIPT LANGUAGE="php">
/////////////////////////////////////////////////////////////////////////////
////                     COMPTEUR DE TELECHARGEMENTS                     ////
////                      <2005 Version 1.00>                        ////
////                      (c) <nazdorovie>                        ////
/////////////////////////////////////////////////////////////////////////////
////  Param&#352;tre en entr‚e : $Fichier  : nom du fichier &#224; t&#233;l&#233;charger (doit )
////                                    obligatoirement &#234;tre dans le m&#234;me
////                                    r&#233;pertoire que le script.
////  Appel du script     : <A HREF="download.php3?Fichier=toto.zip">
////  Fichier Compteur    = $Fichier+.dat;
////  07/00 : Suppression des r&#233;f&#233;rences &#224; BC-Math
/////////////////////////////////////////////////////////////////////////////
$FileCompteur=$Fichier.".dat";
///------Fonctions Lock et Unlock d'apr&#352;s Etienne De Toqueville--------------
Function lock($file) {
  
$timeout =  30// Timeout (secondes) PHP
  
$retry   =   5// Temps maxi (secondes) d'attente avant abandon
  
$delay   0.1// Dur&#233;e d'attente (secondes) entre chaque test

  
if (file_exists($file.".lck")) {
          
$time = @filemtime($file.".lck");
          if (
$time) {
                  
$since time() - $time;
                  if (
$since $timeoutunlink($file.".lck");
          }
  }

  for(
$i 0$i $retry$i += $delay) {
          if (!
file_exists($file.".lck")) {
             
$idlck=fopen($file.".lck","w");
             
fclose($idlck);
             return 
1;
          }
          
usleep($delay 1000000);
  }
  return 
0;
}
///-------------------------------------------------------------------------
Function unlock($file) {
  
$i = @unlink($file.".lck");
  return 
$i;
}
///-------------------------------------------------------------------------
Function Error($Msg){
  Echo 
$Msg;
  
FinPres();
  Exit(
"");
}
///-------------------------------------------------------------------------
if (!file_exists($FileCompteur)){
   
$Compteur=1;
   
$Fp=fopen($FileCompteur,"w");
   
fputs($Fp,$Compteur);
   
fclose($Fp);
}
else{
   if (!
lock($FileCompteur)) Error("Occup&#233; ! Recommencez plus tard. Merci.");
   
$Fp=fopen($FileCompteur,"r");
   
$Compteur=Trim(fgets($Fp,255))+1;
   
fclose($Fp);
   
$Fp=fopen($FileCompteur,"w");
   
fputs($Fp,$Compteur);
   
fclose($Fp);
   
unlock($FileCompteur);
}
Header("Location: ".$Fichier);
Exit(
"");
</SCRIPT>

   
 
 автор: cccp   (24.11.2005 в 14:42)   письмо автору
 
   для: cccp   (23.11.2005 в 20:06)
 

может есть у кого-то подобный скипт?

   
 
 автор: cccp   (23.11.2005 в 20:06)   письмо автору
 
   для: goddamn   (23.11.2005 в 19:58)
 

Ну не знаю...
Неужели нельзя сделать что бы он отталкивался от вписанного id на самом линке в этой строчке, a?
<a href="click.php?url=<?print urlencode("papka/index.php3");?>"

   
 
 автор: goddamn   (23.11.2005 в 19:58)   письмо автору
 
   для: cccp   (23.11.2005 в 19:45)
 

вам решать - много маленьких файлов или один большой. если первый вариант, то скрипт немного переписать надо. единственное, какие имена будут у файлов при 1-м варианте ? представили ? если линк = ./abc/def/ghijk/lmnopqrst/?id=1&tratata=1000&aaa=%0A%0D%0E%0C---~_,-,-,-~ что тогда ? :)

   
 
 автор: cccp   (23.11.2005 в 19:45)   письмо автору
 
   для: goddamn   (23.11.2005 в 12:06)
 

Ну я вообше-то думал что вожможно сделать так что бы каждый линк записывал свой log файл.
Тогда можно было бы использовать лиш один скрипт для всех линков.
Но это всё мои идеи, а сам я не в состоянии сделать это, поэтому думал использовать этот (ваш) скрипт, переименоувая для каждого линка...Что само сабой делает больше файлов и занимает больше места на сервере.

Как вы думаете?
Что посоветуете?

   
 
 автор: goddamn   (23.11.2005 в 12:06)   письмо автору
 
   для: cccp   (23.11.2005 в 01:02)
 

так если будет записывать как 2 2005-11-21 20:45, как потом разберешься, к какому линку это относится ??? чего-то не пойму :) ведь каждая строчка для своего линка, иначе скрипт по-другому писать нужно было :)
ну а так, $encodedurl и $link[0] - это и есть линк (типа index.html)... просто не добавляешь его к данным, если не нужно записывать. но опять же, получается противоречие ..

   
 
 автор: cccp   (23.11.2005 в 01:02)   письмо автору
 
   для: goddamn   (21.11.2005 в 22:55)
 

Спасибо!
Так всё ОК.
Только мне надо было путь к файлу поставить типа: path/to/file/clicks.log

goddamn.
А как убрать строчку котороя записывает сам линк, типа: index1.html
так-как мне это не надо.
Просто хотел что бы записывало просто 2 2005-11-21 20:45
А я потом переделаю на типа:

Посетили: 2 раз(а)
Последний раз: 2005-11-21 в 20:45



Зарание спасибо!

   
 
 автор: goddamn   (21.11.2005 в 22:55)   письмо автору
 
   для: cccp   (21.11.2005 в 22:38)
 

извини,недосмотрел.
fclose($logfile); // закрываем
каюсь,виноват ...

   
 
 автор: cccp   (21.11.2005 в 22:38)   письмо автору
 
   для: goddamn   (21.11.2005 в 22:23)
 

Я понял что линки мне надо свои ставить.
Я так и делал, просто для примера оставил ваши.
файл .log создаётся и изменяется....
Но ошибка всё ранво такая-же. даже если путь к файлу в виде "/path/to/file/clicks.log" (естественно с моим правельным path)

   
 
 автор: goddamn   (21.11.2005 в 22:23)   письмо автору
 
   для: cccp   (21.11.2005 в 22:10)
 

ссылки были для примера и теста :) вместо ./html1 у тебя будут свои линки, на которые ты поставишь ссылки.
по поводу ошибки - а файл clicks.log вобще создается/изменяется ? если нет, то пропиши в $logfilename путь к файлу от / , т.е. /path/to/file/clicks.log
и посмотри логи! там об ошибках дожно протоколироваться :)

   

Сообщения:  [1-10]    [11-20]  [21-26] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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