Web - Скрипт подсчета кликов - PRCY⮭net
Сам скрипт подсчета кликов очень прост. Все что нам нужно - добавить 1 на определенной строке в базе.
Итак, поле, которое будет содержать количество кликов называется count. Тип этого поля в базе может быть "smallint(3) not null", другое поле называется url с типом "varchar (50) not null", и еще одно поле будет называться id. Поле 'count' хранит количество кликов, когда на соответствующий 'url' был сделан переход.

<?
#Просто начальная информация.
#Нужно назвать таблицу.
$table="blah";
#Сервер, на котором находится база
$dbhost="localhost";
#Имя базы данных на сервере
$dbname="name";
#Пароль к базе.
$dbpass="*****";
#Имя конкретной базы данных
$dbbase="base";

//Теперь подсоединяемся к базе
$connect = mysql_connect("$dbhost", "$dbname", "$dbpass");
mysql_select_db($dbbase, $connect);

//Увеличиваем количество кликов по определенному url.
//При этом id указывает на нужную запись.
$update = "update $table set count = count + 1, url = url where id='$id'";
$result = mysql_query($update);

//Теперь достаем url и делаем туда редирект
$query = "select * from $table where id='$id'";
$result = mysql_query($query);
$tab=mysql_fetch_array($result);
$url=$tab["url"];
header("location: $url");
?>

Обратите внимание на эту строку:

$update = "update $table set count = count + 1, url = url where id='$id'";

Все значения кроме id в этом запросе переназначаются. Таким образом получается, что не нужно вставлять новый id, для нового url. Вот и все. Теперь можно обращаться к скрипту вот так:
http://yoururlhere.com/?id=45
(45 - меняется для каждой ссылки).
Если вы сомневаетесь, для чего может пригодиться такой скрипт, то вот вам три примера.
*) Для форума или для скрипта новостей (чтобы подсчитать количество кликов на определенное сообщение.)
*) Для скрипта показа баннеров или для скрипта показа ссылок (чтобы подсчитать сколько раз пользователи перешли на url.)
*) Скрипт рэйтинга (кликнув, человек докладывает о неработающей ссылке и это даёт ему дополнительные очки).


Этот пример можно соединить со сриптом просмотра ссылок

Это очень простой способ отображать все ссылки, без всякой ручной работы (кроме создания самого скрипта).
В результате изучения этого урока вы сможете:
Соединяться с базой mysql
Создавать таблицы для хранения информации
Извлекать данные из таблицы, добавлять новую и изменять записанную информацию
Выводить ссылки в цикле
Администратор сможет удалять и редактировать данные на специальной защищенной странице
Пользователи смогут добавлять новые ссылки
В первой части урока мы:
Создадим php файл, который соединяется с базой данных
Сделаем таблицу в базе данных с помощью phpmyadmin
Это был мой первый скрипт на php и весь процесс создания занял около 30 минут от начала до конца.

Часть 1 - Соединение с базой данных, создание таблицы
Первое, что мы должны сделать - это php файл, соединяющийся с базой данных. Код будет такой:

Сохраните этот код в файле с именем connect.php и запишите в папку links.

<?php
$username = "database username";
$password = "database password";
$host = "localhost";
$database = "the database to be used";

mysql_connect($host,$username,$password) or die("cannot connect to the database.<br>" . mysql_error());

mysql_select_db($database) or die("cannot select the database.<br>" . mysql_error());
?>

Теперь, надо сделать так, чтобы этот код вставлялся во все php файлы, которые будут работать с данными из базы. Лучше всего сделать это с помощью следующих строк (надо вставить эти строки в начало каждого php файла):

<?php
include("connect.php");
?>

В файл connect.php эти строчки вставлять не надо, это приведет к тому, что файл должен будет вставить сам себя (бесконечный цикл).

Создание таблицы
В этом уроке мы будем использовать систему phpmyadmin, чтобы не усложнять себе жизнь и не заставлять скрипт заниматься созданием таблиц. Зайдите на страницу с phpmyadmin и кликните слева на имени базы данных, которую вы будете использовать. Справа должен появиться список таблиц, которые уже добавлены на этот момент. Под списком есть поле для ввода sql запроса, вы должны скопировать туда этот запрос:

create table links(
id int(11) not null auto_increment,
site varchar(50) not null,
url varchar(255) not null,
banner varchar(255) not null,
primary key (id)
);

Теперь нажмите на кнопке "go" ниже второго поля ввода (оно предназначено для выполнения текстового файла, содержащего sql текст). Если вы все сделали правильно, то должно появится сообщение, о том, что запрос выполнен успешно: "mysql query was executed successfully".

Если вы прокрутите вниз страницы и посмотрите на список таблиц, вы должны увидеть новую таблицу, под названием "links". В этой таблице как раз и будет хранится вся информация.

Ну вот и все, что требовалось от phpmyadmin на этот момент. Можно закрыть броузер и перейти к созданию нашего скрипта.

Вывод
Для начала этого достаточно. Если у вас не установлена программа phpmyadmin, можно скачать свежую версию тут: http://www.phpmyadmin.net/. Имеется отличная документация, и установить программу достаточно просто.


Добавление
Одна из важных особенностей этого скрипта заключается в том, что вы сможете с его помощью добавлять ссылки просто и без дополнительных усилий. Создайте новый файл и назвать его add.php. Этот файл можно немного изменить, чтобы только вы (администратор сайта) смогли добавлять новые ссылки, но мы этом уроке будем делать вариант, когда все посетители смогут добавлять новые ссылки.

starting
Как всегда, для того чтобы подсоединиться к базе данных, нам нужно написать следующие строки, вставляющие файл connect.php:

<?php
include("connect.php");
?>

Давайте создадим форму, чтобы посетители смогли заполнять её для добавления новой ссылки. Я просто напишу ниже этот код, не вдаваясь в подробности html:

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="173">Название сайта: </td>
<td width="688">
<input type="text" name="site" size="75">
</td>
</tr>
<tr>
<td width="173">url:</td>
<td width="688">
<input type="text" name="url" size="75">
</td>
</tr>
<tr>
<td width="173">Адрес баннера</td>
<td width="688">
<input type="text" name="banner" size="75">
</td>
</tr>
</table>
<input type="submit" name="Отправить" value="submit">

И еще, чтобы скрипт оставался на той же странице, после обработки формы, напишите следующие строки:

<?php echo $php_self; ?>

Вот так все просто.

Обработка формы
Нет смысла в html форме, если нету скрипта, обрабатывающего её. Сначала, необходимо проверить, все ли данные введены:

if(!empty($site))
{

// Теперь добавляем спец. символы, чтобы успешно вставить в базу:
$site = addslashes($site);
$url = addslashes($url);
$banner = addslashes($banner);

//Вставляем в базу:

$sql = "insert into links set site='$site', url='$url', banner='$banner'";

//Если возникла ошибка, выводим сообщение:
$query = mysql_query($sql) or die("cannot query the database.<br>" . mysql_error());

//Если ошибки не было, надо вывести сообщение что все ok?
echo "Запись добавлена.<br><br><a href='index.php'>Кликните здесь, чтобы продолжить.</a>";

//После всего этого надо закрыть скобки и показать html форму:
} else {
?>

После этой строчки должен быть код формы, а после html кода мы должны закрыть скобку:

<?php } ?>

Если думаете, что все это просто, то дальше будет еще проще.

Удаление
Это наверно самый короткий фрагмент кода.
Чтобы удалить запись, необходимо написать:

$sql = "delete from links where id='$id'";
$query = mysql_query($sql) or die("cannot delete record.<br>" . mysql_error());

Только убедитесь, что вы написали строки, включающие файл connect.php. При удалении записи мы должны использовать "where id=" или мы удалим все записи в таблице. Итак, если все прошло удачно, надо вывести сообщение:

echo "Ссылка удалена !<br><br><a href='index.php'>Кликните здесь, чтобы продолжить.</a>";

Когда мы вызываем скрипт удаления, он должен быть вызван так:

<a href='delete.php?id=1'>Удалить ссылку</a>

Вывод
Поздравляю, вы научились:
Создавать таблицы в базе данных
Подсоединяться к базе
Добавлять данные
Удалять данные
В следующей части мы будем делать самый нужный файл, показывающий ссылки. Исходный код сегодняшнего урока представлен ниже:
--------------------------------------------------------------------------------
add.php
<?php
include("./connect.php");
if(!empty($site)) {
$site = addslashes($site);
$url = addslashes($url);
$banner = addslashes($banner);
$sql = "insert into links set site='$site', url='$url', banner='$banner'";
$query = mysql_query($sql) or die("cannot query the database.<br>" . mysql_error());
echo "Запись добавлена.<br><br><a href='index.php'>Кликните здесь, чтобы продолжить</a>";
} else {
?> <b>Добавить ссылку</b>
<form name="links" method="post" action="<?php echo $php_self; ?>">
<table width="694" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="117">Название сайта: </td>
<td width="577">
<input type="text" name="site" size="100">
</td>
</tr>
<tr>
<td width="117">url:</td>
<td width="577">
<input type="text" name="url" size="100">
</td>
</tr>
<tr>
<td width="117">Адрес баннера:</td>
<td width="577">
<input type="text" name="banner" size="100">
</td>
</tr>
</table>
<p>
<input type="submit" name="Отправить" value="submit">
</p>
</form> <?php
}
?>

delete.php
<?php
include("./connect.php");
$sql = "delete from links where id='$id'";
$query = mysql_query($sql) or die("cannot delete record.<br>" . mysql_error());
echo "Ссылка удалена !<br><br><a href='index.php'>Кликните здесь, чтобы продолжить</a>";
?>
Information
  • Posted on 27.04.2013 15:49
  • Просмотры: 1129