Основы работы в Dreamweaver


Пересылка динамических значений формы


Знание действий, описанных в уроках 4 и 5, позволяет завершить упражнение, не следуя тем полезным сведениям, которые приведены в этом разделе. Рекомендую так и сделать, но если возникают проблемы или тупиковые ситуации, лучше подстраховаться и внимательно прочесть представленные здесь материалы. После этого можно перейти к последнему разделу "Проверка правильности заполнения формы".

Вначале мне хотелось бы отметить всю сложность того, что предстоит сделать. В предыдущих уроках было рассказано о том, как получать и отправлять данные, используя различные способы –файлы cookie, формы, строки запроса и т.д. Говорилось и о том, как отображать динамический текст при помощи функций Response.Write() (ASP), <cfoutput> (ColdFusion) и echo (PHP). В этом уроке говорилось об объектах и, частично, о том, как объекты применяются серверной моделью для отправки электронного сообщения по протоколу SMTP. Сами по себе, пересылка данных между страницами и почтовые объекты никак не взаимодействуют.>

Но в последнем задании урока эти две несопоставимые вещи будут использованы вместе для создания особого механизма, не встроенного в ASP или ColdFusion. Создаваемое приложение является результатом сочетания различных инструментов и технологий (HTML, HTTP-запросов, а также объектов ASP, ColdFusion и PHP, отвечающих за передачу данных по каналу связи). В определенной степени, такой симбиоз является моделью всего процесса разработки динамичных веб-сайтов, – различные объекты и приемы употребляются совместно, чтобы пользователь мог свободно использовать инструменты для передачи информации и общения.

  1. Откройте файл messageSent.asp в режиме Code (Код).

    Режим Design (Дизайн) здесь бесполезен, поскольку код, который следует модифицировать, никак не отражается на странице.

  2. Найдите электронный адрес отправителя в коде сообщения и замените его соответствующей переменной формы, как показано ниже.

    При использовании ASP следует заменить электронный адрес на следующий код: Request.Form("emailAddress").


    В случае применения ColdFusion целесообразно заменить код from="yourname@yourserver.com" кодом from="#form.emailAddress#".

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

    Теперь в строке From вместо одного и того же электронного адреса будет указываться значение, указанное посетителем в форме.

  3. Замените содержимое строки с указанием темы – subject и текст в теле сообщения – body на значения соответствующих переменных формы.

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

    Для ASP:

    <% theSchema=http://schemas.microsoft.com/cdo/configuration/ Set cdoConfig=server.CreateObject("CDO.Configuration") cdoConfis.Fields.Item(theSchema & "sendusing") = 2 cdoConfid.Fields.Item(theSchema & "smtpserver") = "your.SMTP.server.com" cdoConfig.Fields.Update set cdoMessage=Server.CreateObject("CDO.Message") cdoMessage.Configuration=cdoConfig cdoMessage.From=Request.Form("emailAddress") cdoMessage.To=yourname@yourserver.com cdoMessage.Subject=Request.Form("subject") cdoMessage.TextBody=Request.Form("body") cdoMessage.Send Set cdoMessage=Nothing Set cdoConfig=Nothing %>


    увеличить изображение

    Для ColdFusion:

    <cfmail from="#form.emailAddress#" to="yourname@yourserver.com" fisubject="#form.subject#"> #form.body# </cfmail>

    Для PHP:

    <? mail('yourname@yourserver.com', $_POST['subject'], $_POST['body']); ?>

  4. Сохраните страницу, загрузите ее на сервер и протестируйте работу приложения. Для этого заполните форму, а затем нажмите кнопку Submit и проверьте электронную корреспонденцию.



    Если вместо указанной в форме темы сообщения отображается тема form.subject или вместо введенного текста отображается текст form.body, то это означает, что вокруг динамических переменных не удалены кавычки (ASP и PHP) или не добавлены знаки # # (ColdFusion).




Содержание  Назад  Вперед