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

WEB-Дизайн, азы.

  Все выпуски  

WEB-Дизайн, азы. # 3 (122) Dweb.ru


Информационный Канал Subscribe.Ru


Веб-Дизайн, Азы

# 3 (122)
11 марта 2003г.
Проект сайта "AGS Design" Dweb.ru
   GoldHost.ru    Jobus.ru    Jlove.ru    GoldHosting.ru
кол-во подписчиков - 23000

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

  • Ваш первый скрипт - 2
  • Наши пректы.
  • 3Ds MAX. Моделирование глазного яблока.
  • PHP - постраничный вывод
  • Копилка Вебмастера-10.
  •   Ссылки Вебмастеру:

  • Иконки и кнопки
  • Flash и Photoshop
  • Баннеры & Фото
  • Работа на JobUs.ru
  • Анимация и графика
  • Скрипты (CGI,JS,Applet)
  • Фоны
  • Web-дизайн
  • Знакомства
  • Обменные сети
  • Gold Хостинг
  • Best Хостинг

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

    Форум на Dweb.RU. Ответы на ВСЕ Ваши вопросы. У Вас есть вопрос, тогда задайте его, Вам подробно ответят, подскажут, помогут наши специалисты

    Последние темы форума:

  • Flash
  • Полоса прокрутки
  • Зацените пожалуйста сайт
  • Эффект Hide Nav/Show Nav. Как сделать?
  • Вопрос об IE5
  • как всегда........скрипт
  • Календарь дней рождений в фотографиях
  • Помогите со скриптом
  • Окно поверх других
  • Вставка файла
  • в чем преимущество virtual include перед iframe
  • Как сделать кнопку которая будет отправлять все данные
  • Как создать форму отправки сообщений
  • Фиксированный фон в контейнере
  • Как создать информер
  • Оптимизация HTML
  • Method post и get в формах - чтоэто такое
  • PHP сессии
  • скрипт отправки файла на мыло
  • функция mail в php
  • Ftp по http на php


    Что такое Java Sript или ваш первый скрипт.

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

    Итак, давайте начнем наш урок. Начнем его с функции prompt(); Я должен перед вами извиниться т.к. я забыл включить эту функцию в первую главу.
    Исправлю свою ошибку. Функция prompt(); нам нужна для того чтобы, пользователь мог ввести какое-нибудь число или строку по запросу сценария. Сама функция выглядит так. prompt("Строка которую вы пишите, это может быть, вопрос, пример..", "а в этой строке вы пишете начальное значение, лучше его оставить пустым");

    Что бы лучше понять, что это за функция откройте документ и поэксперементируйте =).

    Поэксперементировали??? Давайте продолжим. В нашем скрипте "мойпервыйскрипт" есть строчка "Ура я создал свой первый скрипт" давайте сделаем так, чтобы пользователь мог вводит любую другую строчку. Создаем новый документ, назовем его prompt.html

    #1<HTML>
    #2<HEAD>
    #3<TITLE>Prompt</TITLE>
    #4</HEAD>
    #5<BODY>
    #6<SCRIPT Language="JavaScript">
    #7x = prompt("Введите сточку","");
    #8document.write(x);
    #9</SCRIPT>
    #10</BODY>
    #11</HTML>

    Давайте разберемся в скрипте. В 1-6 строчке все понятно. В 7 строчке мы присваиваем переменной X то значение, которое ввел пользователь. В 8 строчке мы выводим эту строку на экран. В 9-10 строчке все понятно.

    Идем дальше. Что же такое условный оператор? Ну, вы, наверное, знаете. Самое простое условие: Чайник закипел? Если да то выключите его, если нет, то ждите. Начнем с самого распространенного оператора условия – If. Надо сказать что, все условные операторы( за исключением нескольких) состоят из левой и правой части . Изучим символы которые вам пригодятся в условных операторах.

    = = проверяет равна ли Левая часть правой
    > проверяет больше ли Лч правой
    < проверяет меньше ли Лч правой
    >= проверяет больше или равна Лч правой
    <= проверяет меньше или равна Лч правой
    != проверяет правда ли что Лч не равна правой

    Синтаксис If. Возьмем два числа 5 и 4 и будем их сравнивать.
    Пишем:

    If ("5" = = "4")
    {
    Какое-то действие
    }
    Заметьте, что числа 5 и 4 в кавычках!!! Если было бы без кавычек JS воспринял это как переменные.
    Давайте закрепим это знание:
    Создаем документ под названием if.html Пишем:

    1#<HTML>
    2#<HEAD>
    3#<TITLE>IF</TITLE>
    4#</HEAD>
    5#<BODY>
    6#<SCRIPT Language="JavaScript">
    7#x = 10;
    8#y = 5;
    9#if (x > y)
    10#{
    11#document.write("Число " + x + " больше числа " + y);
    12#}
    13#</SCRIPT>
    14#</BODY>
    15#</HTML>

    В 1-6 строке ничего не понятного. В 7 – 8 создаем переменные и присваиваем им значение числа. В 9 строке идет оператор условия т.е если X больше Y тогда скрипт в 11 строке выводит строчку "Число 10 больше числа 5". В следующих строчках ничего не понятного быть не должно. Обратите внимание, что у условного оператора if есть фигурные скобки их надо ставить всегда!!! Т.к в них заключено то действие, которое будет выполняться, после проверки условия. Я надеюсь все понятно?!

    Теперь давай перейдем к такому понятию как логические операции. Допустим, нам надо сверить несколько значений в одном операторе if. Для этого и существуют логические операции.

    Операция И

    Эта операция проста, я ее могу не расписывать подробно и все равно вам будет ясно. Возьмем пример с 3 числами.

    1#<HTML>
    2#<HEAD>
    3#<TITLE>IF</TITLE>
    4#</HEAD>
    5#<BODY>
    6#<SCRIPT Language="JavaScript">
    7#x = 10;
    8#y = 9;
    9#z = 8;
    10#if ( x >y && y>z)
    11#{
    12#document.write("Привет Вася");
    13#}
    14#</SCRIPT>
    15#</BODY>
    16#</HTML>

    Разберем скрипт:
    В 1-6 строке ничего не понятного нет. В 7-9 строке задаем переменные и присваиваем им значения. В 10 мы видим, вам уже знакомый, оператор условия if + два выражения X>Y и Y>Z. Посреди этих выражений стоит знак && это и есть операция И. Если прочитать на языке JS эту строку мы получим следующее:
    Если 10 больше 9 И 9 больше 8 написать "Привет Вася" Понятно?

    А сейчас маленькая табличка посвященная операции И.

    Но сначала маленькая справочка. Как мы все знаем из уроков Алгебры или еще чего-нибудь есть такие значения как булевские. И конечно же они используются в JS! Так допустим когда вы ставите условный оператор if и сверяете в нем два числа, например 10>1, то если это правильно if возвращает значение true и выполняется код в фигурных скобках, а если нет (вряд ли это возможно =) ) то возвращает значение false и код не выполняется.
    Ну а сейчас как я и обещал табличка для операции И

    Левая часть     Правая Часть     Результат
    true                    true                       true
    false                   true                      false
    true                    false                     false
    false                   false                     false

    В этой табличке нету ничего сложно, она поможет вам в составление условий с оператором И. Но те кто еще не очень понял табличку объясняю.
    Возьмем наш пример с переменными x = 10 y = 9 и z = 8. Теперь пройдемся по таблице. Буду идти по порядку.
    If (x>y && y>z) {действие} Если левая часть истинна (10 больше 9) и правая часть истинна (9 больше 8) выполняется какое-нибудь действие.
    If(x<y && y>z) {действие} Если левая часть ложь (10 меньше 9) и правая часть истинна (9 больше 8) действие не выполняется.
    Надеюсь после двух примеров понятно как пользоваться таблицей???
    Обратите внимание, что если левая часть ложь то действие выполняться не будет. Даже если правая часть истинна.
    ВНИМАНИЕ ОТНОСИТСЯ ТОЛЬКО К ОПЕРАЦИИ И

    Операция ИЛИ

    Похожа на операцию И, но операция ИЛИ обозначается || и для нее действует другая таблица.

    Левая часть     Правая Часть     Результат
    true                    true                      true
    false                   true                      true
    true                    false                     true
    false                   false                     false

    Возьму тот же самый пример с X Y и Z
    If (x>y || y>z) {действие} если левая часть истинна (10 больше 9) или правая часть истинна (9 больше 8) выполняется действие.
    If (x<y || y>z) {действие} если левая часть (10 меньше 9) или правая часть (9 больше 8) истинная действие выполняется

    Надо заметить что если у вас в левой части выражение истинно то JS уже не проверяет правую часть, а стразу выполняет действие!

    Плюс если у вас все действия будут ложны, но хоть одно из них истинно то действие выполнится.
    ВНИМАНИЕ ОТНОСИТСЯ ТОЛЬКО К ОПЕРАЦИИ ИЛИ

    Операция НЕ

    Иногда при создании скрипта надо, делать так чтобы если условие не верно то что-нибудь выполнялось =). Да, объяснил не очень понятно, но когда я приведу пример вы все поймете. Синтаксис команды таков: if (!(условие)) {действие}

    Беру пример с X=10 и Y=9
    If (!(X<Y)) {действие}
    Действие выполнится тогда, когда X<Y (10 меньше 9) ложно.

    Надо обратить внимание, что есть сложные скрипты где надо, чтобы в одном условие было другое, например:
    Возьмем пример с 4 переменными X=10 Y=9 Z=8 A=7
       If (X > Y)
    {
       If (Z>A)
       {
    действие
       }
    }

    Из этого скрипта мы видим, что в первом условном операторе лежит второй условный оператор. Как вы, наверное, догадались, что можно вставить еще какое-нибудь действие в условный оператор. Кстати, этот кусок скрипта ни какой большой пользы не несет =).

    Else

    У условного оператора IF есть такая штука как else.
    Разберем часть кода:

    IF (X>=Y)
    {
    document.write("Привет");
    }
    Else
    {
    document.write("Пока");
    }

    Итак, в условном операторе IF мы проверяем условие, X больше или равно Y если да, то пишется "Привет". Если это условие не выполняется, то пишется "Пока". Понятно???

    Цикл FOR

    Оператор for позволяет повторить код определенное количество раз. У for следующий синтаксис.

    For (x=1; x<=3; x++)
    {
    Повторяемый код
    }

    Разбираемся. Чтобы отслеживать количество повторений кода, нам необходима переменная X, которая вела бы подсчет. И в первой части X получает свое начальное значение 1.

    Дальше идет проверяемое условие (x<=3) действие в фигурных скобках будет повторяться пока X<=3 равняется true.

    В третьей части мы видим инкрементирование или прибавление. Например, после каждого цикла к X будет приращиваться 1. То есть после 2 повторений оператора for X будет равен 3

    Есть так же функция декрементирования. Это обратная функция, то есть она отбавляет и записывается так X--, как вы понимаете, вместо X может стоять любая другая переменная.

    Функции

    И вот мы переходим к одной из самых необходимых вещей в JS – функциям. И не просто функциям, а к вашим собственным функциям!!!
    Синтаксис функций:

    function имя_функции ()
    {
    КОД ФУНКЦИИ
    }

    Имя функции может быть любое, кроме зарегистрированных функций JS: while () for()….В круглых скобках заключен параметр или параметры функции.

    Функции с параметром:
    function yeah (parametr)
    {
    код функции
    }

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

    Пример:
    1#<HTML>
    2#<HEAD>
    3#<SCRIPT Language="JavaScript">
    4#function my_function (name)
    5#{
    6#document.write("Вас зовут:" + name);
    7#}
    8#</SCRIPT>
    9#</HEAD>
    10#<BODY>
    11#<SCRIPT Language= "JavaScript">
    12#x = prompt("Ваше имя");
    13#my_function (x);
    14#</SCRIPT>
    15#</BODY>
    16#</HTML>

    Разберемся с функцией. В 1-3 строчке все понятно. В четвертой мы создаем функцию my_function с параметром name. В 6 строчке после запуска функции мы сделаем так, чтобы параметр name написался в браузере.

    В 7-11 строчке ничего непонятного нет. В 12 мы создаем переменную Х и передаем ей то значение, которое напишет пользователь. В13 строчке мы вызываем функцию my_function и передаем ей значение переменной X. Надеюсь вы поняли как передаются парметры???

    Функция может принимать несколько параметров, например:
    function my_function(name,age)
    {
    код функции
    }
    …….

    Тогда при запуске функции надо указать несколько параметров.
    my_function (Vano,18)

    Теперь вы узнали что такое условные операторы, циклы и функции. Настала пора задавать вам домашнее задание.

    ∙ Создайте скрипт, который выводил бы время, имя пользователя его возраст и рост. Скрипт должен состоять из 2-х функций одна вывод время, другая вывод инфы о пользователи. Функция с выводом инфы о пользователи, должна иметь три параметра: имя, возраст, рост. Желательно чтобы писалось следующее
    Ваше имя: Ваня
    Ваш возраст: 18
    Ваш рост: 180.

    Еще эта функция должна проверять что пользователь вводит числа.
    Функция с выводом времени должна выводить время как на часах, то есть 12 05 06.

    Все домашние задания присылать на easds@msn.com

    Желаю Удачи!!! © EASDS EASDS



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


    3Ds MAX

    Моделирование глазного яблока.


        В этом уроке, я попытаюсь рассказать про моделирование глазного яблока. Замечу, что делать его совсем не сложно, даже с малыми знаниями в 3Ds MAX.
        Вот что будет в результате:



        Для начала в окне фронтального вида создадим объект - сфера. Его параметры:
    Radius:50
    Segments: 35

    Теперь создайте ещё одну сферу (я делал с радиусом 40) напротив - как тут:


        Выделите первую сферу и во вкладке нажмите на Boolean Compound Object. В настройках (вкладка Modify) нажмите на кнопку Pick Operang B и затем нажмите на другую сферу. Тем самым, от первой отрежется кусочек:


        Теперь создайте ещё одну сферу такого же радиуса, как и вторую (я делал обе сферы радиусом 40) и поместите её внутрь первой сферы и так, чтобы часть её выходила из выреза.
    Вот и всё! Осталось только к третьей сфере применить материал стекла (смотрите соотв урок), а к белку применить UWV Map'инг (см. соотв урок).
    Все!

    Сайфутдинов Нияз


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


    PHP - постраничный вывод

    Привет всем!!! Вот и моя вторая статья!!!
    Теперь поговорим о постраничном выводе информации из файла (подчеркиваю из файла) а не из базы данных :-)
    Что меня натолкнуло написать эту статью? Вчера в аське мой друг Oles.pwl попросил объяснить ему, как организовать постарничный вывод из файла, вот я и держу свое обещание, только не для одного Oles.pwl, а для всех Вас товарисщи :-)

    Сразу хочу сказать, код написан Manlix'ом я пишу только пояснения к нему, ну т.е. объясняю как его организовать, для непонятливых :-)

    Допустим есть у Вас файл содержащий информацию такого вида
    заголовок||статья
    заголовок2||статья2
    заголовок3||статья3
    и так далее...

    Тепрь сделаем это с выводом информации скажем по 5 на страничку, ну т.е. будем выводить по 5 строк инфы из файла Скажем так
    ------------------------------------------------------
    Заголовок статьи --- Тря ля ля ля ля лял
    Сама статья --- Статетываывоаылвоал
    ------------------------------------------------------
    Теперь приступим к самому приятному, кодингу :-) Главный файл test.php

    <?php
    $base="base_file.txt"; // Файл где находиться инфа
    $general=file($base);  //Заносим весь наш файл в массив
    $lines_file=file($base); //Еще разочек занесем наш файли в массив :-)
    $lines=count($lines_file); //Считаем общее количество записей в файле, ну т.е. строк.
    $pmessages = file("$base");
    $onlyg=2; //Сколько записей выводить на страницу
    /*
    Тут начинаеться самая главная часть нашего файла
    Просчитываем странички :-)
    */
    if (@$page == "" or $page < 0) //Если переменная $page равна пустоте, или она меньше 0
    {
    $page = "1";   //Тогда переменнная $page=1
    }
    $first = count($pmessages) - ($onlyg * ($page - 1));
    $second = count($pmessages) - ($onlyg * $page) + 1;
    if ($second < 1)
    {
    $second = 1;
    }
    $pages = (int) ((count($pmessages) + $onlyg) / $onlyg);
    //Считаем общее количество страниц
    for ($onlyg = 1; $onlyg <= $pages; $onlyg++)
    //Загоняем все в цикл, т.е. присваемваем переменно $onlyg значение
    //1 и пока она меньше или равна $pages увеличиваем ее на единичку.
    {
    if ($onlyg != $page)  //Если $olyg не равняется $page
    {
    //То наши ссылки имеют такой вид
    $line .= "[ <a href=\"test.php?page=$onlyg\">$onlyg</a> ]";
    }
    if ($onlyg == $page) //А если равняеться
    {
    //То такой
    $line .= "[ $onlyg ]";  //Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь
    }
    }
    /*
    Теперь выводим саму информацию
    */
    for ( $i = $first-1; $i >= $second-1; $i--)
    {
    list($zag,$sama)=explode("||", $general[$i]);
    //Считываем все из файла и разделяем данные при помощи explode а разделитель как вы помните у нас ||
    $id = $i;
    $id++;
    echo "Заголовок статьи --- $zag<br> Сама статья --- $sama<br><hr>";
    }
    echo "$line<br>"; //Выводим ссылки
    echo "Всего статей - <font color=red>$lines</font>.";  //Выведем информацию пользователю о общем количестве записей
    ?>
    Ну вот в принципе и все.

    Автор кода: Manlix http://www.Manlix.ru
    Автор пояснительной статьи: Александр Лысенко (Alexander Lysenko) http://www.Ekibastuz.de, e-mail: alysenko@mail.kz, ICQ:154774388



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


    Копилка Вебмастера

    Копилка веб-мастера. Часть 10

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

    Генерация запроса
    Когда необходимо работать с большими массивами информации (текст, графика, таблицы, аудио и т.д.), ручной контроль за редактированием данных отнимает большое количество времени. Представьте, что на вашем сайте размещена галерея автомобилей, содержащая свыше 50-ти фотографий. Более того: вы не собираетесь останавливаться на достигнутом и планируете как минимум каждую неделю дополнять галерею новыми десятью изображениями. Что подразумевает открытие нужных страниц в текстовом редакторе и ручное прописывание тегов для новых фотографий, потом открытие страницы разделов/подразделов и обновление данных там, наконец, редактирование стартовой или новостной страницы. Все эти действия требуют времени и завидного терпения. Облегчить обновление данных призваны так называемые "программные движки", позволяющие редактировать максимум информации за счет минимальных усилий. Однако, в рамках одного выпуска (впрочем, как и всего цикла статей) рассказать о движках не представляется возможным: во-первых, потребуется время для разъяснения основ работы движков, описания их базовых функциональных возможностей и характеристики некоторых конкретных программных пакетов, а значит - большая журнальная площадь), во-вторых, рассказ о движках будет не совсем уместен в рамках цикла статей для начинающих веб-дизайнерах, большинство из которых - не программисты и даже не обладающие программистским мышлением. Однако, упоминание о простом редактировании информации было неслучайным: сегодня я расскажу, как можно реализовать автоматическую генерацию запроса данных с помощью клиентского языка JavaScript.

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

    Начало скрипта будет таким:

    <script language="JavaScript">
    max_num=100;
    ex_url=location.search.substring(1);
    if (ex_url.length==0) {
    number=1;
    }
    else {
    number=parseInt(ex_url,10);
    }
    prev=number-1;
    next=number+1;
    if (number<2) {
    }


    Эта часть определяет максимальное число изображений (в данном случае - 100), задает параметры для генерирования ссылки для каждой предыдущей и последующей фотографии. Этот фрагмент выводит непосредственно саму ссылку, которая была сгенерирована с помощью предыдущего блока кода:

    else {
    document.write("<a href=cars_gallery.html?"+prev+">Предыдущее изображение</a>");
    }
    if (number==max_num) {
    }
    else {
    document.write("<a href=cars_gallery.html?"+next+">Следующее изображение</a>");
    }


    Последний блок сценария загружает выбранное изображение:

    document.write("<p align=center><iframe src=http://www.myserver.ru/cars/"+number+".jpg width=400 height=230></p></iframe>");
    </script>


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

    http://www.myserver.ru/cars/cars_gallery.html?25

    Обратная форма
    В предыдущих выпусках "Копилки" я стал рассказывать о приемах, требующих выполнение скриптов на стороне сервера. Сегодня продолжаю это начинание и привожу пример простейшего скрипта обратной связи. Для его выполнения потребуется наличие поддержки языка Perl, знание пути расположения на сервере Perl-интерпретатора и специальной программы SENDMAIL и доступ к директории, выполняющей CGI-скрипты (как правило, это cgi-bin).

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

    Итак, начинаем с указания пути к Perl-интерпретатору:

    #!/usr/bin/perl
    или
    #!/usr/local/bin/perl

    Далее указываем путь на сервере к почтовой программе SENDMAIL, с помощью которой обработанные скриптом пользовательские данные отсылаются на ваш e-mail:

    $mailprog = '/usr/sbin/sendmail';

    После этого идет основной код сценария:

    read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
    @pairs = split(/&/, $buffer);
    foreach $pair (@pairs) {   ($name, $value) = split(/=/, $pair);
    $name =~ tr/+/ /;
    $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $name =~ s/<!--(.|\n)*-->//g;
    $name =~ s/<([^>]|\n)*>//g;
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $value =~ s/<!--(.|\n)*-->//g;
    $value =~ s/<([^>]|\n)*>//g;
    $FORM{$name} = $value; }
    $subject = $FORM{subject};
    $to = $FORM{to};
    $from = $FORM{from};
    $followupurl = $FORM{followupurl};
    open(MAIL,"|$mailprog -t");
    print MAIL "To: $to\n";
    print MAIL "From: $from\n";
    print MAIL "Subject: $subject\n";
    print MAIL "\n";
    print MAIL "-----------------------------------------------------\n";
    foreach $key (keys(%FORM)) {   if ($key ne "subject" && $key ne "to" &&
    $key ne "from" && $key ne "followupurl") {    print MAIL "$key: $FORM{$key}\n";   }}
    print MAIL "-----------------------------------------------------\n";
    close(MAIL);
    print "Location: $followupurl\n\n";


    Некоторые пояснения к содержанию программы:

    $subject = $FORM{subject}; - переменная заголовка генерируемого письма;

    $to = $FORM{to}; - переменная адресата электронного письма;

    $from = $FORM{from}; - переменная отправителя электронного письма;

    $followupurl = $FORM{followupurl}; - переменная страницы перехода после обработки пользовательского запроса;

    print MAIL "--- ... ---\n"; - тип разделителя в письме, генерируемым скриптом;

    Сохраняем файл под любым именем с расширением .pl (например, register.pl). Теперь необходимо настроить поля формы, которая у нас будет предназначена для регистрации посетителя. Примерный листинг будет такой:

    <form method="post" action="http://www.myserver.ru/cgi-bin/register.pl">
    <input type="hidden" name="to" value="mymail@myserver.ru">
    <input type="hidden" name="followupurl" value="http://www.myserver.ru/register/confirmation.html">
    <form method="post" action="http://www.myserver.ru/cgi-bin/register.pl">
    <input type="hidden" name="subject" value="Регистрация">
    <input type="hidden" name="from" value="Новый_пользователь">
    Ваше имя: <input type="text" name="name">
    Ваш email: <input type="text" name="email">
    WWW: <input type="text" name="url">
    Ваши комментарии: <textarea name="comments"></textarea>
    <input type="submit" value="ОК">
    </form>

    Здесь также необходимо разъяснить некоторые моменты:

    method="post" action="http://www.myserver.ru/cgi-bin/register.pl" - указание типа передачи данных и пути на сервере, где расположена программа-обработчик данных пользователя;

    input type="hidden" name="to" value="mymail@myserver.ru" - скрытое поле (невидимое пользователю), указывающее программе адрес электронной почты, на который нужно выслать данные;

    input type="hidden" name="followupurl" value="http://www.myserver.ru/register/confirmation.html" - скрытое поле, задающее URL перехода браузера после обработки данных скриптом;

    input type="hidden" name="subject" value="Регистрация" - скрытое поле заголовка письма, генерируемого программой;

    input type="hidden" name="from" value="Новый_пользователь" - наименование отправителя;

    Остальные поля являются видимыми посетителям страницы регистрации, необходимыми для заполнения. Следует отметить, что наличие атрибута NAME во всех видимых полях формы обязательно, т.к. именно его значение будет передано скриптом по указанному e-mail'у. В случае если этот атрибут отсутствует, данные пользователя (даже если они и были введены) отправлены не будут.

    В результате, общий вид сгенерированного таким образом электронного сообщения будет примерно таким:

    Subject: Регистрация
    From: Новый_пользователь
    -------------------------------------------
    name: Вася Иванов
    email: vasya@ivanoff.com
    url: http://www.ivanoff.com
    comments: Классный у вас сайт!
    -------------------------------------------

    Предложение перехода
    Часто веб-мастеру бывает нужно привлечь посетителей к какой-то новой услуге, недавно открывшемуся разделу, обновлению и пр. Один из вариантов - размещение информации новостного характера на стартовой странице сайта. Однако, что делать, если ничего лишнего в заглавном документе нет, а перемещать новую информацию в самый низ страницы не имеет смысла (т.к. далеко не каждый посетитель прокручивает окно до конца)? Можно прибегнуть к такому средству: параллельно с загрузкой стартовой страницы появляется диалоговое окно браузера, предлагающее ознакомиться, например, с новой услугой. При нажатии кнопки "Да" пользователь автоматически переходит в соответствующий раздел, при выборе кнопки "Нет" - остается на стартовой странице.

    На этот раз попробуем реализовать этот прием с помощью языка VBScript:

    <script language="VBScript">
    Sub window_onLoad()
    messagebox3
    end sub
    Sub messagebox3()
    dim intButton
    intButton = msgbox ("Только до 25 марта! Вам это интересно?", 4 + 64, "Специальное предложение!!!")
    If intButton = 6 then
    location.href="http://goldhost.ru"
    end if
    end sub
    </script>


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

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

    Алексей Петюшкин



    Авторам

    Вы хотите, чтобы ваши статьи были опубликованы в рассылках 'Веб-Дизайн, азы' и 'Веб-Дизайн. От А до Я'? Если вы считаете, что можете написать о дизайне, скриптам, графике и т.п., если Вам есть что сказать и о чем рассказать, я буду рад сотрудничеству с Вами. Присылайте свои предложения и статьи.
    Давайте вместе делать общее дело! Присылайте свои соображения, мысли, истории... поделитесь своим опытом.
    В качестве гонорара Вы получите несколько строк под Вашей статьёй, для рекламы/описания Вашего сайта.
    Буду рад сотрудничеству.


    Давыденко Дмитрий.     Dweb.ru   GoldHost.ru   JLove.ru  JobUs.ru   DwebHost.ru

    © 2000-2002 Copyright by Dweb.RU
    Копирование материалов рассылки возможно только в случае явного указания на сайт "Dweb.RU" как на источник информации. При этом обязательно явное указание адреса: http://dweb.ru/


  • http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное