#!/usr/bin/perl
#SPLIT INCOMING DATA
###################################################################
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
$buffer=$ENV{QUERY_STRING} if ($ENV{QUERY_STRING}=~/=/);
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($F{$name}) { $F{$name} = $F{$name}.",".$value; }
else { $F{$name} = $value; }
}
#VARIABLES TO CHANGE
############################
$scriptfile = 'test.cgi'; #Name of this script
$datafile = 'testdata.dat'; #Name of the file to store data to
$workdir = 'http://myworld.server101.com'; #Default Working Dir
#OTHER VARIABLES
############################
$action = $F{'action'};
$userid = $F{'userid'};
$name1 = $F{'name1'};
$name2 = $F{'name2'};
$line = $F{'line'};
#DECIDE ACTION TO TAKE
############################
if ($action eq '') { &Show;}
if ($action eq 'show') { &Show;}
if ($action eq 'add') { &Add;}
if ($action eq 'addsave') { &Addsave;}
if ($action eq 'change') { &Change;}
if ($action eq 'changesave'){ &Changesave;}
if ($action eq 'insert') { &Insert;}
if ($action eq 'insertsave'){ &Insertsave;}
if ($action eq 'delete') { &Delete;}
#ADD - Create Form
############################
sub Add {
&Header;
print qq|
|;
exit;
}
#ADD - Save data to File
############################
sub Addsave {
$newname = join('¬', $name1, $name2);
$newname .= "\n";
open ("database", ">>$datafile") || &Printerror;
print database $newname;
close(database);
print "Location: $workdir/cgi/$scriptfile?action=show\n\n";
exit;
}
#CHANGE - Create Form
############################
sub Change {
&Header;
open ("database", "$datafile") || &Printerror;
@database = ;
close(database);
($name1, $name2) = split ('[¬]',@database[$line]);
$name2 =~ s/\n//g;
print qq|
|;
exit;
}
#CHANGE - Save changed data to File
###################################
sub Changesave {
$newname = join('¬', $name1, $name2);
$newname .= "\n";
open ("oldbase", "$datafile") || &Printerror;
@oldbase = ;
close(oldbase);
@oldbase[$line] = $newname;
open ("newbase", ">$datafile") || &Printerror;
print newbase @oldbase;
close(newbase);
print "Location: $workdir/cgi/$scriptfile?action=show\n\n";
exit;
}
#INSERT - Create Form
############################
sub Insert {
&Header;
print qq|
|;
exit;
}
#INSERT - Save inserted data to File
#####################################
sub Insertsave {
$newname = join('¬', $name1, $name2);
$newname .= "\n";
open ("oldbase", "$datafile") || &Printerror;
@oldbase = ;
close(oldbase);
$oldname = @oldbase[$line];
@oldbase[$line] = "$newname$oldname";
open ("newbase", ">$datafile") || &Printerror;
print newbase @oldbase;
close(newbase);
print "Location: $workdir/cgi/$scriptfile?action=show\n\n";
exit;
}
#DELETE - delete record
###################################
sub Delete {
open ("oldbase", "$datafile") || &Printerror;
@oldbase = ;
close(oldbase);
@oldbase[$line] = '';
open ("newbase", ">$datafile") || &Printerror;
print newbase @oldbase;
close(newbase);
print "Location: $workdir/cgi/$scriptfile?action=show\n\n";
exit;
}
#SHOW - Create List of Records
##############################
sub Show {
$line = "-1";
&Header;
open ("database","$datafile")|| &Printerror;
@database = ;
close(database);
foreach (@database) {
$line += 1;
($name1, $name2) = split ('[¬]',$_);
print qq|
$line $name1 $name2 \|
Edit \|
Delete \|
Insert
|;
}
print qq|
Add Record
|;
exit;
}
#HEADER
#####################################
sub Header {
print "Content-type: text/html\n\n";
}