$Shared
$Script
$Config
+ $VERSION
);
# locate the script
#
BEGIN {
-# my $null = $0; $null =~ s/\\/\//g; # for win :-(
-# $Bin = ($null =~ /^(.*)\/.*$/)? $1 : '.';
-# $Shared = "$Bin/../shared";
-# $Config = "$Bin/config";
-# $Script = ($null =~ /^.*\/(.*)$/)? $1 : $null;
-
- my $null = $0; #$null =~ s/\\/\//g; # for win :-(
+ my $null = $0; $null =~ s/\\/\//g; # for win :-(
$Bin = ($null =~ /^(.*)\/.*$/)? $1 : '.';
- $Config = "$Bin/../../../cgi-config/devforum";
- $Shared = "$Bin/../../../cgi-shared";
+ $Shared = "$Bin/../shared";
+ $Config = "$Bin/config";
$Script = ($null =~ /^.*\/(.*)$/)? $1 : $null;
+
+# my $null = $0;
+# $Bin = ($null =~ /^(.*)\/.*$/)? $1 : '.';
+# $Config = "$Bin/../../daten/forum/config";
+# $Shared = "$Bin/../../cgi-shared";
+# $Script = ($null =~ /^.*\/(.*)$/)? $1 : $null;
}
+# setting umask, remove or comment it, if you don't need
+#
+umask 006;
+
use lib "$Shared";
use CGI::Carp qw(fatalsToBrowser);
use Conf::Admin;
use Posting::Cache;
+# Version check
+#
+$VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
# load script configuration and admin default conf.
#
my $conf = read_script_conf ($Config, $Shared, $Script);
#
$request -> response;
+# shorten the main file?
+#
+$request -> severance;
+
#
#
### main end ###################################################################
### Posting::Request ###########################################################
package Posting::Request;
+use Arc::Archive;
use CheckRFC;
use Encode::Plain; $Encode::Plain::utf8 = 1; # generally convert from UTF-8
use Encode::Posting;
bless $self, $class;
}
+sub severance {
+ my $self = shift;
+
+ my $stat = cut_tail ({
+ forumFile => $self -> {conf} -> {forum_file_name},
+ messagePath => $self -> {conf} -> {message_path},
+ archivePath => $self -> {conf} -> {original} -> {files} -> {archivePath},
+ lockFile => $self -> {conf} -> {original} -> {files} -> {sev_lock},
+ adminDefault => $self -> {conf} -> {admin},
+ cachePath => $self -> {conf} -> {original} -> {files} -> {cachePath}
+ });
+# die $stat->{(keys %$stat)[0]} if (%$stat);
+
+}
+
### sub response ###############################################################
#
# print the response to STDOUT
};
}
else {
- my $cache = new Posting::Cache ($self->{conf}->{original}->{files}->{cacheFile});
+ my $cache = new Posting::Cache ($self->{conf}->{original}->{files}->{cachePath});
$cache -> add_posting (
{ thread => ($tid =~ /(\d+)/)[0],
posting => ($mid =~ /(\d+)/)[0]
#
my ($ftid, $fmid) = split /;/ => $q -> param ($formdata -> {followUp} -> {name}) => 2;
- unless ($ftid =~ /\d+/ and $fmid =~ /\d+/) {
+ unless ($ftid =~ /^\d+$/ and $fmid =~ /^\d+$/) {
$self -> {error} = {
spec => 'unknown_followup',
type => 'fatal'
#
(my $val_ww = $val) =~ s/\s+//g;
+ if (exists ($formdata -> {$name {$_}} -> {type}) and $formdata -> {$name {$_}} -> {type} eq 'name') {
+ $val_ww =~ y/a-zA-Z//cd;
+
+ my @badlist = map {qr/\Q$_/i} qw (
+ # insert badmatchlist here
+ );
+
+ push @badlist => map {qr/\b\Q$_\E\b/i} qw(
+ # insert badwordlist here
+ );
+
+ for (@badlist) {
+ if ($val_ww =~ /$_/) {
+ $self -> {error} = {
+ spec => 'undesired',
+ desc => $name{$_},
+ type => 'fatal'
+ };
+ return;
+ }
+ }
+ }
+
if (length $val_ww < $formdata -> {$name {$_}} -> {minlength}) {
$self -> {error} = {
spec => 'too_short',
};
$self -> kill_param or return;
}
+
+ elsif ($formdata -> {$name {$_}} -> {type} eq 'unique-id' and not may_id $val) {
+ $self -> {error} = {
+ spec => 'wrong_unique_id',
+ desc => $name{$_},
+ type => $formdata -> {$name {$_}} -> {errorType}
+ };
+ print STDERR "Manipuliert!";
+ $self -> kill_param or return;
+ }
}
if (exists ($formdata -> {$name {$_}} -> {values})