Dokumentacja Funkcje serwera

Biblioteka skryptów CGI

Odbiór danych z formularzy

Skrypt /cgibin/formmail umożliwia odbiór danych z formularzy znajdujących się na stronach WWW i ich wysłanie na określony adres e-mail.

Konfiguracja formmaila jest dwustopniowa:

  1. W pierwszym kroku tworzysz formularz pracując na kodzie strony. Definiujesz pola i nadajesz im nazwy.

    Formularz umieść na stronie WWW między znacznikami: <FORM> a </FORM>. Poszczególne pola formularza zdefiniujesz komendą <input />. W najprostszej postaci źródło formularza wygląda tak:

    <form action="/cgibin/formmail" method="post">
    <input name="recipient" value="formmail@company.home.pl" type="hidden" />
    Imię i nazwisko: <input name="name" size="20" />
    <input value="Wyślij!" type="submit" />
    </form>

Zauważ, że w formularzu znajduje się pole ukryte (TYPE=HIDDEN), o nazwie recipient, które zawiera adres e-mail odbiorcy danych. Pole to koniecznie musi wystąpić w kodzie. Możesz podać także kilku odbiorców formularza, wymieniając ich adresy po przecinku.

Ze wzgledu na bezpieczeństwo pole recipient może być wyłącznie adresem w sieci home.pl Jeżeli jest inaczej - list kierowany jest na główny adres konta WWW - nazwa@home.pl

2. W następnej kolejności określasz parametry działania skryptu. Chodzi tu o zdefiniowanie pól wymaganych, wyglądu strony, na którą ma być przekierowany użytkownik po wypełnieniu formularza (poprawnym lub błędnym) oraz wyglądu listu, który otrzymuje zbierający dane.

Zdefiniowanie sposobu działania może odbywać się za pomocą znanych już nam pól ukrytych w formularzu albo szablonów.

Skrypt współpracuje jedynie z formularzami umieszczonymi w tej samej domenie, co wywoływany formmail. Oznacza to, że ze skryptu nie mogą korzystać serwisy nie utrzymywane w home.pl oraz te, które odwołują do skryptu w innych domenach (np. do http://home.pl/cgibin/formmail zamiast do /cgibin/formmail).

Pola ukryte

Skrypt, oprócz opisanego już pola recipient, obsługuje ponadto inne specjalne pola, których zawartość wpływa na działanie skryptu (w nazwach pól istotna jest wielkość liter).

  • require - rozdzielona przecinkami (nazwa1,nazwa2,nazwa3) lista nazw pól, które w formularzu muszą być wypełnione. W przypadku, gdy któreś z wymienionych pól pozostanie puste skrypt wyświetli informację o błędzie lub przekieruje na stronę zdefiniowaną parametrem missing_redirect,
  • email - adres zwrotny przesyłki - od kogo adresowane będą listy zawierające dane,
  • redirect - adres strony w formacie http://serwer/ścieżka, na którą skrypt przekieruje po prawidłowym wypełnieniu formularza i przyjęciu danych,
  • missing_redirect - adres strony, na którą skrypt przekieruje w przypadku braku danych w polach określonych jako require,
  • subject - temat listu wysyłanego po wypełnieniu formularza,

Poniżej - kod przykładowego formularza, który wykorzystuje wszystkie funkcje:

<FORM ACTION="/cgibin/formmail" METHOD=POST>
<INPUT TYPE=HIDDEN NAME="recipient" VALUE="info@domena.pl">
<INPUT TYPE=HIDDEN NAME="require" VALUE="name,email">
<INPUT TYPE=HIDDEN NAME="redirect" VALUE="http://domena/sukces.htm">
<INPUT TYPE=HIDDEN NAME="missing_redirect" VALUE="http://domena/error.htm">
<INPUT TYPE=HIDDEN NAME="subject" VALUE="Rejestracja użytkownika">
Imię i nazwisko: <input name="name" size="32" />
Twój adres e-mail: <INPUT NAME="email" SIZE=32>
<INPUT TYPE=SUBMIT VALUE="Wyślij">

i jego wygląd:

Szablony formmaila

Parametry działania skryptu /cgibin/formmail możesz także zdefiniować za pomocą szablonów w Panelu Administracyjnym, zakładka Konfiguracja WWW, sekcja Szablony skryptów.

Parametry zdefiniowane w polach ukrytych mają wyższy priorytet aniżeli szablony - dopiero brak definicji w kodzie HTML powoduje, że skrypt skorzysta z ustawień w Panelu Administracyjnym.

Opis zastosowania poszczeg ólnych szablonów:

  • FORMMAIL_TOP - górna część stron generowanych przez skrypt do obsługi formularzy,
  • FORMMAIL_BOTTOM - dolna część stron generowanych przez skrypt,
  • FORMMAIL_SENT - potwierdzenie wysłania formularza,
  • FORMMAIL_ITEM - lista wszystkich wypełnionych pól formularza wraz z wpisanymi wartościami. Dozwolone słowa kluczowe to $NAME (nazwa pola w formularzu) i $VALUE (wpisana wartość),
  • FORMMAIL_ERROR - błędne wywołanie skryptu formularza (np. brak adresu e-mail odbiorcy danych),
  • FORMMAIL_EMPTY - komunikat o niewypełnieniu wszystkich wymaganych pól (słowo kluczowe $NAME wyświetla nazw tych pól),
  • FORMMAIL_SUBJECT - temat listu wysyłanego do odbiorcy formularza,
  • FORMMAIL_MAILTOP - wygląd początku listu wysyłanego do odbiorcy. Dozwolone słowa kluczowe:
    • $FIELD() - wstawia wartość wprowadzoną w polu o nazwie zdefiniowanej w parametrze,
    • $RIGHT(), $LEFT() - wstawia zdefiniowaną w parametrze liczbę spacji od prawej lub lewej strony,
    • $ENV() - umieszcza zmienną środowiskową, umożliwiającą zebranie informacji o wypełniającym formularz.
  • FORMMAIL_MAILBOTTOM - wygląd stopki listu wysyłanego do odbiorcy, dozwolone słowa kluczowe:
    • $FIELD
    • $ENV
    • $RIGHT, $LEFT.
  • FORMMAIL_MAILITEM - element listy danych wysyłanej do odbiorcy, dozwolone słowa kluczowe:
    • $NAME
    • $VALUE
    • $RIGHT, $LEFT.

Oto sposób, w jaki zbudowane są strony generowane przez skrypt formmaila:

NazwaBudowa
Strona z potwierdzeniem FORMMAIL_TOP
FORMMAIL_SENT
FORMMAIL_ITEM
FORMMAIL_BOTTOM
Powiadomienie o błędnym wypełnieniu formularza (brak pól wymaganych) FORMMAIL_TOP
FORMMAIL_EMPTY
FORMMAIL_BOTTOM
Błędne wywołanie skryptu (np. bez adresu e-mail odbiorcy) FORMMAIL_TOP
FORMMAIL_ERROR
FORMMAIL_BOTTOM
List z danymi FORMMAIL_SUBJECT (temat)FORMMAIL_MAILTOP
FORMMAIL_MAILITEM
FORMMAIL_MAILBOTTOM