#!/usr/bin/perl -w
use strict;
print "Content-Type: text/html\n\n";
my (%oldnicks, @users, @nick, %form);
sub htmlheader
{
print <
IRC statistics - user addition page
HTML
}
sub htmlfooter
{
print <
HTML
}
sub read_config
{
open(FILE, ") {
if($_ =~ /^/ ) {
my $alias = $1;
$oldnicks{$nick[$i]}{'alias'} = $alias;
}
if ($users[$i] =~ /link="(\S+)"(.*)/) {
my $link = $1;
$oldnicks{$nick[$i]}{'link'} = $link;
}
if ($users[$i] =~ /pic="(\S+)"(.*)/) {
my $pic = $1;
$oldnicks{$nick[$i]}{'pic'} = $pic;
}
if ($users[$i] =~ /sex="(\S+)"(.*)/) {
my $sex = $1;
$oldnicks{$nick[$i]}{'sex'} = $sex;
}
if($users[$i] =~ /ignore="(\S+)"(.*)/) {
my $ignore = $1;
if($ignore eq "y" or $ignore eq "Y") {
$ignore = 1;
} else {
$ignore = 0;
}
$oldnicks{$nick[$i]}{'ignore'} = $ignore;
}
} else {
$search = 1;
}
$i++;
}
return $search;
}
sub get_request
{
my $input;
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
$input = $ENV{'QUERY_STRING'}
} else {
read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
}
my @formfields = split(/&/, $input);
foreach my $field (@formfields) {
my ($name, $value) = split(/=/, $field);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$form{$name} = $value;
}
if ($form{'ignore'} eq "on") { $form{'ignore'} = 1; }
}
sub check_if_found
{
my $found = 0;
foreach (@nick) {
if ($oldnicks{$_}{'nick'} eq $form{'nick'}) {
$found = 1;
}
}
if ($found eq "1") {
print "The nickname you've choosen is already configured with the following settings:
\n";
print "\n \n";
print " | Nickname: | \n $oldnicks{$form{'nick'}}{'nick'} | \n";
print "
\n";
if($oldnicks{$form{'nick'}}{'alias'}) {
print " \n";
print " | Aliases: | \n $oldnicks{$form{'nick'}}{'alias'} | \n";
print "
\n";
}
if($oldnicks{$form{'nick'}}{'link'}) {
print " \n";
if($oldnicks{$form{'nick'}}{'link'} =~ /^http:|ftp:/) {
print " | Link: | \n $oldnicks{$form{'nick'}}{'link'} | \n";
}
elsif ($oldnicks{$form{'nick'}}{'link'} =~ /(.*)@(.*).(.*)/) {
print " Link: | \n $oldnicks{$form{'nick'}}{'link'} | \n";
} else {
print " Link: | \n $oldnicks{$form{'nick'}}{'link'} | \n";
}
print "
\n";
}
if($oldnicks{$form{'nick'}}{'pic'}) {
print " \n";
print " | Userpic: | \n  | \n";
print "
\n";
}
if($oldnicks{$form{'nick'}}{'sex'}) {
print " \n";
print " | Sex: | \n $oldnicks{$form{'nick'}}{'sex'} | \n";
print "
\n";
}
if($oldnicks{$form{'nick'}}{'ignore'} eq "1") {
print " \n";
print " | Ignore: | \n Yes | \n";
print "
\n";
}
print "
\n";
print "Please click here to choose an other nickname
\n";
exit(0);
}
}
sub checks
{
if(!$form{'nick'}) {
print "You haven't entered a nickname.. Your request will be ignored
";
print "Please click here to choose an other nickname";
exit(0);
}
if($form{'nick'} and !$form{'alias'} and !$form{'link'} and !$form{'pic'} and !$form{'ignore'} and !$form{'sex'}) {
print "You've entered a nickname but haven't configured any settings for that nickname
\n";
print "Please click here to configure some settings for the nickname";
exit(0);
}
}
sub add_line
{
my $line_to_add = "\n
| Nickname: | $form{'nick'} |
HTML
;
if($form{'alias'}) {
print " \n";
print " | Aliases: | $form{'alias'} | \n";
print "
\n";
}
if($form{'link'}) {
print " \n";
print " | Link: | $form{'link'} | \n";
print "
\n";
}
if($form{'pic'}) {
print " \n";
print " | Userpic: |  | \n";
print "
\n";
}
if($form{'sex'}) {
print " \n";
print " | Sex: | $form{'sex'} | \n";
print "
\n";
}
if($form{'ignore'} eq "1") {
print " \n";
print " | Ignore: | Yes | \n";
print "
\n";
}
open(FILE, ">>pisg.cfg") or die("Error opening file: $!");
print FILE "$line_to_add\n";
close(FILE);
}
sub main
{
htmlheader();
my $search = read_config();
get_request();
if ($search ne "1") {
check_if_found();
}
checks();
add_line();
htmlfooter();
}
main();