#!/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|
ForeName:
Surname :
|; 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|
Forename:
Surname :
|; 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|
Forename:
Surname :
|; 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"; }