-------------------------------------------------------------------------
koDa HET - u HE БyDeT vol.7
- - -- ---- ----------- ------------------------------.
О Г Л А В Л Е Н И Е |
.
I. Как грамотно пользоваться этой рассылкой .
II. Новые материалы на сервере .
III. Новые исходные тексты .
IV. Создаем свой собственный счетчик II .
- - -- ---- ----------- ------------------------------.
Как грамотно пользоваться этой рассылкой |
.
Если вы плохо ориентируетесь на нашем сервере, то вам будет .
довольно трудно найти описанные в этой рассылке материалы. Для .
более быстрой и простой навигации рекомендуем вам перейти по .
адресу http://codenet.al.ru/mail/7.htm, там находится HTML .
копия этого письма, в которой есть все ссылки на все материалы .
- - -- ---- ----------- ------------------------------.
Н О В Ы Е М А Т Е Р И А Л Ы Н А С Е Р В Е Р Е |
.
.
1. Безопасный и удобный поиск .
.
Главное, с чем сталкиваешься при написании скрипта для .
поиска - то, что все кажется простым, но объем кода быстро .
нарастает... .
.
2. Изменение стандартной формы .
.
Вас наверное часто удивляла форма окна, которая появляется .
при загрузке Norton Utilites и других подобных программ. Она .
имела не прямоугольный размер и ВЫ задавались вопросом : как .
получить такую форму? Оказывается сделать это довольно .
просто. При этом Ваша форма может иметь самые замысловатые .
очертания т.к. все это задается с помощью полигона... .
.
3. Немного относительно методов упаковки данных. .
.
Здесь рассматриваются только алгоритмы производящие сжатие .
без потерь, т.е. допускающие восстановление исходной информа- .
ции "байт в байт". Running - Это самый простой из методов .
упаковки информации. Предположите что Вы имеете строку тек- .
ста, и в конце строки стоит 40 пробелов. Налицо явная избы- .
точность имеющейся информации.... .
.
4. Программирование сокетов .
.
Для обеспечения сетевых коммуникаций используются сокеты. .
Сокет это конечная точка сетевых коммуникаций. Каждый исполь- .
зующийся сокет имеет тип и ассоциированный с ним процесс. .
Сокеты существуют внутри коммуникационных доменов. Домены это .
абстракции, которые подразумевают конкретную структуру адреса- .
ции и множество протоколов, которое определяет различные типы .
сокетов внутри домена. .
.
- - -- ---- ----------- ------------------------------.
Н О В Ы Е И С Х О Д Н Ы Е Т Е К С Т Ы |
.
http://sources.codenet.ru/index.php3?path=games .....................
.
wolfsrc.zip [PAS] Wolf3D :) С чего все начиналось. .
.
q1source.zip [C] Исходный тексты Quake (WinQuake и QW) .
.
space.rar [PAS] Довольно интересная космическая стрелялка, .
только обидно, что без заднего плана. .
.
TETRIS.ZIP [CC] Просто Тетрис .
.
ipxsrc.zip [C] IPX протокол для DOOM. Обеспечивает поддержку .
сетевой игры. .
.
idsetup.zip [C] Программа - настройщик DOOM (Setup.exe) .
.
doomsrc.zip [C] Исходные тексты DOOM'а для Linux для поверхностно- .
го ознакомления. Не содержат "ресурсов". .
.
.
http://sources.codenet.ru/index.php?path=graphprg/rotate .
.
*.* [C,PAS] Масса примеров rotate'инга и zoom'инга. .
.
- - -- ---- ----------- ------------------------------.
С В О Й С О Б С Т В Е Н Н Ы Й С Ч Е Т Ч И К II .
.
.
.
Сегодня мы рассмотрим более сложный вариант счетчика (Так .
сказать упрощенный вариант SpyLog'а). Этот счетчик помимо .
количества посетителей сможет выдавать и некоторую статистику .
о них, например распределение по часам, дням недели, самые .
популярные страницы и т.д. .
.
Главным статистическим инструментам станет язык SQL. Сегодня .
мы сформируем LOG-таблицу, хранящую информацию о каждом посе- .
щении, а в следующей рассылке попробуем получить несколько .
интересных отчетов. .
.
.
.
// Для начала соединимся с SQL сервером, в переменных $sqlhost,$sqluser .
// и $sqlpassword должны быть соответственно заданы хост,логин и пароль .
// для доступа к SQL серверу. .
@mysql_pconnect($sqlhost,$sqluser,$sqlpassword) .
or die("Ошибка соединения с SQL сервером"); .
.
// Выберем базу данных, в нашем случае это "stats". .
@mysql_select_db("stats"); .
if (mysql_errno()!=0) { .
.
// Создадим LOG-таблицу .
.
mysql_query(" .
CREATE TABLE log ( .
id int(11) NOT NULL auto_increment, .
login int(11) NOT NULL default '0', .
date datetime default NULL, .
ip text, .
type int(11) default NULL, .
page text, .
proxy text, .
agent text, .
referer text, .
language text, .
PRIMARY KEY (id), .
KEY log_idx(login,date) .
) TYPE=MyISAM; .
") or die("Err 1"); .
.
// Создадим таблицу для хранения хостов. .
// Ее необходимо в полночь очищать !!!!! .
.
mysql_query(" .
CREATE TABLE today ( .
id int(11) NOT NULL auto_increment, .
login text, .
ip text, .
PRIMARY KEY (id) .
) TYPE=MyISAM; .
") or die("Err 1"); .
} .
.
// У текущего сайта номер равен 1, таким образом мы можем ставить .
// этот счетчик на разные сайты и потом получать комплексную .
// статистику. .
.
$login=1; .
.
// Получем дополнительную информацию о пользователе - Броузер, .
// Систему, IP, прокси, язык и странцу которую он просматривает. .
.
$agent=htmlspecialchars($HTTP_USER_AGENT); .
$ip=$REMOTE_ADDR; .
$proxy=""; .
if (!empty($HTTP_X_FORWARDED_FOR)) { // Проверка прокси .
$proxy=$ip; .
$ip=$HTTP_X_FORWARDED_FOR; .
} .
$page=urlencode(htmlspecialchars($HTTP_REFERER)); // Страница .
$date=date("Y-m-d H:i:s"); // Дате .
$curdate=date("Y-m-d"); .
$language=htmlspecialchars($HTTP_ACCEPT_LANGUAGE); // Язык .
$flag=0; .
$login=intval($login); // ID сайта .
.
// Теперь проверим, уникальный ли это хост ? (Как и в предыдущей .
// рассылке) .
.
$r=mysql_query("SELECT count(*) FROM today WHERE login='$login' .
AND ip='$ip'"); .
$is=mysql_result($r,0,0); .
if ($is==0) { .
mysql_query("INSERT INTO today (login,ip) .
VALUES ('$login','$ip')"); .
$flag=1; .
} .
.
// Добавим запись в LOG-талицу. .
.
mysql_query("INSERT INTO log (login,date,ip,type,proxy, .
page,agent,language) .
VALUES ('$login','$date','$ip',$flag,'$proxy', .
'$page','$agent','$language')"); .
$r=mysql_query("SELECT count(*),sum(type) FROM log WHERE login='1';"); .
.
print "Хитов:".mysql_result($r,0,0); .
print "
"; .
print "Хостов:".mysql_result($r,0,1); .
mysql_close(); .
?> .
.
.
Любые отзывы принимаются на e-mail: codenet@al.ru .
или в гостевую книгу сервера. .