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

Форум PHP

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

 

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

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

тема: Счётчик скачиваний файла
 
 автор: sasha   (06.12.2006 в 23:02)   письмо автору
 
 

Здравствуйте.
Подскажите плиз, как можно реализовать вот это:

<?php 
  
// Извлекаем из строки запроса параметр page
  
if(empty($_GET['page])) 
            { 
            exit(); 
            } 
            else 
            { 
            $page = $_GET['
page];
            } 
   
// Имя файла 
  
$filename "counter.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]); 
  } 

?>
В параметре page передаётся имя файла, которое находиться в текстовом файле counter.txt, и затем выводиться через номер строки.


Только без файла, а с помощью бд. Что-то такая конструкция статла грузить сервер видать, обнуляется постоянно.

   
 
 автор: moonfox   (07.12.2006 в 00:40)   письмо автору
 
   для: sasha   (06.12.2006 в 23:02)
 

что -то типа:

-- дамп
-- БД: `test`
-- 

-- --------------------------------------------------------

-- 
-- Структура таблицы `count`
-- 

CREATE TABLE `count` (
  `name` varchar(50) NOT NULL,
  `number` int(5) NOT NULL default '0',
  `id` int(6) NOT NULL auto_increment,
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;

-- 
-- Дамп данных таблицы `count`
-- 

INSERT INTO `count` VALUES ('file1', 0, 1);
INSERT INTO `count` VALUES ('file2', 0, 2);
INSERT INTO `count` VALUES ('file3', 0, 3);



скрипт


<?

$host 
"localhost";
$login "root";
$password "1224";
$db="test";
     
mysql_connect($host$login$password) or die ("cant connect...");
mysql_select_db($db); 

$id=$_GET['id'];

$c="select * from count where id='$id'";
$res2=mysql_query($c);
$b mysql_fetch_array($res2);
$b[1]++;

$up="UPDATE count SET number='$b[1]' where id='$id'";
mysql_query($up) or die("Cant insert data...");

$r="select * from count" ;
$res=mysql_query($r);
while(
$a mysql_fetch_array($res)){
echo 
"<a href='".$_SERVER['PHP_SELF']."?id=".$a[2]."'>".$a[0]."</a>"." ".$a[1]." "; }
?> 


// знаю кривоватый ;o)
// я вот так и не понял когда всеже считается что попытка загрузки файла произошла... 
//просто при клике на линке? потому как файл можно не докачивать 
//а счетчик считает - везде так вроде..

   
 
 автор: sasha   (07.12.2006 в 15:14)   письмо автору
 
   для: moonfox   (07.12.2006 в 00:40)
 

А его не поломают сразу?

   
 
 автор: moonfox   (07.12.2006 в 16:00)   письмо автору
 
   для: sasha   (07.12.2006 в 15:14)
 

что имеется ввиду под "поломают"?

   
 
 автор: Sasha   (07.12.2006 в 16:05)   письмо автору
 
   для: moonfox   (07.12.2006 в 16:00)
 

Ну передадут что нибудь не то, например в перепенную $id

   
 
 автор: moonfox   (07.12.2006 в 16:25)   письмо автору
 
   для: Sasha   (07.12.2006 в 16:05)
 

нет

id - может быть только число, номер физичиски сущесвуют записи в бд

   
Rambler's Top100
вверх

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