#!/usr/local/bin/perl -w
# Autorka skryptu: Urszula Puszkiewicz email: upusz@bg.uwb.edu.pl
# Wdzięczna będę za wszelkiego rodzaju komentarze
#----------------------------------------------------------------
# Wskazanie na odpowiedź skryptu w postaci dokumentu HTML
print "Content-type: text/html\n\n";

# Czytanie zmiennej QUERY_STRING
    read(STDIN, $d, $ENV{'QUERY_STRING'});

# Podstawienie do zmiennej $q wartości zmiennej QUERY_STRING  

$q =$ENV{'QUERY_STRING'};

# Podstawienie zmiennej $q do specjalnej zmiennej $_ (zmienna
# bieżącego wiersza) celem dalszego przetwarzania 
$_= $q;

# Użycie operatora zastępowania znaków "s/co/na co/"
# do zamiany znaku + na spacje (rozdzielenie wyrazów w jednym polu danych),
# ponieważ znak + jest znakiem specjalnym poprzedzono go znakiem \
# w celu zniesienia znaczenia 

s/\+/ /g;     

# Konwersja polskich znaków 
s/%B1/ą/g;
s/%EA/ę/g;
s/%F3/ó/g;
s/%B6/ś/g;
s/%B3/ł/g;
s/%E6/ć/g;
s/%F1/ń/g;
s/%BF/ż/g;
s/%BC/ź/g;

s/%A1/Ą/g;
s/%CA/Ę/g;
s/%D3/Ó/g;
s/%A6/Ś/g;
s/%A3/Ł/g;
s/%C6/Ć/g;
s/%D1/Ń/g;
s/%AF/Ż/g;
s/%AC/Ź/g;

# Konwersja znaków specjalnych  np. ~, ', $, itd. 
s/%7E/tylda/g;
s/%60/`/g;
s/%23/#/g;
s/%24/\$/g;  
s/%25/%/g;
s/%5E/^/g;
s/%26/end/g;   
s/%28/(/g;
s/%29/)/g;
s/%2B/+/g;
s/%3D/=/g;
s/%7B/{/g;
s/%7D/}/g;
s/%7C/|/g;
s/%5B/[/g;
s/%5D/]/g;
s/%5C/\\/g;  
s/%3A/:/g;
s/%22/"/g;
s/%3B/;/g;
s/%27/'/g;
s/%3C/</g;
s/%3E/>/g;
s/%3F/?/g;
s/%2C/,/g;
s/%2F/\//g; 


#  Tworzenie pliku bazy danych baza.dat (jeśli istnieje - dopisywanie 
#  danych), gdzie pola rekordów bedą dzielone znakiem & 
#  (pola w kolumnach, rekordy w wierszach)

open(BA,">>baza.dat");
                s/status=//g;
                s/nazwisko=//g;
                s/email=//g;
                s/biblioteka=//g;
                s/url=//g;
                s/lokalizacja=//g;
                s/typ=//g;
                s/komentarz=//g;
print BA"$_\n";
close(BA);


#  Tworzenie tablicy z danych do wyświetlenia wybranych elementów,
#  identyfikowanych przez numer indeksu

@dane=split(/&/);

# Definiowanie dokumentu HTML potwierdzającego przyjęcie danych,
# ponowne wyświetlenie informacji wprowadzonych przez użytkownika,
# pobranych z tablicy @dane, ale nie z pliku baza.dat

print "<head>";
print "<meta http-equiv='content-type' content='text/html; charset=iso-8859-2'>"; print "</HEAD>";
print "<BODY TEXT='midnightblue' BGCOLOR='white' LINK='midnightblue' VLINK='midnightblue' ALINK='midnightblue'>";
print "<FONT FACE='Arial' size='2' COLOR='midnightblue'>";
print "<hr color='midnightblue'>";
print "<b> Przyjęto do bazy następujące dane: </b> <p>"; 
print "<b> Status danych:</b> $dane[0] <br>";
print "<b> Nazwisko i imię:</b> $dane[1] <br>";
print "<b> Email: </b> $dane[2] <br>";
print "<b> Nazwa biblioteki:</b> $dane[3] <br>";
print "<b> Adres WWW:</b> $dane[4] <br>";
print "<b> Lokalizacja:</b> $dane[5] <br>";
print "<b> Typ biblioteki:</b> $dane[6] <br>";
print "<b> Komentarz:</b> $dane[7] <br>";
print "<center><font size='+1' face='times'><i>";
print "Dziękuję za informacje</i></font></center><br>"; 
print "<hr color='midnightblue'>";
print "</body>";
print "</html>";

# koniec skryptu