Отправляет email-рассылки с помощью сервиса Sendsay

Веб-дизайн. От А до Я.

  Все выпуски  

Веб-дизайн. От А до Я. # 11


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Веб - Дизайн. От А до Я.
# 11
21 мая 2001г.
Проект сайта "AGS Design" http://dweb.ru
кол-во подписчиков - 5200

    В этом выпуске:

    Ссылки Вебмастеру:

  • Web-дизайн, архив рассылок
  • Анимация и графика
  • Иконки и кнопки
  • Flash и Photoshop
  • Доска объявлений
  • Фоновые изображения
  • Сеть TBE
  • Баннеры
  • Все скрипты
  • Фото
  • 3D анимация
  • ЧаВо

  • Доброе время суток!


    Системы голосования на web-серверах


    В практической работе web-мастера сегодня все чаще встает задача организации процесса голосования по какому-либо актуальному вопросу, и это постепенно становится таким же стандартом и признаком хорошего тона, как наличие на сайте гостевой книги, чата или web-форума. Конечно, если вы новичок, или у вас нет времени, или для вас не очень критичны детальная статистика опроса или эксклюзивность дизайна, теперь можно воспользоваться стандартным сервисом www.voting.ru (так же как и www.guestbook.ru для организации гостевой книги), но в некоторых случаях (особенно для организации достаточно валидных политических анкетирований) необходимо бывает более детально углубиться в теорию и практику организации процесса голосования именно на своем сервере.

    Формулировка задачи и возможные инструменты для ее решения

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

    Есть ВОПРОС.
    Есть несколько вариантов ОТВЕТОВ.
    Посетитель должен выбрать правильный с его точки зрения ответ (при этом он имеет право узнать, какова полная картина голосования в данный момент).

    На самом деле, если бы все было так просто, существовал бы один или несколько простых скриптов (вроде раздаваемых на www.script.ru), которые можно было бы брать за основу и переделывать под конкретные нужды. Но при внимательном рассмотрении оказывается, что здесь существует еще масса тонких моментов и подводных камней. Поэтому я полагаю, что универсального скрипта подобного рода просто не существует, и лучше всего углубляться в процесс написания системы голосования, начиная с простых примеров, шаг за шагом отслеживая возможные возникающие проблемы и при этом четко понимая, как можно научиться их обходить.

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

    Разделим для начала задачу на два класса: "простой счетчик" и "счетчик со статистикой".

    В качестве инструментов я предлагаю выбрать PHP3 (www.php3.net) в качестве on-line-препроцессора и Perl5 (www.perl.com) для off-line-обработки.

    Язык PHP3 уже достаточно распространен среди хостинг-провайдеров (webmaster.comset.net) как в России, так и за рубежом. Он был создан специально для написания скриптов, исполняемых на стороне сервера. Для сервера Apache он работает в виде дополнительного модуля, обеспечивая высокую скорость работы и удобство программирования.

    Программа на PHP представляет собой файл на языке HTML с включенными в него тегами PHP, которые выглядят следующим образом:

    <? команды ?>

    Таким образом, вы можете легко подготовить весь дизайн страницы в любимом редакторе HTML, а затем вставить в него необходимые команды PHP.

    Простой пример программы голосования

    С чего начинается система опроса? Правильно, с формы. Итак:

    <form method=POST action="stat.phtml">
    На президентских выборах победит:<br>
    <input name=vote type=radio value="0">мэр Лужков<br>
    <input name=vote type=radio value="1">мэр Петушков<br>
    <input type=submit value="Go!">
    </form>
    
    Поместим эти строки в наш файл vote.html. Обратите внимание на то, что суффикс у обработчика формы .phtml, а не .html или .cgi. Так обычно обозначают скрипт для PHP. Вам не требуется делать этот файл исполняемым, так как его выполняет сам сервер. И, соответственно, вам не требуется выкладывать его в отдельный каталог cgi-bin.

    Поставим задачу как "Сделать счетчик для каждого варианта ответа".

    В простейшем случае файл stat.phtml должен содержать следующие строки:
    <?
    $errmsg="; // Изначально ошибок нет.
    $fp=fopen('vote.dat','w+');  //Откроем файл для записи,
     но не очищая его.
    if ($fp) { // Если не открыть, сообщим об ошибке.
    // Прочитаем строку, уберем в конце ее лишний '\n' и
    // разделим ее по символу "\t" (табуляция) в массив.
    $votes=split("\t",chop(fgets($fp,80)));
    $votes[$vote]++; // Увеличим на 1 наш голос.
    rewind($fp); // Отмотаем файл в начало.
    // Запишем в него массив счетчиков, склеив элементы через
     знак табуляции.
    fputs($fp,join("\t",$votes));
    fclose($fp); // Закроем файл.
    } else $errmsg.=' Не открыть файл голосования';
    ?>
    
    После исполнения этого кода массив $votes будет содержать результаты голосования (счетчики), а строка $errmsg - сообщение об ошибке (или будет пустой, если ошибок не было). Так как $vote - это значение переменной vote из формы файла vote.html (в таком виде программа на PHP получает значения полей вызывающей формы) и оно может быть равным 0 или 1 (как следует из атрибута value тегов input формы), то его удобно использовать в качестве индекса в массиве счетчиков.

    Файл vote.dat должен быть доступен на запись пользователю, от имени которого работает www-server. Этот вопрос следует уточнить у системного администратора вашего сервера. Обычно достаточно сделать его доступным для записи (группе) командой ftp

    chmod 660

    Можно вывести результаты голосований в виде таблицы (эти строки можно записать тоже в stаt.phtml):
    <?
    // Запишем в виде массива ответы.
    $names=array('мэр Лужков','мэр Петушков');
    ?>
    <table>
    <tr>
    <td>Кандидат</td>
    <td>Голосов</td>
    </tr>
    <? for ($i=0; $i<sizeof($votes); $i++) : // Цикл по всем
     счетчикам ?>
    <tr>
    <td><? echo $names[$i] ?></td>
    <td><? echo $votes[$i] ?></td>
    </tr>
    <? endfor // Конец цикла ?>
    </table>
    
    Продолжение следует...

    Сергей Келер



    Русские домены


    Русские домены. Как это работает.

    Одной из главных составляющих Интернета является система доменных имен (DNS). DNS это сетевая инфраструктура, которая состоит из серверов доменных имен, автоматически преобразующих запрос WEB-адреса пользователя в текстовом формате в цифровой IP-адрес компьютера, где находиться запрашиваемый сайт.

    До недавнего времени домены могли состоять только из символов латинского алфавита, цифр и знака дефис. В 2001 году компания VeriSign объявила о создании новой технологии, которая позволяет использовать в именах доменов практически любые символы национальных алфавитов и даже иероглифы (так называемые мультиязыковые домены).

    Для того, чтобы это стало возможным, символы русского, или других национальных алфавитов - кодируются в формат Unicode, а потом по специальному алгоритму преобразуются в уникальную последовательность ASCII-символов. Т.е. когда мы набираем в броузере слово интернет.com, оно преобразуется в aq4d2qrvia6tkqq. Затем к этой записи добавляется специальный префикс bq--, который служит для того, чтобы отличать преобразованные доменные имена от случайных наборов ASCII-символов. Подобный формат записи называется RACE кодировкой (Row-based ASCII Compatible Encoding). И именно адрес сайта в RACE кодировке хранится в базах данных службы DNS по всему миру. Благодаря этому не требуется производить глобальные изменения в существующих сегодня службах Интернет.

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

    На первом (продолжающемся в настоящий момент) этапе все зарегистрированные национальные имена в RACE-формате размещаются в виде доменов третьего уровня в тестовой зоне mltbd.com/net/org. Зарегистрировав сайт www.интернет.com, вы сможете увидеть в сети виртуальный сервер bq-- aq4d2qrvia6tkqq.mltbd.org. На страничке по этому адресу содержится краткая информация о ходе тестирования, и подтверждение успешного достижения зарегистрированного домена.

    На втором этапе (начало которого планируется в ближайшее время) созданные в зоне mltbd.com/net/org поддомены будут делегированы владельцам соответствующих доменов второго уровня. Таким образом, набрав в браузере www.bq-- aq4d2qrvia6tkqq.mltbd.com, пользователь попадет на сайт www.интернет.com, а точнее, на страницу, определяемую сервером имен интернет.com.

    Наконец, на третьем этапе компания приступит к непосредственному делегированию доменов в зонах .com, .net и .org, т.е. адрес www. bq-- aq4d2qrvia6tkqq.com приведет пользователя на сайт www.интернет.com. Если же на компьютере клиента будет установлен соответствующий плагин-перекодировщик или поддерживающая формат RACE операционная система, то использование мультиязыковых имен станет полноценным. Адрес сайта можно будет вводить в его исходной форме: www.интернет.com. Начало этого этапа ожидается в июне-июле 2001 г., однако указанные сроки могут быть изменены по результатам первых этапов тестирования.

    Доменные имена будут принадлежать тем, кто первым подал на них заявку. Учитывая небольшую стоимость многие "русские" домены уже заняты. Вы можете убедиться в этом сами www.rus-dom.ru/whois.htm, набрав наугад "ходовые" термины и слова (магазин.com, реклама.com и т.д.)


    Как зарегистрировать домен в зоне .com, .net, .org

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

    Наконец-то появился сайт, где на русском языке и у российской фирмы можно просто, а главное самостоятельно, зарегистрировать домен в зоне .com и т.д. и кредитка не нужна. Так фирма российская и это позволило снизить цены: домен по-русски стоит от 23$, обычные домены от 12$ за 1 год.

    Зарегистрироваться можно на сайте http://www.rus-dom.ru

    Процедура регистрации проста и сводится к следующим действиям:

    1. На первой странице сайта необходимо выбрать свободное имя домена. Проверка на доступность имени происходить сразу после нажатия кнопки "Старт". Предварительную проверку свободных имен можно осуществить в разделе WHOIS.

    2. Далее необходимо выбрать пакет услуг, которыми Вы хотите воспользоваться. Возможно:
    - Только регистрация имени домена (пакет "Только регистрация"). В этом случае, для обычных доменов, необходимо предварительно обеспечить DNS поддержку доменной зоны для выбранного имени. Это может сделать либо Ваш провайдер либо мы будем рады предложить Вам свои услуги DNS в пакете услуг "ВЕБ-старт". Для русских доменов поддержка DNS на сегодняшний день не нужна, но по завершению всех работ по введению русских доменов они также потребуются.

    - Пакеты услуг "ВЕБ-старт", "Мой E-Mail", "+ хостинг" уже включают поддержку DNS и предлагают Вам дополнительные возможности от организации почтового ящика до полнофункционального сайта на регистрируемом домене.

    3. На третьем этапе Вам будет предложено ввести Ваши персональные данные, которые будут идентифицировать Вас как владельца домена. Если Вы уже зарегистрированы у нас, то Вам необходимо ввести имя и пароль для входа в систему наших абонентов.

    4. На заключительном этапе необходимо определиться с порядком заключения договора и выбрать форму оплаты стоимости регистрации. Оплата возможна:
    - наличными или возможен бесплатный выезд курьера к Вам;
    - безналичным способом через Сбербанк России для физических лиц;
    - безналичным способом для юридических лиц;

    И все Ваш домен начнет работать в течение суток.

    В. Фролов.


    Оглавление/Вверх


    PHP - система разработки скриптов


    или как написать скрипт с использованием базы данных за 20 мин.

    1. Введение

    Прежде всего, ответим на вопрос: что же такое PHP? PHP - это система разработки скриптов, включающая в себя CGI - интерфейс, интерпретатор языка и набор функций для доступа к базам данных и различным объектам WWW. По личному мнению автора этой статьи, на данный момент PHP является наиболее удобным и мощным средством разработки приложений WWW и интерфесов к БД в Интернет.

    1.1. Создание скриптов на PHP

    Система PHP устанавливается на Web-сервер в качестве обработчика определенного mime - типа, аналогично системе SSI (Server Side Include), то есть PHP-скрипт представляет собой обычный html-документ с редкими (или не очень :) вставками тэгов PHP - комманд. Благодаря этому, создание и отладка скриптов PHP значительно проще, чем отладка и создание скриптов на других языках (например C или Perl).
    Вместе с тем, PHP обеспечивает разработчику очень большие возможности при разработке приложений web или активных страниц, так как облдает значительным набором функций и относительно большой гибкостью.

    1.2. Синтаксис PHP

    По своему синтаксису язык PHP наиболее походит на классический С, хотя видны и некоторые заимствования из Java и Perl. По крайней мере, программист на С очень быстро освоит данный язык и сможет использовать его с максимальной эффективностью.
    В принципе, в PHP есть практически все операторы и функции, имеющиеся в стандартном GNU С (или их аналоги), например есть циклы (while, for), операторы выбора (if, switch), функции работы с файловой системой и процессами (fopen, *dir, stat, unlink, popen, exec), функции ввода-вывода (fgets,fputs,printf) и множество других...
    Одним из самых больших отличий PHP от C - является использование переменных.

    1.3. Переменные в PHP

    Первое, что бросается в глаза при использовании PHP - это отсутствие типизированных переменных, хотя некая типизация и присутствует, но тип переменной в каждом конкретном операторе зависит от контекста, например переменная $str="10" при использовании ее в операторе echo($str) будет иметь строковый тип (да, да, про char * можно забыть), а в выражениии типа $str=$str+1 будет обрабатываться как число.
    Хотя это может показаться недостатком, данная особенность PHP имеет свой смысл, так как при обработке результатов форм ввода html очень трудно определить первоначальный тип переменной, и кроме того, все перобразования типов можно свалить на php (и забыть про itoa и atoi).
    Также одной из интересных возможностей PHP является автоматический перенос переменных окружения и параметров скрипта в переменные PHP, причем отпадает необходимость перевода URL-кодированных значений переменных в нормальные, например при передаче скрипту параметра str=text%20with%20spaces ( запрос типа GET /some_script.php?str=text%20with%20spaces HTTP/1.0 ) будет образована переменная $str="text with spaces". 2. Возможности языка

    PHP имеет целый ряд встроенных функций для обработки объектов самого различного рода. ( PHP 3.0 Functions reference )
    Для примера мы вкратце рассмотрим следующие разделы, наиболее важные с моей точки зрения :
    2.1. Обработка строк;
    2.2. Работа с файлами и процессами;
    2.3. Работа с базами данных;

    2.1. Обработка строк

    Работа со строками в php гораздо богаче, чем в С. Кроме того, что существуют практически все стандартные функции языка С, наличиствует  множество дополнительных функций и возможностей, которые как ориентированы на web, так и просто облегчают работу. В частности конкатенация строк осуществляется следующим оператором: $result_str=$first_str . $second_str;
       В качестве примеров полезных для работы в web функций могут служить функции htmlspecialchars() , преобразующая в строке символы типа & в последовательность &amp; или функция urlencode(string str), преобразующую символы русского алфавита в последовательность %XX, где ХХ - шестнадцатеричный код символа. Также весьма интересны функции работы с регулярными выражениями, например $str=ereg_replace("/usr/local/([^/]*)/filename", "\\1","/usr/local/dirname/filename"); даст нам строку $str="dirname". Или например функция explode, лично меня очень порадовшая: данная функция позволяет преобразовать строку в массив значений, например для формирования следующего элемента выбора

    был использован следующий код:

    <?php $strarray=explode(":","Понедельник:Вторник:Среда:Четверг:Пятница:Суббота:Воскресенье"); ?>
    <select name="dayofweek" size="1">
    <?php for($i=0;$i<7;$i++) { ?>
    <option> <?php echo($strarray[$i]); ?> </option>
    <?php } ?>
    </select>


    2.2. Работа с файлами и процессами

    Работа с файлами в PHP практически ничем не отличается от работы с файлами в С,  те-же самые функции работы с потоками или с блоковыми файлами, fopen, fclose, fread, fgets, fputs, fwrite, но есть одна маленькая, но очень приятная возможность работать с файлами по их URL, например возможны следующие конструкты :
    $fp = fopen( "http://www.soft.ru/", "r" );
    $fp = fopen( "ftp://www.soft.ru/", "r" );
      
    И, одной из самых больших прелестей PHP, по моему мнению является возможность использовать другие программы, например для получения списка текущей директории использовать стандартную команду ls, или отправлять почту с помощью sendmail. Это достигается с помощью того, что php позволяет создать процесс, и работать с его стандартным вводом или стандартным выводом как с обычным потоком. (команда popen, например $fp=popen("/bin/ls -l","r"); ).

    2.3. Работа с базами данных

    В системе PHP работа с БД осуществляется в основном путем работы с различными SQL-серверами, причем SQL-сервер в любом случае рассматривается как удаленный, то есть создается сетевое соединение. Благодаря этому возможно открывать из одного скрипта либо несколько пользовательских сессий, либо работать с различными SQL-серверами. После установки соединения с сервером, выбирается рабочая база данных, после чего можно отправлять и обратывать запросы (так как SQL является клиент-серверной архитектурой, любая работа с данными осуществляется с помощью запросов к SQL-серверу на получение или изменение данных). При выполнении запроса создается некий объект, в котором хранится результат выполнения запроса, после чего можно получать отдельные ряды, путем выполнения специальных функций. Если вы когда-нибудь работали с SQL - вы очень быстро разберетесь с использованием функций работы БД в PHP.

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

    Название фирмы

    Телефон

    контора Купи-продай 222-33-44
    ГлавСовСнаб 333-44-55
    MuSt DiE 444-55-66


    А сформирована данная таблица была следующим php -  кодом:


    <!--  Начало  таблицы  -->
    <table  width="50%"  border="1"  cellspacing="0"  cellpadding="0"  align="CENTER">
      <tr>
        <th  width="75%">Название  фирмы</th>
        <th  width="25%">Телефон</th>
      </tr>
    <script  language="php">
    $sock=msql_connect ("localhost");
      //Соединяемся  с  SQL  -  сервером
    msql_select_db( "test",$sock);  //Выбираем  БД
    $R=msql_query( "select  *  from  db",$sock);  //Делаем  запрос
    $T=msql_fetch_array($R);  //Получаем  первый  ряд  из  результата  выполнения  запроса
    while  (is_array($T))  {  //Пока  есть  ряды  в  запросе  (т.е.  $T  -    массив)
    </script>
      <tr>
        <td> <?php  echo  $T[name];  //Распечатываем  поле  name  из  текущего  ряда ?></td>
        <td  align="center"> <?php  echo  $T[phone];  //Распечатываем  поле  phone  из  текущего  ряда  ?></td>
      </tr>
    <?php  $T=msql_fetch_array($R);  //  Считываем  следующий  ряд  ?> 
    <?php  }  //  Конец  цикла  while  ?>
    </table>
    <!--  Конец  таблицы  -->

    3. Использование PHP

    Итак, постепенно мы приходим к следующему выводу: использование PHP целесообразно при создании часто обновляемых либо громоздких в написании программ, скорость выполнения для которых не является критическим параметром (имеется в виду, что если разница между временем выполнения скрипта на С и скрипта на PHP составляет 10-20%, то вполне можно предпочесть скорость разработки скорости выполнения) и необходимо быстрое создание полнофункционального приложения. (если интересно мое личное мнение то кроме PHP я использую только C, и то, очень редко.)

    http://bamond.com


    Оглавление/Вверх


    Хостинг


    Вы хотите купить домен в зонах (.com .org .net) и услуги хостинга за не высокую плату? Тогда Вы можете воспользоваться услугами I-Commerce solutions. I-Commerce solutions являтся партнерами компании Creative Web Ideas, которая предоставляет услуги хостинга уже более 4 лет. Высококвалифицированный персонал, современные мощные сервера и более 6 подключений по опто-волоконным линиям OC3, DS3 и OC12 к таким ведущим компаниям как UUNET, Qwest, Time Warner и AT&T - все это гарантирует высокое качество предоставляемых услуг и практически 100% uptime.

    Благодаря выгодной договоренности с Creative Web Ideas I-Commerce solutions может позволить себе предоставлять хостинг по весьма низким ценам. И при этом не взимая "установочной" платы и не требуя долгосрочных контрактов - минимальный срок контракта всего 1 месяц!

    Став их клиентом Вы получите высокое качество от Creative Web Ideas и низкие цены от iCS.

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

    Тарифные планы от Unix 1:
    75Mb дискового пространства, FrontPage, CGI, Новая версия mySQL: 3.23.24, полнофункциональная панель управления, cron, PHP4, WAP, yеограниченное кол-во domain site aliases, 10 Sub-domains (с отдельными логином и паролем), Неограниченное кол-во автоответчиков, Неограниченное кол-во листов рассылки и мн. др. $7.95/месяц.
    До Adult -3:
    1.200Mb дискового пространства, 5 БД mySQL, CGI, PHP, FP-2000 и мн.др. $28.95/месяц

    Есть тестовый аккаунт, т.е. Вы сможете оценить качество услуг Бесплатно!

    И что самое главное, оплатить все услуги можно WebMoney. Вы можете также взять Кредит.

    Получить более подробную информацию Вы можете на сайте I-Commerce solutions.



    Оглавление/Вверх


    Баннерная & Текстовая сеть TBE.


    TBE (Tranzit Banner Exchage) - уникальная сеть обмена, позволяющая увеличить посещаемость Вашего сайта. Сеть основана на технологии BannerBankа. Поддерживаются типоразмеры баннеров 120х60, 468х60, 125х125, 100х100, и текстовые блоки. Коммисия 10%. Высокий CTR. Каждому новому участнику 20,000 БЕСПЛАТНЫХ показов! Узнать подробности и зарегистрироваться можно на сайте http://dweb.ru/go/


    Оглавление/Вверх


      Вы хотите публиковаться?
      Присылайте статьи или вопрос (по публикации) по этому адресу с пометкой "Статьи в рассылку". Гонорар за статьи - договорной (500-3000 показов RLE).


    Ведущий рассылки Дмитрий Давыденко


    http://subscribe.ru/
    E-mail: ask@subscribe.ru

    В избранное