IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Как сделать счетчик.... (https://www.imho.ws/showthread.php?t=49509)

Psionic Vision 24.01.2004 03:49

Как сделать счетчик....
 
Как сделать счетчик, который будет считать ТОЛЬКО кол-во заходов на какую-либо страницу, причем результаты будут сохраняться в одном и том же файле для всех страниц?


ЗЫ. не торопитесь выдавать предупреждение за "неиспользование поиска". Я поиском пользовался, нашел много похожих тем, но везде обсуждаются только расширенные счетчики - с айпи там и прочим мусором. А мне нужно только количество заходов. Если можно - то с исключением собственных.
Спасибо

dESer 24.01.2004 04:13

Попробуй это...
 
Примеры применения PHP

Рассмотрим два простейших практических примера: счётчик загрузок страницы и получение данных с формы. Описание языка и описания функций можно найти на страничке PHP Manual (зеркало на ДВГУ).

Простейший счётчик с отдельным файлом
Принцип работы: считываем значение счётчика из файла, увеличиваем значение на 1, записываем результат в файл, и выводим значение счётчика на экран.
Скрипт:

PHP код:

<?php
// Открываем файл counter.txt в режиме чтения и записи. (у файла должны быть установлены соответствующие разрешения)
$file=fopen("counter.txt""r+");
// Считываем значение из файла (размер значения - до 10 символов)
$counter=fgets($file10);
// Преобразовываем строковое значение в целое число
$counter=intval($counter);
// Увеличиваем значение счётчика на 1
$counter++;
// Устанавливаем указатель на начало файла (иначе новое значение будет добавлено к существующему)
rewind($file);
// Записываем новое значение в файл
fputs($file,$counter);
// Закрываем файл
fclose($file);
// Выводим значение пользователю
echo $counter;
?>

Считывание данных формы
Осуществляется считывание данных с различных элементов формы. После заполнения формы, данные выводятся на экран. Вместо простого вывода можно сделать запись в файл, базу данных, или отослать данные на адрес электронной почты.

В случае с PHP, форма и её обработчик могут быть включены в единственный файл. Одна часть, - HTML форма, вторая, - её обработчик.
Скрипт:
PHP код:

<p>
Простая форма<br>
<form action="form.php" method="POST">
Input text: <input type="Text" name="string"><br>
Radio button 1: <input type="Radio" name="rbutton" value="rb1" checked><br>
Radio button 2: <input type="Radio" name="rbutton"value="rb2"><br>
Checkbox 1: <input type="Checkbox" name="chkbox1" value="chk1"><br>
Checkbox 2: <input type="Checkbox" name="chkbox2">
Multiple select: 
<select name="msel[]" size="3" multiple>
<option value="val1">val1</option>
<option value="val2">val2</option>
<option value="val3">val3</option>
<option value="val4">val4</option>
</select>
<input type="Submit" value="SUBMIT" name="submit">
</form>
</p>
<?php
// Ведём обработку только если форма отправлена методом POST
if ($REQUEST_METHOD=="POST") {
// Объявляем переменные, соответствующие полям формы.
// в принципе, такое явное объявление не обязательно
global $string;
global 
$rbutton;
global 
$chkbox1;
global 
$chkbox2;
global 
$msel;
// Далее - просто вывод введённых данных c разными вариантами включения.
?>
<hr>
Результат:<br>
Input text:
<?php echo $string?>
<br>Radio button: 
<?php
echo $rbutton;
echo 
"<br>Checkbox 1: ";
echo 
$chkbox1;
echo 
"<br>Checkbox 2: ";
// поскольку value для этого элемента не установлено, выводится значение по-умолчанию: on
echo $chkbox2;
echo 
"<br>Multiple select: ";
// Значения multiple select возвращаются как массив
 
for ($i=0$i<4$i++) {
  echo 
' '.$msel[$i];
 };
// Конец обработки формы
};
?>


Psionic Vision 24.01.2004 04:19

dESer
Молодец! Первый вариант - то, что надо.
Но если я укажу один и тот же файл для всех страниц, будет возникать ошибка доступа или все будет в порядке?
Держи 5

Добавлено через 2 минуты:
ЗЫ. И как сделать, чтобы для каждой страницы создавалась своя строка? Потому как мне надо чтоб счетчик был индивид. для каждой страницы.

hempsmoke 24.01.2004 04:20

Цитата:

Neo:
все будет в порядке

Psionic Vision 24.01.2004 04:33

hempsmoke
Но каждая страница будет работать с одной и той же цифрой.
А мне нужно чтоб был один dat или txt файл, и для каждой страницы создавалась отдельная строка?

dESer 24.01.2004 04:44

Почитай ещё вот это:
http://compdoc.by.ru/internet/php/countvisit/
Может это и круче и прикольней?
Ну а если не потянешь - то может проще взять из готовых.... woweb.ru, cgi.ru(myweb.u), webscript.ru и т.д.
На готовых и разберёшься... я так начинал.

Удачи.

Добавлено через 7 минут:
Цитата:

Первоначальное сообщение от Neo
hempsmoke
Но каждая страница будет работать с одной и той же цифрой.
А мне нужно чтоб был один dat или txt файл, и для каждой страницы создавалась отдельная строка?

Слишком геморойно ты задумал... Вот куски - ожет что полезного выберешь :)

Удаляем нужную строку из файла:
PHP код:

<?
$line="1"; # строка, которую нужно удалить

$file=file("my_file.txt");
$open=fopen("my_file.txt","w");

   for($i=0;$i<count($file);$i++)
   {
      if(($i+1)!=$line){fwrite($open,$file[$i]);}
   }

fclose($open); 
?>


Заменяем нужную строку в файле:

PHP код:

<?
$line="1"; # строка, которую нужно изменить
$replace="ля ля ля"; # на что нужно изменить

$file=file("my_file.txt");
$open=fopen("my_file.txt","w");

   for($i=0;$i<count($file);$i++)
   {
      if(($i+1)!=$line){fwrite($open,$file[$i]);}
      else{fwrite($open,$replace."\r\n");}
   }

fclose($open); 
?>

Очищаем файл и добавляем в него строку, если файл не существует, то он создаётся:
PHP код:

<?
$open=fopen("my_file.txt","w+");
fwrite($open,"строка\r\n");
fclose($open); 
?>

Добавляем новую строку в конец файла:

PHP код:

<?
$open=fopen("my_file.txt","a");
fwrite($open,"новая строка\r\n");
fclose($open); 
?>

Подсчитываем количество строк в файле:

PHP код:

<?
$file=file("my_file.txt");
$count=count($file);
echo $count; 
?>

Этого должно хватить :)

Psionic Vision 24.01.2004 04:52

dESer
Спасибо, щас буду разбираться :)


Часовой пояс GMT +4, время: 02:26.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.