Передача сообщения с сайта Интернет
Рисунок 9.5. Передача сообщения с сайта Интернет
После того как пользователь введет необходимую для сообщения информацию инажмет кнопку Send, файл формата HTML пошлет данные сценарию языка Perl,который, обработав эту информацию, посредством электронной почты перешлет сообщение в центр обработки сообщений PCS Sprint. Файл WebPage.htmlимеет следующий исходный код:
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta http-equiv="Content-Language" content="en-us"> <title>Web Page</title> </head>
<body> <p align="center"><font face="Arial" size="6">Web Page</font></p> <p align="center"><font face="Arial" >(Page a Sprint PCS phone)</font></p>
<form method="POST" action="http://waplib.com/waplibcgi/ WebPage.pl">
<table border="0" width="43%"> <tr> <td width="30%"><font face="Arial" size="4" ><b>Reply-To:</b></font></td> <td width="70%"> <input type="text" name="ReplyTo1" size="3" maxlength="3"> <font face="Arial" size="4">- </font> <input type="text" name="ReplyTo2" size="3" maxlength="3"> <font face="Arial" size="4">-</font> <input type="text" name="ReplyTo3" size="3" maxlength="4"></td> </tr> <tr> <td width="30%"> </td> <td width="70%"></td> </tr> <tr> <td width="30%"><font face="Arial" size="4" ><b>Send To:</b></font></td> <td width="70%"> <input type="text" name="SendTo1" size="3" maxlength="3"> <font face="Arial" size="4">- </font> <input type="text" name="SendTo2" size="3" maxlength="3"> <font face="Arial" size="4">-</font> <input type="text" name="SendTo3" size="3" maxlength="4"></td> </tr> <tr> <td width="30%"><font face="Arial" size="4"><b>Text:</b></font></td> <td width="70%"><textarea rows="4" name="MsgText" cols="20"></textarea></td> </tr> <tr> <td width="30%"> </td> <td width="70%"></td> </tr> <tr> <td width="30%"><input type="submit" value="Send" name="SendButton"></td> <td width="70%"><input type="reset" value="Reset" name="ResetButton"></td> </tr> </table> </form> </body>
</html>
Файл формата HTML использует элемент <input> для получения значений переменных ReplyTo, SendTo HMsgText. Элемент <input> используется также для определения формата вводимых данных. Для облегчения ввода данных, имеющихвид телефонных номеров, в файле используется таблица для ввода компонентовтелефонного номера. После того как пользователь введет данные и нажметкнопку Send, в исходном коде происходит передача данных сценарию языка PerlWebPage.pl, исходный код которого приведен ниже:
#!/usr/bin/perl
require 'DeckUtils.pl';
$mailprog = "/bin/sendmail";
# Get the CGI variables. %cgiVars = &AppUtils::ParseCGIVars();
$ReplyTo1 = $cgiVars{"ReplyTo1"}; $ReplyTo2 = $cgiVars{"ReplyTo2"}; $ReplyTo3 = $cgiVars{"ReplyTo3"}; $ReplyTo = $ReplyTo1; $ReplyTo .= "-"; $ReplyTo .= $ReplyTo2; $ReplyTo .= "-"; $ReplyTo .= $ReplyTo3; $MsgSubject = $ReplyTo;
$SendTo1 = $cgiVars{"SendTo1"}; $SendTo2 = $cgiVars{"SendTo2"}; $SendTo3 = $cgiVars{"SendTo3"}; $SendTo = $SendTo1; $SendTo .= $SendTo2; $SendTo .= $SendTo3; $SendTo .= "\@messaging.sprintpcs.com";
$MsgText = $cgiVars{"MsgText"};
open(MAIL, "|$mailprog $SendTo");
print MAIL "Reply-To: $ReplyTo\n"; print MAIL "From: Demo\@waplib.com\n"; print MAIL "To: $SendTo\n"; print MAIL "Subject: $MsgSubject\n\n";
print MAIL "$MsgText\n";
close(MAIL);
print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<Body>\n"; print "Message has been sent to: $SendTo\n"; print "</Body>\n"; print "</HTML>\n";
В начале сценария используется функция $cgiVars для извлечения значений параметров. Так как в файле формата HTML данные ReplyTo и SendTo вводятсятремя частями (три части, составляющие телефонный номер), файл должен извлекать значения параметров в переменные ReplyTol, ReplyTo2, ReplyToS,SendTol, SendTo2, SendTo3.Исходный код должен объединить эти значения в переменные ReplyTo И SendTo.
Далее, сценарий создает и пересылает сообщение электронной почты. Приокончании работы сценарий также создает новый файл формата HTML, сообщающий пользователю о том, что сообщение передано.