Простой счётчик нажатий на кнопку (PHP)…
Ex.clusive | 21.10.2010Не так давно начал серию постов “Для новичка” и написал первый пост этой серии “Вывод информации о сервере посредством PHP“. В продолжение открытой темы даю новый меленький урок. Пост написан по просьбе пользователя Gala-Ko. В нём я постараюсь в очень очень кратком виде, но на живом примере описать основной принцип создания счетчика нажатий на кнопку типа “submit” или “button”, написанного на PHP и хранящего данные в простом текстовом файле *.txt. и позволяющего выводить его текущее значения рядом с вышеупомянутой кнопкой.
Надо сказать, что счётчик кликов, наравне со счётчиком посещений, можно считать одним из самых простых php-сценариев, между тем, отлично показывающим возможности и синтаксис языка. Именно с написания подобных вещей рекомендуется начинать изучение.
Итак, приступим. Предположим, что у нас имеется первоначальный код html-страницы с формой и кнопкой, при нажатии на которую запускается печать текущей страницы. Выглядит он следующим образом:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>ExclusiveBlog.ru</title> </head> <body> <form name="add" method="post"> <input type="submit" name="print" value="Распечатать" onclick="javascript:window.print()"> </form> </body> </html>
И так, для начала, мы имеем страницу (index.html) с формой, которая содержит кнопку, например “Распечатать”. Рядом с кнопкой нам надо вывести счетчик нажатий на данную кнопку (данное значения будет выводиться силами PHP и храниться в текстовом файле, допустим, counter.txt). Алгоритм прост – пользователь нажимает на кнопку, выполняется небольшой php-сценарий, который забирает из файла counter.txt текущее значение счетчика, прибавляет к нему единицу и переписывает содержимое файла, вставив в него новое значение (старое, при этом, заранее удаляется из файла).
PHP-сценарий у нас будет располагаться на самой странице с формой (так проще, но его в любой момент можно перенести в отдельный файл), следовательно её надо предварительно переименовать из “index.html” в “index.php”. Плюс, необходимо заранее создать файл “counter.txt”, в котором, собственно, и будет храниться текущее значение счетчика, и записать в него первоначально значение, а именно “0″. В будущем, можно добавить в сценарий пару строк и он сам будет создавать этот файл при его отсутствии.
Далее, после кнопки внутри формы вставляем первый PHP-фрагмент. В нём мы указываем путь к файлу, в котором хранится текущее значение, открываем файл на чтение, забираем значение, закрываем файл, выводим значение.
<?php $fn = "counter.txt"; \\ путь к файлу со значением счетчика $file = fopen($fn,"r"); \\открываем файл на чтение $c = fread($file, filesize($fn)); \\записываем текущее значение fclose($file); \\закрываем файл echo "Распечатано ".$c." раз(a)"; \\выводим значение ?>
Далее, снимаем с кнопки вызов js-сценария на распечатку, а после закрывающего тега формы </form> вставляем еще один PHP-фрагмент, который проверяет, была ли нажата кнопка. Если кнопка нажата то выполняется следующая последовательность действий: открывается на запись файл со значением; значение увеличивается на один и записывается в файл, предварительно удалив из него данные; файл закрывается. После этого выполняется простейший js-сценарий, запускающий распечатку текущей страницы.