Kłopoty z wysyłaniem formularzy przez wcześniejsze wersje Internet Explorera (2 i 3) skłaniają do stosowania uniwersalnych narzędzi, które będą w stanie przejąć na siebie to zadanie. Przez dłuższy czas takim narzędziem był Toolbox Mailer, który jednak zaprzestał swojej działalności, pozostawiając "na lodzie" wielu użytkowników. Także niektóre inne systemy nie działają idealnie, gdyż albo nie przetwarzają poprawnie całej informacji na stronie (MailForm), albo wymagają specjalnej konfiguracji serwera pocztowego (FormMail).
Dla przeciętnego użytkownika ideałem jest system przetwarzania formularzy, który nie wymaga specjalnych zabiegów, uzyskiwania haseł, kodów itd. Lwia część internautów nie musi stosować specjalnych zabezpieczeń, więc prosty i skuteczny system jest im naprawdę potrzebny, jeśli chcą zamieszczać na swojej stronie ankiety.
Choć rozwiązań jest wiele, pragnę przedstawić prosty w działaniu serwis, wystawiony pro publico bono przez firmę Response-O-Matic (http://www.response-o-matic.com/). Na nim jest w tej chwili oparta ankieta w naszym kursie.
Niezbędne minimum kodu jest zaskakująco małe. Wystarczy bowiem podanie adresu skryptu przetwarzającego formularz, mieszczącego się na serwerze Response-O-Matic, następnie ukryte pole definiujące adres autora formularza, a także dwa jawne pola: dla nazwy/nazwiska oraz adresu pocztowego osoby wypełniającej ankietę. Poza tym w ramach formularza należy, rzecz jasna, zamieścić właściwą treść.
Przykładowa postać formularza:
<FORM>
<FORM action="http://www.response-o-matic.com/cgi-bin/rom.pl" method="POST">
<INPUT TYPE="hidden" NAME="your_email_address" VALUE="pawel.wimmer@pckurier.pl">
<INPUT TYPE="text" NAME="visitor_name" VALUE="" SIZE=60>
<INPUT TYPE="text" NAME="visitor_email_address" VALUE="" SIZE=60>
...
Treść formularza
</FORM>
visitor_name i visitor_email_address są nazwami kluczowymi, podobnie jak i nazwy w szeregu innych ukrytych pól, o których powiemy niżej.
Gdybyśmy wysłali tak skonstruowaną ankietę, serwer wyświetli stronę potwierdzającą wysłanie wiadomości i pokaże jej zawartość.
Date: Wednesday, November 26, 1997 Time: 06:09 PM EST Submitted by: Jan Kowalski (jan.kowalski@firma.com.pl) Submitted to: (pawel.wimmer@pckurier.pl)
Oprócz tych informacji na stronie ukażą się także dwa bannery reklamowe, co potraktujmy już jako niezbędną rekompensatę za udostępnienie serwisu.
Z kolei autor ankiety otrzyma w poczcie następującą wiadomość
A visitor to your website submitted this form. ============================================================================ Date: Wednesday, November 26, 1997 Time: 06:09 PM EST Submitted by: Jan Kowalski Email address: (jan.kowalski@firma.com.pl) ============================================================================ End of submission Thank you for using RESPONSE-O-MATIC! http://www.response-o-matic.com
Oprócz pól niezbędnych do poprawnego funkcjonowania formularza, możemy zamieścić szereg dalszych pól, dostarczających dalszej informacji lub formatujących ją.
<input type=hidden name="your_name" value="Jane Smith">
Pole spowoduje wyświetlenie nazwy/nazwiska autora (Jane Smith) w polu Do: (To:) przesyłki pocztowej i na stronie potwierdzającej wysłanie formularza.
<input type=hidden name="email_subject_line" value="Odpowiedź na ankietę">
Pole służy do wyświetlania tematu (Odpowiedź na ankietę) na stronie potwierdzającej i w polu Temat: (Subject:) przesyłki pocztowej.
<input type=hidden name="required_fields" value="visitor_email_address,wiek,płeć,stan cywilny">
Pole służy do określenia, które pola należy wypełnić przed wysłaniem formularza. Autor powinien to wyraźnie zaznaczyć w formularzu, natomiast serwis wyświetli stronę z informacją o błędzie, gdyby któreś z tych przykładowych pól nie zostało wypełnione. Nazwy pól należy rozdzielać przecinkami, a w nazwach pól można stosować spacje.
<input type=hidden name="field_order" value="alphabetical">
Pole spowoduje alfabetyczne posortowanie pól na stronie potwierdzającej i w poczcie.
Alternatywnie możemy wyliczyć kolejność pól:
<input type=hidden name="field_order" value="pole1,pole4,pole2,pole8...">
Użycie tego pola nie jest konieczne - skrypt sam ustali kolejność wyświetlania.
<input type=hidden name="thank_you_title" value="Dziękuję za uwagi!">
Pole służy do wyświetlenia komentarza lub podziękowania za wypełnienie formularza.
<input type=hidden name="return_link_url" value="http://your-domain.com/index.html">
<input type=hidden name="return_link_name" value="Powrót do strony głównej">
Pierwsze pole zawiera adres strony, do której powracamy za pomocą kliknięcia na nazwie odsyłacza w następnym polu. Może to być np. adres strony głównej serwisu.
<input type=hidden name="background_image" value="http://www.your-domain.com/image.gif">
Pole zawiera adres pliku GIF, który może być tłem strony potwierdzającej wysłanie formularza.
<input type=hidden name="background_color" value="#FFFFFF">
W tym polu określamy kolor tła strony, za pomocą wartości heksadecymalnej.
<input type=hidden name="text_color" value="#000000">
<input type=hidden name="link_color" value="#FF0000">
<input type=hidden name="visited_link_color" value="#0000FF">
<input type=hidden name="active_link_color" value="#00FF00">
Cztery kolejne pola definiują kolor tekstu, odsyłaczy, odsyłaczy już odwiedzonych i odsyłaczy aktywnych (w trakcie łączenia) na stronie potwierdzająej wysyłkę.
Pod koniec 1998 roku Response-O-Matic wprowadziła kilka zmian i uzupełnień do formularza.
Można wysłać kopię formularza do wskazanej osoby. Jednocześnie w polu your_email_address można podać tylko jedną osobę (zazwyczaj samego siebie), co razem daje co najwyżej dwóch odbiorców. Jest to podyktowane zmianą stanowiska firmy wobec problemu tzw. spamu.
<input type=hidden name="copy_email_address" value="innaosoba@adres.pl">
Można dodać pole identyfikujące przeglądarkę internetową:
<input type=hidden name="browser_info" value="on">
W odpowiedzi przyjdzie informacja zawierająca poniższy fragment:
Date: Thursday, November 11, 1999 Time: 4:58 PM EST Submitted by: Jan Kowalski Email address: jan.kowalski4@firma.pl Browser Info: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) Subject: Ankieta w kursie HTML
Możliwe jest zażądanie, aby skrypt zwracał także zawartość niewypełnionych pól (domyślnie przesyłane są tylko wartości pól wypełnionych przez użytkownika):
<input type=hidden name="print_blank_fields" value="on">
Skrypt pozwala uzyskać dane ankietowe w postaci przydatnej dla baz danych:
<input type=hidden name="database_format" value="delimiter">
Delimiterem może być dowolny znak, ale jeśli chcemy, aby były to dane w formie wygodnej do przenoszenia np. do arkusza kalkulacyjnego, możemy podać nazwy delimiterów dla Entera czy tabulatora:
<input type=hidden name="database_format" value="tab"> <input type=hidden name="database_format" value="return">
Dane przyjdą w formie łatwej do skopiowania przez schowek do arkusza, co pozwoli szybciej je opracować, jeśli je gromadzimy dla jakichś celów.
Response-O-Matic zabrania stosowania formularza na stronach "dla dorosłych", stron propagujących rasizm, wyrażających nienawiść lub zajmujących się nielegalną działalnością. To kolejny przykład dbałości firmy o netykietę, a wymagania autorów należy honorować.
Wielkość danych w formularzu nie może przekraczać 50 KB. Nie jest to jasno powiedziane, ale jest to prawdopodobnie objętość czystych danych wprowadzanych przez osobę wypełniającą formularz, a więc informacji poza całą "beletrystyką" formularza, przygotowaną przez autora.
Aby formularz mógł działać, należy go koniecznie WYSŁAĆ NA SERWER. Nie da się wysłać danych testowych z dysku lokalnego!
Imię i nazwisko lub jakikolwiek pseudonim: Adres poczty elektronicznej: Wpisz coś (przepraszam, że nie będę odpowiadać...)