#!/usr/bin/perl -w # luettelomaatti2.pl # # Tekijä: Petri Ikonen | petri.ikonen@kuopassa.com | www.kuopassa.com # # Tämä ohjelma lukee ulkoisesta tekstitiedostosta jokaisen # rivin, ja tulostaa ne Web-sivulle luettelona. Mikäli tekstitiedostoa ei # löydy, tai sitä ei saada luettua, tulostetaan Web-sivulle virheilmoitus. # Avattavan tiedoston tiedostonimi: $tiedostonimi = "../musiikki/luettelomaatti_levylista.txt"; # Lokitiedoston tiedostonimi: $loki = "../musiikki/luettelomaatti_lokikirja.txt"; # Listan tyyppi: $luettelo = "ol"; # Luettelorivin tyyppi: $luettelorivi = "li"; # Ylläpidon sähköpostiosoite: $webmaster = "petri.ikonen@kuopassa.com"; # Virheilmoituksen n:o 1 otsikko: $virhe_otsikko = "Luettelotiedostoa avattaessa tapahtui virhe."; # Virheilmoituksen n:o 2 otsikko: $virhe_otsikko2 = "Virhe infotekstin arvossa."; # Virheilmoituksen n:o 3 otsikko: $virhe_otsikko3 = "Lokikirjatiedostoa avattaessa tapahtui virhe."; # Virheilmoituksen n:o 1 kuvaus: $virhe_kuvaus = "Tiedostoa "$tiedostonimi" ei valitettavasti saatu avattua."; # Virheilmoituksen n:o 2 kuvaus: $virhe_kuvaus2 = "Luettelomaatti2:n infotekstille on annettu virheellinen arvo. Vaihtoehtona on joko k (kyllä) tai e (ei). Nyt arvoksi on annettu:"; # Virheilmoituksen n:o 3 kuvaus: $virhe_kuvaus3 = "Tiedostoa "$loki" ei valitettavasti saatu avattua."; # Virhekoodi tiedostoa avattaessa $virhetunnus = "500"; # Näytetäänkö skriptin info (k/e) $info = "e"; # Skriptin virallinen nimi $skriptinnimi = "Luettelomaatti2"; # Skriptin versio $versionro = "2"; # Koodarin, eli Pjotrin, sähköpostiosoite: $koodari = "petri.ikonen@kuopassa.com"; ########## KOODI ALKAA TÄSTÄ ########## print "Content-Type: text/html\n\n"; my $date = `/bin/date`; chomp( $date ); open (TIED, ">>$loki") or virheilmoitus3(500); flock (TIED, $FLOCK_EX); print TIED "$skriptinnimi on suoritettu: $date. Info: $ENV{'REQUEST_METHOD'}, $ENV{'SERVER_PROTOCOL'}\n"; sleep 1; flock (TIED, $FLOCK_UN); close (TIED); # Näytetään virheilmoitus n:o 3 tarpeen vaatiessa sub virheilmoitus3 { print "
$virhe_kuvaus3
\n"; print "Ota tarvittaessa yhteyttä ylläpitoon, sähköpostiosoite on $webmaster.
\n"; die(); } # Muunnetaan infotekstin arvo pieneksi kirjaimeksi, jos esim. K $info =~ tr/A-Z/a-z/; # Infoteksti näytetään tai sitten ei if ($info eq "k") { print "Tämä skripti tuottaa muotoilemattoman luettelon annetun tiedoston sisällöstä.
\n"; print "Skriptin nimi on $skriptinnimi ja sen julkaisuversio on $versionro.
\n"; print "Palautetta ja kehitysideoita voi lähettää Coodarille sähköpostiosoitteen $koodari.
\n\n"; } elsif ($info eq "e") { print "\n\n"; } # Näytetään virheilmoitus n:o 2 jos infotekstille on annettu jokin muu arvo kuin K tai E else { print "$virhe_kuvaus2\n$info.\n"; print "
Ota tarvittaessa yhteyttä ylläpitoon, sähköpostiosoite on $webmaster.
\n"; } $tied = "$tiedostonimi"; # Avataan tiedosto ja luetaan se, mutta jos ei aukea niin ilmoitetaan virheestä open(LUKU, $tied) or virheilmoitus(500); # Näytetään virheilmoitus n:o 1 tarpeen vaatiessa sub virheilmoitus { print "$virhe_kuvaus
\n"; print "Ota tarvittaessa yhteyttä ylläpitoon, sähköpostiosoite on $webmaster.
\n"; die(); } # Tehdään luettelon alkuosa print "<$luettelo>\n"; # Tiedosto luetaan rivi kerrallaan while ($rivi =