Hi
Итак, это ровно второй "№2" выпуск рассылки. Работа группы кипит, готовятся новые проекты и идеи...
Сегодня в меню: новости LS + немного софта + статья про написание гостевой книги + проекты LS + немного юмора
Наслаждайтесь :0)

News

16.01.2005
Началось бета-тестирование новой версии каталогизатора дисков MyLib 0.90.
В списке "Whats new" порядка 50 основных улучшений и исправлений ошибок программы.
Основные улучшения:
- новый стиль программы (лого, иконки)
- улучшение учета должников
- улучшение интерфейса создания образов дисков
- свойство "docking" для панели информации о объекте в главном окне

Во многом выход новой версии программы обязан пользователям, обратившимся в службу тех. поддержки или написавшим отзывы в форуме MyLib. Нам важно ваше мнение о проекте и мы рады услышать конструктивную критику в адрес MyLib.
Напишите в службу тех поддержки чтобы стать зарегистрированным бета-тестером и получить дальнейшие инструкции.

MyLib 0.90 Beta2 - без инсталлятора (архив rar v2.9+), нет справки, языковые файлы (LP) для версии 0.84, поэтому могут быть несоответствия в LP.UA, LP.RU, известны некоторые недоработки при работе с должниками)

Скачать MyLib 0.90 Beta2 (620Kb)
Screen shot (30Kb)
Small screen shot (11Kb)
Сайт MyLib

08.01.2005
Новая работа в разделе Graph/LS от Murd0k. Далее...

07.01.2005
22 новых статьи в разделе Delphi от Gigabyte
MySource coming soon...

05.01.2005
Вышла новая версия программы для сравнения и анализа текстовых файлов Advanced Visual Compare 1.2. Новое в версии: хранение настроек программы, возможность работы из командной строки, интеграция с проектом MySource, возможность просмотра результатов сравнения в браузере, далее ...

02.01.2005
Новая версия скриптов LSLogs 1.2 (Ведение и анализ логов сайта)

31.12.2004
Итоги 2004: Статистика нашего сайта за 2004 год (май-декабрь)

MyLib 11291
m3ucopy 4500
avc 2859
/coding/ folder 1300
fdb 842
lslogs11 344
icqdb 204
ph3 170
changer 168
another: 47897
Total 69575
[Детальнее]

28.12.2004
За две недели со времени выхода релиза m3uCopy 4.1, дистрибутив был скачан более 2600 раз. Также по результатам статистики, страница сайта m3uCopy была запрошена более 200 раз.


Soft

Интернет IP-телефон - Skype [отличная програмулина для тех, у кого есть знакомые или родственники, в дальних уголках мира. Куда конечно коснулась рука Интернета.]
Обмен всеми типами файлов через инет - BearShare [если вам необходимо с кем-то обменяться файлами, то это оно]


Articles

Здесь вы можете опубликовать свои статьи. Присылайте их на мыло lsnews@fm.com.ua

Пишем гостевую книгу

 

Наверняка каждому из вас не раз хотелось узнать, что думают о Вашем сайте Ваши посетители. И Вы наверняка уже искали в Интернете различные php скрипты, и довольно часто сталкивались с тем, что большинство таких скриптов используют базы данных, что затрудняет ее применение на бесплатных хостингах, где поддержка баз данных осуществляется только за $$.

Поэтому я пришел к выводу, что лучшая гостевая книга та, которую напишешь сам. Я отталкивался от того, что гостевая книга должна работать без поддержки баз данных, используя самый слабенький хостинг и самую старую версию PHP движка.

Опишу наперёд все минусы и плюсы этой гостевой книги.

  1. Переносимость. Вся база сообщений храниться в одном файле, который может быть с легкостью скопирован в архив или еще куда-нибудь.
  2. Легкость. PHP скрипт занимает всего 12 килобайт. Даже на слабой машине такой код будет «летать»
  3. Многофункциональность. Делалось «для себя», поэтому добавлены такие удобные вещи как СМС и Приват сообщения.
  4. В гостевой книге используется в качестве базы текстовый файл, поэтому не требуется поддержка баз данных и прочих наворотов.

Итак, если Вам всё еще интересно как она работает, приступим.

Прежде всего нужно рассказать её общий принцип работы. Скрипт гостевой состоит из двух частей: основной и дополнительный. Основной скрипт гостевой умеет всего на всего отображать сообщения, форматировать их и корректно выводить смайлики. Эта часть скрипта будет вызываться каждый раз при доступе к гостевой книге. Дополнительная часть скрипта добавляет записи в базу, отправляет СМС'ки (необходима поддержка моб. оператора), и отправляет по почте Приват сообщения. А теперь подробно о работе каждого из них.

Основной модуль.

Основной модуль выполняется при отображении записей гостевой книги. Вызывается только если переменная скрипта $go пустая!

Сначала нам нужно отобразить вверху страницы саму форму для сообщений.

echo "

<script language=JavaScript>var ico;function smile(ico) {document.guest.mess.value=document.guest.mess.value+ico;}</script>

 <body bgcolor=\"#D6DFEF\">

<form action=\"guestbook.php?go=add\" method=post name=guest>

<center>

<TABLE border=0 style=\"border: 1px solid #C2CBDB \" width=\"150\" height=\"100\">

<TR>

<TD bgcolor=\"#C2CBDB\" align=center colspan=2>

<I><B><font size=4 color=\"#000000\">Отправка сообщения</font></B></I>

</TD></TR>

<TR>

<TD>

Автор: <INPUT TYPE=\"text\" style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BACKGROUND:#D6DFEF\" SIZE=\"10\" VALUE=\"\" NAME=nick>

E-mail: <INPUT TYPE=\"text\" style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BACKGROUND:#D6DFEF\" SIZE=\"15\" VALUE=\"\" NAME=mail>

Тип сообщения:

<SELECT NAME=type style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BACKGROUND:#D6DFEF\">

<OPTION SELECTED>Сообщение

<OPTION>Приват

<OPTION>SMS

</SELECT><BR>

<textarea name=mess rows=9 cols=63 style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BACKGROUND:#D6DFEF\">

</textarea>

<align=\"right\">

<input style=\"border: 1px solid #C2CBDB; BACKGROUND:#C2CBDB \" type=\"submit\" value=\"Отправить\" name=\"add\" >

</TD>

<TD>

 

После чего вставляем таблицу со смайлами:

 

<TABLE border=0 style=\"border: 1px solid #C2CBDB \">

<tr>

<td width=22 height=22 align=center valign=middle><a href=\"JavaScript: smile(' :smile: ');\"><img src=img/smile.gif border=0 width=15 height=15></a></td>

 

 <td width=22 height=22 align=center valign=middle><a href=\"JavaScript: smile(' :cry: ');\"><img src=img/cry.gif border=0 width=15 height=15></a></td>

<td width=22 height=22 align=center valign=middle><a href=\"JavaScript: smile(' :evil: ');\"><img src=img/evil.gif border=0 width=15 height=15></a></td>

</tr></table>

 </TD>

</TR></TABLE><BR>

";

Дальше всё просто. Формат базы такой, что каждая следующая ячейка базы находиться в новой строке, поэтому считываем эти строки, форматируем и запоминаем.

$cnt=0;

// Говорим о том, что все данные лежат тут:

$base=file("base.dat");

$work=0;

$out='';

$ready='';

 // Кол-во строк в файле:

$num=count($base);

$curr=-1;

 //Начинаем считывать текст, попутно форматируя его.

while ($cnt<$num)

{

$curr++;

$str=$base[$cnt];

$out=$out."<table width=100%>\n";

$out=$out."<TR><TD bgcolor=\"#C2CBDB\" align=left><font size=2>\n";

$out=$out."Номер: ".$str." / ";

$cnt++;

$str=$base[$cnt];

$out=$out."Автор: <a href=\"mailto:".$str."\">";

$cnt++;

$str=$base[$cnt];

$out=$out.$str."</a> / \n";

$cnt++;

$str=$base[$cnt];

$out=$out.$str." / \n";

$cnt++;

$str=$base[$cnt];

$out=$out."Дата: ".$str."</TD></TR>\n";

$cnt++;

$str=$base[$cnt];

$out=$out."<TR><TD align=left>\n";

$out=$out.$str.$br;

$out=$out."</TD></TR></Table>\n";

 

// Собираем в массив все записи

$records[$curr]=$out;

$out='';

$cnt++;

}

Нулевой странички у нас нет, поэтому если она нулевая, присваиваем значение 1.

if ($page==0) {$page=1;};

Важная часть программы. Эта процедура заменяет названия смайлов на их ссылки к рисункам (а также маты на звездочки и т.д.)

function replace ($string)

{

$exech="autochange.dat";

$string = " ".$string;

$autochange = file ($exech);

$lines = count ($autochange);

for($i=0;$i<$lines;$i++)

{

list($change1,$change2)=explode("|", $autochange[$i]);

$string = eregi_replace("$change1","$change2",$string);

}

return trim($string);

}

Проверяем на какой мы находимся странице и выводим соответствующие записи

while ($curr>-1) {

if ($curr<(count($records)-$rpp*($page-1)) and $curr>=(count($records)-$rpp*($page))) {

$out=$out.$records[$curr];

$out=replace($out);

}

$curr=$curr-1;

}

низу страницы выводим ссылки на все станицы гостевой книги

echo "<TABLE border=0 style=\"border: 0px solid #C2CBDB\" width=\"100%\">";

echo "<TR><TD bgcolor=\"#C2CBDB\" align=center>";

While ($curr<count($records)) {

$pp++;

$curr=$curr+$rpp;

if ($pp==$page) {echo "<B>$page</B> ";} else {

echo "<a href=guestbook.php?page=$pp>$pp</a> ";

};

};

echo "</font></B></I></TD></TR>";

Дополнительный модуль 

Выполняется, только если переменная $go равна «add».

Дальнейшие действия зависят от переменной $type. (Тип сообщения)

СМС:

@mail("380670000000@2sms.kyivstar.net",$mail,$nick.":".$mess);

@mail("380670000000@2sms.kyivstar.net","HomePage","Trying to send sms for you!".$ip);

Следующие функции отправляют СМС на мобильные телефоны.

Внимание! Эти функции доступны только при поддержке моб. оператора. Позвоните своему оператору и узнайте, как с простого e-mail послать СМС на телефон. Полученный адрес впишите вместо 380670000000@2sms.kyivstar.net

Сообщение:

Сообщаем себе на телефон (или куда угодно на почтовый ящик) о новом сообщении

@mail("380670000000@2sms.kyivstar.net","HomePage","New item in your guestbook!".$ip);

 Следующая часть кода расчитана на всяких уродов, которые любят ламать гостевые книги портя нам при этом настроение. Поэтому все "опасные" символы мы заменяем на спец. сиволы html

$mess = stripslashes($mess);

$mess = ereg_replace("<","&lt;",$mess);

$mess = ereg_replace(">","&gt;",$mess);

$mess = ereg_replace('\\\"',"&quot;",$mess);

$mess = ereg_replace("!","&#33;",$mess);

$mess = ereg_replace("\r","",$mess);

$mess = ereg_replace("\n","<br>",$mess);

$mess = ereg_replace("%","&#37;",$mess);

$mess = ereg_replace("^ +","",$mess);

$mess = ereg_replace(" +$","",$mess);

$mess = ereg_replace(" +"," ",$mess);

Открыли базу и дописали в конец новое сообщение:

$base=file("base.dat");

$count=round(count($base)/6);

$base=fopen("base.dat","a");

fputs($base,$count.$br.$mail.$br.$nick.$br.$ip.$br.$dd.$br.$mess.$br);

 

Приват:

Отправили себе на ящик приват сообщение, и заодно напоминание об этом на телефон:

@mail("JeyDee@fm.com.ua","HomePage",$nick.$br.$mail.$br.$ip.$br.$date.$br.$mess.$br);

@mail("380670000000@2sms.kyivstar.net","HomePage","New item in your private guestbook!".$ip);

 

Вывод

 

Написать гостевую книгу не так и сложно, как может показаться на первый взгляд. Самое главное определиться с требованиями к гостевой. Остальное – дело техники.

В следующей статье я подробно расскажу как можно написать модуль администрирования гостевой книги, и как реализовать функции ответа на сообщение. (Как я отвечаю на сообщения смотри на моём сайте www.jeydee.iatp.org.ua).

Со всеми вопросами и замечаниями обращайтесь по адресу JeyDee@fm.com.ua, или пишите в гостевой ;-)

Удачи!

 Скачать гостевую можно в разделе «Загрузка» 

© LS[Jey] / LineSoft creative group


Questions
Вопросы присылайте на мыло lsnews@fm.com.ua или мыло рассылки + ответы на них

Projects

LS Logs - ведение статистики cайта
Скрипты LSLogs позволяют вести историю посещений сайта и выдавать информацию о рейтинге как разделов так и отдельных запросов. Дистрибутив содержит описание принципа работы и последовательности действий для установки.
[Подробнее о проекте]

MyLib
MyLib создает образы дисков, сохраняя информацию о файлах и каталогах. Сделав образы всех своих дисков вы можете просматривать их содержимое или производить поиск без необходимости пересматривать каждый диск отдельно. Образы дисков при этом имеют размер не более 100-200Кб.
[Подробнее о проекте]

m3uCopy
m3uCopy предназначена для создания сборников музыки.
Выбрав плейлист winamp, папку или файлы мы можете: переместить или скопировать выбранные медиа-файлы в необходимую папку, рассортировать или переименовать музыку в соответствии с описанием в плейлисте, установить порядок проигрывания (при создании audio cd), ввести ограничение на общий размер файлов.
Встроенный редактор позволяет редактировать плейлист, имеет встроенный проигрыватель. Программа не нуждается в инсталляции. [Подробнее о проекте]

Advanced Visual Compare
AVC сравнивает текстовые файлы выделяя фрагменты измененного текста другим цветом.
[Подробнее о проекте]

ICQ DB
ICQ DB предназначена для расшифровки баз данных ICQ, в которых хранятся пароли, список пользователей и другая полезная информация.
[Подробнее о проекте]

fdb
Info: fdb - база данных, позволяющая облегчить работу Delphi-программистам с сохранением/загрузкой самых различных данных в своих программах. Все функции fdb реализованы в виде .dll модуля (100Кб).
Концепция fdb состоит в: оптимальной организации данных, максимальной скорости доступа к данным, простом и надежном формате файла, полном доступе программиста к структуре и данным fdb.
» Сайт fdb (http://fdbproject.narod.ru)

Changer
Программа заменяет указанную строку str1 на str2 в файлах указанного каталога/каталогов.
[Подробнее о проекте]

fdbEditor
fdbEditor (fdbe) - редактор баз данных fdb. Предназначен для непосредственного редактирования баз данных fdb включая изменение всех типов данных и структур;
[Подробнее о проекте]


Humor :0)
Встречаются два программиста. Первый:
- Слушай, одкуда у тебя такой классный велик?-
- Да не поверишь. Сижу вчера на берегу, обдумываю новую программу, тут подъезжает ко мне такая красивая девушка на велосипеде, снимает с себя все и говорит:"Бери все, что хочешь.". Ну, я и взял велосипед, а на хрена мне ее одежда?

***
Лежат два програмиста на берегу моря один другому:
- Смотри какие облака.
- Да это они умеют!

***
Однажды врач, инженер-строитель и программист поспорили о том, чья профессия древнее. Врач заметил:
- В Библии сказано, что Бог сотворил Еву из ребра Адама. Такая операция может быть проведена только хирургом, поэтому я по праву могу утверждать, что моя профессия самая древняя в мире.
Тут вмешался инженер-строитель и сказал:
- Но еще раньше Бог сотворил небо и землю из хаоса. Это первое, и, несомненно, наиболее выдающееся применение строительной инженерии. Поэтому, дорогой доктор, вы не правы. Моя профессия самая древняя в мире.
Программист при этих словах откинулся в кресле, загадочно улыбнулся и веско произнес:
- Да, но кто, как вы думаете, сотворил хаос?

***
Идет программист по улице, видит - другой программист валяется - пьяный в доску спрашивает:
- Вась , ты ж вчера закодировался?!
Тот отвечает сквозь сон:
- А я за час пароль подобрал.

***
Самый короткий вирус написан программистом из нашей фирмы - он занимает 0 байт, и даже автор не знает, что он делает.

***
Один пpогpаммист заходит к дpугому:
- Слушай, у тебя есть генеpатоp случайных чисел?
Тот, не повоpачиваясь:
- 179

***
Директор вызвал к себе нескольких сотрудников фирмы и обращается к ним:
- Вы требуете, чтобы вам повысили зарплату. Администрация фирмы считает, что этого делать не следует. Разрешить этот спор я поручил нашему компьютеру. Если он ответит, что вы правы, я повышу вам зарплату за счет зарплаты программиста.
Вопpос: Сколько нужно pаботников фиpмы Microsoft чтобы заменить пеpегоpевшую лампочку?
Ответ : Hи одного. Темнота будет объявлена новым стандаpтом.

***
Познакомился программер с девушкой, пошли к ней, посмотрели видик, все дела.
Наутро программер делится впечатлениями:
- Прикинь, она прям в BIOS'е гонит видео со стримера на видуху, не грузя оси!
И проца в ейном компе нет!

***
Как-то русские хакеры покопались в програмном обеспечении ракеты "ТОМОГАВК" - теперь она называется "БУМЕРАНГ".

Выпуск подготовил: mib

Написать в рассылку | Письмо LineSoft creative group | LineSoft creative group site