#!/usr/bin/perl my($today) = qx(date --date '8 hours' +%j); my($pwfile) = "pw.dat"; my($nrfile) = "number.dat"; my($ixfile) = "index.shtml"; my($berichttmpl) = "bericht.tmpl"; print "Content-type: text/html\n\n"; my(%form_data); sub main { &readfields; if ($form_data{'pw'} eq "" ) { &dontknowyou; } else { my($writer, $url) = &checkpw($form_data{'pw'}); if (! $writer eq "") { &checkpost($writer, $url); } else { &dontknowyou; }; }; }; sub dontknowyou { print ('Password vergeten?'); }; sub fout { print ("error: @_
"); }; sub readfields { # reading the input my ($my_data); if($ENV{'REQUEST_METHOD'} eq "GET"){ $my_data = $ENV{'QUERY_STRING'}; } else { my($data_length) = $ENV{'CONTENT_LENGTH'}; my($bytes_read) = read(STDIN, $my_data, $data_length); }; my(@name_value_array) = split(/&/, $my_data); foreach $name_value_pair (@name_value_array) { my($name, $value) = split(/=/, $name_value_pair); $name =~ tr/+/ /; $value =~ tr/+/ /; # Next, we'll translate any hex values back into characters $name =~ s/%(..)/pack("C",hex($1))/eg; $value =~ s/%(..)/pack("C",hex($1))/eg; $value =~ s/\r//g; $form_data{$name} = $value; } } sub checkpw { my($pw) = @_; my(%password); my($writer) = ""; my($url) = ""; # opening the passwordfile open(pwfile, $pwfile); my(@pwposter) = ; close(pwfile); foreach $pwline (@pwposter) { chomp ($pwline); if ($pwline =~ m/^$pw (.+) (.+)/) { $writer = $1; $url = $2; } } return ($writer, $url); }; sub checkpost { my($writer, $url) = @_; my ($titel) = $form_data{'titel'}; my ($unftekst) = $form_data{'tekst'}; if ($titel eq "") { &fout('geen titel'); $nrfout++; } if($unftekst eq "") { &fout('geen tekst'); $nrfout++; } die if ($nrfout > 0); my ($tekst) = formattekst(\$unftekst); publish_bericht($titel, \$tekst, $writer, $url); }; sub formattekst { $tekst = shift; my ($formattedtekst); my (@lines) = split('\n', $$tekst); my $quote = 0; foreach my $line (@lines) { $line =~ s/\n/ /g; $line =~ s/\r//g; if ($quote) { if ($line =~ m/^:q\s*$/) { $quote = 0; $formattedtekst = $formattedtekst . '"'; } else { $formattedtekst = $formattedtekst . $line; } } else { if ($line =~ m/^l:\s*(.+)\s*$/) { my $url = $1; my $brokenurl = breekurl($url, 45); $formattedtekst = $formattedtekst . '

' . '' . $brokenurl . '' ; } elsif ($line =~ m/^q:\s*$/) { $quote = 1; $formattedtekst = $formattedtekst . '