CGI-PL:
Formweb
PL

Skrypt ten wpisuje dane z dowolnego formularza na stronę WWW. Polskie itery są automatycznie konwertowane do obowiązującego w sieci standardu ISO-8859-2. Ma też możliwość powiadamiania o nowych wpisach przez e-mail.

Instalacja i konfiguracja skryptu:
Skrypt należy nagrać do odpowiedniego katalogu (zwykle cgi-bin) i ustawić odpowiednie uprawnienia (755 - możliwośc uruchomienia skryptu dla wszystkich użytkowników). Dokładniejsze informacje na temat nagrywania skryptów CGI powinien dostarczyć dostawca usług internetowych.
Na początku pliku formmail.pl znajduje się konfiguracja. W lini
@ACCEPT_SERVER=('127.0.0.1', 'localhost');
należy wpisać listę serwerów i ich adresów IP, z których można będzie używać skryptu (względy bezpieczeństwa). W lini
$SENDMAIL="/usr/sbin/sendmail";
nalezy ustawic sciezke do programu sendmail (jeżeli chcesz korzystać z powiadamiania pocztą. W lini:
$BLOKUJ_HTML="tak";
można ustawić opcję blokowania wpisów w HTMLu - znak < będzie zamieniany na ciąg & lt, dzięki czemu nawet jeżeli ktoś wpisze fragment HTMLa nie zostanie on zinterpretowany przez przeglądarkę. W lini
@FILES=('przyklad.htm');
należy wpisać listę plików, w których będą pojawiać się wpisy. Skrypt musi mieć odpowiednie uprawnienia, aby mógł zmodyfikować zawartość każdego z tych plików. Część serwerów pozwala skryptom CGI modyfikować wszystkie pliki należące do tej osoby co skrypt, jeżeli Twój na to nie pozwala ustaw dla każdego z wymienionych plików możliwość zapisu przez wszystkich użyttkowników.
Do każdego z wymienionych plików wstaw poniższy fragment kodu HTML (mówie poważnie):
<!-- Tu wstawiaj nowe pozycje -->
Pod tym komentarzem będą dopisywane wpisy. Ich wygląd zależy od pozostałych parametrów:

# co bedzie wstawiane przed wpisem
$PRZED="<TABLE>";

# co bedzie wstawiane po wpisie
$PODZIAL="</TABLE><BR><BR><HR WIDTH=80%>";

# co bedzie wstawiane przed nazwa pola
$PRZED_NAZWE="<TR><TD VALIGN=TOP>";

# co bedzie wstawiane przed wartoscia pola
$PRZED_WARTOSC="<TD VALIGN=TOP>";

# co bedzie wstawiane po wartosci pola
$PO_WARTOSCI="<BR>";
Po wysłaniu formularza do pliku zostanie wpisany następujący fragment: wartość $PRZED, potem dla każdego pola formularza (oprócz pól przekazujących parametry, opisanych poniżej) będzie dopisywane $PRZED_NAZWE [nazwa pola] $PRZED_WARTOSC [wartość pola] $PO_WARTOSCI i na koniec wartość $PODZIAL

Pozostałe parametry są przekazywana przez pola HIDDEN w formularzu (<INPUT TYPE=HIDDEN NAME=nazwa VALUE=wartość>. Oto lista tych parametrów:

Przykład:

Przykład strony zawierającej formularz



FAQ:

1) Pytania ogólne
1.1) Czy parametry muszą być przekazywane przez pola typu hidden?
1.2) Dlaczego w treści skryptu muszę podać nazwy i adresy IP serwerów z których będe korzystać?

2) Problemy z uruchomieniem/działaniem skryptu
2.1) Po wypełnieniu formularza dostaje błąd '403 Forbidden'. Co robić?
2.2) Zainstalowałam/em skrypt, po wypełnieniu formularza pokazuje się stronaz potwierdzeniem, ale nie dostaje poczty. Co robić?
2.3) Zainstalowałam/em skrypt, po wypełnieniu formularza pokazuje się stronaz potwierdzeniem, ale nic nie jest dopisywane do strony. Co robić?

1) Pytania ogólne

1.1) Czy parametry muszą być przekazywane przez pola typu hidden?
Nie. Mogą to być także pola tekstowe (INPUT TYPE=TEXT), pola wyboru (SELECT), pola typu radio (INPUT TYPE=radio), czy dowolne inne pola dające możliwość przekazania wartości.

1.3) Dlaczego w treści skryptu muszę podać nazwy i adresy IP serwerów z których będe korzystać?
To ustawienie zabezpiecza przed wykorzystaniem skryptu przez innych - jeżeli każdy mółby skorzystać ze skryptu zainstalowanego na twoim serwerze, mogłoby to spowodować nadmierne jego obciążenie. Należy podać zarówno nazwę i adres IP każdego serwera, ponieważ nie ma pewności co zostanie przekazane do skryptu przez oprogramowanie serwera.

2) Problemy z uruchomieniem/działaniem skryptu

2.1) Po wypełnieniu formularza dostaje błąd '403 Forbidden'. Co robić?
źle ustawiłaś/eś uprawnienia do pliku skryptu. Upewnij się, że są ustawione na 755 (chmod 755 jeżeli korzystasz z tekstowego klienta FTP, jeżeli z WS_FTP - kliknij plik przwym przyciskiem, wybierz 'chmod (UNIX)' i w okienku zaznecz wszystkie 3 pola read i Execute). Jeżeli to nie pomoże, spróbój zmienić rozszerzenie skryptu na .cgi - niektóre serwery tego wymagają.

2.2) Zainstalowałam/em skrypt, po wypełnieniu formularza pokazuje się stronaz potwierdzeniem, ale nie dostaje poczty. Co robić?
Sprawdź, czy pole 'mailto' zawiera prawidłowy e-mail. Jeżeli tak, sprawdź czy jest podana prawidłowa ścieżka do programu sendmail.

2.3) Zainstalowałam/em skrypt, po wypełnieniu formularza pokazuje się stronaz potwierdzeniem, ale nic nie jest dopisywane do strony. Co robić?
Sprawdź, czy skrypt ma odpowiednie uprawnienia, żeby dopisać coś do pliku, sprawdź czy parametr file ma prawidłową wartość i że nie ma błędu w ścieżce do pliku wpisanej w skrypcie. Upewnij się też, że plik ma wstawiony komentarz:

<!-- Tu wstawiaj nowe pozycje -->
Komentarz ten powinien być w osobnej lini.