    Скрипт ведения лога при переходах по ссылке, далее прозванный людьми как
   "Партнерская программа", был разработан для проекта  http://dweb.ru/
		..........::::::::::::::::::::::::::::::..........
     Алгоритмы и дизайн 90hex from NOP E.S.C. адрес сайта http://asm.al.ru/

			    Техническое описание.

[*] Пользовательская часть:

Скрипт регистрации [register.cgi].
1. Обеспечивает регистрацию пользователя, генерацию пароля пользователя,
   выдачу уникального ID пользователя, ссылки для установки на сайт
   пользователя и отправку этих данных на E-mail указанный пользователем.
2. Контролирует корректное заполенение полей формы, таких как E-mail
   URL и указание имяни.

Скрипт вывода статистики [autoriz.cgi].
1. Производит запрос и проверку ID и пароля пользователя, в случае если
   пользователь отмечен как удаленный, или пароль/ID неверны, то отказывает
   в доступе (при вводе регистр букв важен).
2. Выводит состояние пользователя - суммарное количество уникальных по IP
   адресам переходов через выданную ему ссылку, показывается так-же и теущая
   дата и время на сервере статистики.
3. Выводит расширенную статистику в виде таблицы, где предстваленны адреса
   пользователей прошедших по ссыле и дату/время перехода. IP адреса
   отображаются в виде:
   IP_пользователя / IP_прокси сервера.
   
Скрипт запроса утерянного пароля [send.cgi].
1. Запрашивает E-mail пользователя и пояснительный текст, контролирует
   корректность заполнения этих полей.
2. Высылает на E-mail администратора запрос пользователя.
3. Выводит слегка утешительный текст при успешной отправке запроса.


[*] Администраторская часть:

Скрипт администратора [ads.cgi].
1. Запрашивает имя и пароль администратора (регистр букв важен), пароли
   и имена храняться в файле расположенном в каталоге "psw_dat" этот
   файл имеет формат:
   имя_администратора:пароль_администратора
   имя_администратора:пароль_администратора
   пары имя / пароль разделяются кодом переноса строки в *nix стандарте
   код = 0Ah, имя и пароль не могут быть длиннее 20 символов.
2. Обеспечивает вывод общей статистики, такой как КОЛИЧЕСТВО ПОЛЬЗОВАТЕЛЕЙ,
   КОЛИЧЕСТВО ПОМЕЧЕННЫХ КАК УДАЛЕННЫЕ.
3. Обеспечивает следующие манипуляции над аккаунтом пользователя:
3a Вывод статистики по пользователю.
3b Отправка произвольного текста на E-mail указанный пользователем при
   регистрации.
3c Обнуление статистики аккаунта пользователя.
3d Пометку аккаунта пользователя как "Удаленного к хренам"
3e Восстановление статуса аккаунта в активный.
3f Обнуление статистики ВСЕМ пользователям.
3g Вывод всех аккаунтов на статистике которых числится больше или равное
   количество переходов, чем указанное в качестве порогового.
   Порог отсечения прописывается в то-же поле в котором при других операциях
   указывают ID (применено для уменьшения количества полей ввода).
   Как это работает ?
   Каком к верху: если вам нужно посмотреть на аккаунты людей набравних
   50 и более переходов, то вы просто указываете в качестве ID циферю 50,
   выбираете пункт "Показать кто выше порога" и ДЕЛАЕТЕ ЭТО.
   В итоге получаете список тех аккаунтов, чье количество перехода
   было равно 50 или более того.
При изменении статуса пользователя УДАЛЕН/АКТИВЕН вся его статистика
обнуляется к едрене фене.
При выводе статистики по аккаунту, так же выводятся все регистрационные данные
аккаунта и пароль доступа к нему.
Для произведения операций над аккаунтом указавайте в форме его реальный ID,
который генерируется следующим образом:
1000 + номер_аккаунта,
тоесть для первого пользователя в системе ID = 1001, для второго ID = 1002.


[*] Системная часть:

Скрипт сохранения статистики [sys.cgi].
1. Определяет дату и время своего вызова используя комманду операционной
   системы "date", определяет IP адрес проходимца.
2. Определяет ID пользователя по ссыкле которго перешли, если отсутствует
   параметр ID вообще, то переадресует проходимца на адрес указанный в
   переменной $URL_error_redirect.
3. Если ID помочен как удаленный или ID не корректен, то просто переадресует
   проходимца на адркс указаный в переменной $URL_for_redirect.
4. Если с ID  все нормально, топроизводится сверка на уникальность IP адреса
   проходимца и если IP уникален, то он сохраняется в базу а проходимец
   редиректится на адрес указаный в переменной $URL_for_redirect.
Одинаковые IP адреса записываются в базу 1 раз в сутки, тоесть каждый
божий день IP адрес считается уникальным да-же если он уже есть в базе.
Работает эта система выделения "уникальности" только с версией комманды
"date" которая разделяет день/месяц/время/год с помощью пробелов
(формат вывода подобен такому "Чтв Апр 19 23:37:33 MST 2001").

[+] Примечания:

Перед тем, как заливать скрипты на сервер пропишите верные пути в переменные
скриптов вынесенные в верх онных, не забывайте, что скрипты не покатит
редактировать обычным Windows блокнотом, так как в Win и DOS код переноса
строки "0dh,0ah", а в *unix "0ah" лишний байт в строках будет переклинивать
на ошибку 500. Воспользуйтесь хотя-бы программой HtmlLerz которая умеет
конвертировать коды перевода строки (конвертор HTML to PERL при установленной
галке Only enter code).   
Будте внимательны при устаовке атрибутов на скрипты и файлы данных,
привожу необходимые значаения:
/ak_dat			770
/ak_dat/akk_dt.ndt	660
/psw_dat		750
/psw_dat/lgadat.nps	640 или вообще 600 ;-)
*adn.cgi		750
*autoriz.cgi		750
*registr.cgi		750
*send.cgi		750
*sys.cgi		750
________________________________________________________________________________

							NOP E.S.C.
							Novosibirsk 2001