I am having an issuue with a .pl script that is being called in the cgi-bin from a php page that actually inserts the data to the database, edits data and delete's data. Everything is working on the script with the exception of adding a new record. It doesn't give me any detailed info on the error message (Internal server error 500) and the hosting company won't let me know what the log files say. Could someone take a look at this code and see if any obvious problems jump out and say why it wouldn't work? Thanks in advance!!
Code
#!/usr/bin/perl
use CGI qw(:cgi-lib);
ReadParse();
use DBI;
$dbh = DBI->connect('dbi:mysql:acdb2:mysql13.siteprotect.com', 'acdb2', 'webg0dess1') || die "Cannot connect to db server $DBI::errstr,\n";
print "Content-type: text/html\n\n";
$mailprog = '/usr/sbin/sendmail';
$rand_num = rand 1000;
if($in{'option'} eq "delete") {
$sth = $dbh->prepare("SELECT * FROM tSportsStories WHERE(sport_id = '$in{sport_id}' AND story_id = '$in{story_id}')");
$rv = $sth->execute;
@row = $sth->fetchrow_array;
$thumbsize = "/home/anderson-college/www/sports/uploads/" . $row[4];
$fullsize = "/home/anderson-college/www/sports/uploads/" . $row[9];
if($row[4] ne "") {unlink($thumbsize);}
if($row[9] ne "") {unlink($fullsize);}
$dbh->do("DELETE FROM tSportsStories WHERE(sport_id = '$in{sport_id}' AND story_id = '$in{story_id}')");
print "<html><body onLoad=\"document.location='http://www.ac.edu/sportsadmin/stories.php?$rand_num&sport_id=$in{sport_id}'\"></body></html>";exit;}
if($in{'story_title'} eq "") {$message="Please enter a story title.";error_check();}
if($in{'story_text'} eq "") {$message="Please enter a value for the [Story Text] field.";error_check();}
foreach (keys %in){$in{$_} =~ s/\'/\\\'/gi;}
if(($in{'thumbnail'} ne "") || ($in{'fullimage'} ne "")) {require('/home/anderson-college/www/cgi-bin/uploadtest2.pl');}
if($in{'option'} eq "addnew") {
$dbh->do("INSERT INTO tSportsStories VALUES('','$in{sport_id}','$in{story_title}','$in{story_text}','$thumbsize','$in{thumbnail_caption}','$in{homepage}','$in{sport_homepage}','$in{last_upd}','$fullsize')");
print "<html><body onLoad=\"document.location='http://www.ac.edu/sportsadmin/stories.php?$rand_num&sport_id=$in{sport_id}'\"></body></html>";}
if($in{'option'} eq "doedit") {
if(($fullsize ne "") || ($thumbsize ne "")) {
$sth = $dbh->prepare("SELECT * FROM tSportsStories WHERE(sport_id = '$in{sport_id}' AND story_id = '$in{story_id}')");
$rv = $sth->execute;
@row = $sth->fetchrow_array;
$thumbdel = "/home/anderson-college/www/sports/uploads/" . $row[4];
$fulldel = "/home/anderson-college/www/sports/uploads/" . $row[9];
if($fullsize ne "") {unlink($fulldel);$query_a = "fullsize_image = '$fullsize',";}
if($thumbsize ne "") {unlink($thumbdel);$query_b = "thumbnail = '$thumbsize',";}}
$dbh->do("UPDATE tSportsStories SET " . $query_b . $query_a . "story_title = '$in{story_title}',story_text = '$in{story_text}',thumbnail_caption = '$in{thumbnail_caption}',homepage = '$in{homepage}',sport_homepage = '$in{sport_homepage}' WHERE(story_id = '$in{story_id}' AND sport_id = '$in{sport_id}')");
print "<html><body onLoad=\"document.location='http://www.ac.edu/sportsadmin/stories.php?$rand_num&sport_id=$in{sport_id}'\"></body></html>";}
sub error_check() {
print "<html><body onLoad=\"alert('$message');history.go(-1);\"></body></html>";
exit;}
The table tSportsStories contains the following fields:
story_id (auto incr.)
sport_id
story_title
story_text
thumbnail
thumbnail_caption
homepage
sport_homepage
last_upd
fullsize_image
writer
Not all of the fields are being passed at this time, for example 'writer'. Any help that someone can offer will be greatly appreciated.