Are you certain that you have the correct path to the perl executable? Try changing your shebang line to: #!perl and see if they are then executable.
On Mon, 2002-06-24 at 11:52, John Day wrote: > 1.. Have you made the scripts executable? by using CHMOD 755 or something similar. >You can often do this in your ftp client. > > 2.. Who is your provider, so we may all studiously avoid them in the future? > > > John Day > Words & Images > Toronto, Canada > > > > At 11:07 AM 6/24/2002 -0400, Nick Hoffman [UWO] wrote: > >Hi. The hosting company that I am with says that you only need "execute for > >scripts" permissions to run Perl scripts in my cgi-bin directory. However, > >I'm unable to run *any* of my scripts. Might anyone know why that may be? > >Whenever I try to, I get a 403.1 Forbidden: Execute Access Forbidden. The > >hosting company refuses to tell me how to get my scripts working, and cling > >to this motto "We provide accessibility, not functionality." So, I have no > >idea how to get my scripts going. Below is one of my many scripts that > >simply won't run. > > > >Thanks for your help > > Nick Hoffman > > > > > > > >#!perl\perl.exe > > > >use DBI; > >use strict; > >use CGI::Carp qw(fatalsToBrowser); > > > >#data source name > >my ($dsn) = "DBI:ODBC:ebahoops"; > > > >#for holding the username and password that the user entered > >my (@username, @password); > > > >#for holding the usernameS and passwordS in the pwd file > >my (@unames, @pwds); > > > >#whether the username and password exist AND match > >my ($match) = "false"; > > > >#file that holds the different EBA divisions > >my ($DivisionsFile) = "divisions.dat"; > >my (@division_contents); > > > >#path to pwd file > >my ($pwd_file) = "dont_delete.dat"; > > > >#for converting query string > >my ($NameValue, $Name, $Value); > > > >#array for holding query data > >my (@data); > > > >#database and statement handles > >my ($dbh); > >my ($sth); > > > >#array for holding team names and numbers > >my (@COEDTeamNames, @COEDTeamNums, @COEDDivisions); > >my (@BoysTeamNames, @BoysTeamNums, @BoysDivisions); > >my (@GirlsTeamNames, @GirlsTeamNums, @GirlsDivisions); > > > >#temp vars > >my (@temp, @params, $counter, $temp); > > > >#put each param into the array > >@params = split("&", $ENV {'QUERY_STRING'}); > > > >#convert ugly chars to regular chars > >$counter = 0; > >while (@params[$counter]) > > { > > ($Name, $Value) = split("=", @params[$counter]); > > $Value =~ tr/+/ /; > > $Value =~ s/%([\dA-Fa-f][\dA-Fa-f])/ pack ("C", hex($1))/eg; > > @params[$counter] = $Name . "=" . $Value; > > > > $counter++; > > } > > > >print <<HTMLSTUFF; > > <html> > > <head> > > > > <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> > > <meta name="description" content="The Official Etobicoke Basketball > >Association's Web Page"> > > <meta name="keywords" content="EBA, Etobicoke Basketball Association, > >Basketball, League, BBall, Ball, Sport, Sports, fun, games, activity, > >activities, net"> > > > > <title>Etobicoke Basketball Association - Registration Form</title> > > </head> > > > > <body bgcolor="#FFFFFF" link="#FF0000" vlink="#FF0000" alink="#FF0000"> > > > > <table border=0 cellpadding=0 cellspacing=0 width=600> > > <tr> > > <td valign="top" width="600"> > > <table border=0 cellpadding=0 cellspacing=0 width=100%> > > <tr> > > <td colspan=2> > > <center> > > <table border=3 cellpadding=10 >cellspacing=0> > > <tr> > > <td> > > <center> > > <b>ETOBICOKE >BASKETBALL ASSOCIATION</b><br> > > <b>Administration >Page</b> > > </center> > > </td> > > </tr> > > </table> > > </center> > > </td> > > </tr> > > <tr> > > <td width=70%> </td> > > <td width=30%> </td> > > </tr> > >HTMLSTUFF > >; > > > >if ((@params[0] !~ "username=") || (@params[1] !~ "password=")) > > { #if the username or password isn't specified, ask for it > > print " > > <form action=\"edit_teams.pl\" >method=\"get\"> > > <tr> > > <td width=70%>Username:</td> > > <td width=30%><input type=text size=12 maxlength=12 > >name=username></td> > > </tr> > > <tr> > > <td width=70%>Password</td> > > <td width=30%><input type=password size=12 >maxlength=12 > >name=password></td> > > </tr> > > <tr> > > <td width=70%> </td> > > <td width=30%> </td> > > </tr> > > <tr> > > <td colspan=2><center><input type=submit >value=\"Submit\" > >STYLE=\"background:AD5100\"><center></td> > > </form> > > </tr> > > </table> > > "; > > } > >else > > { > > #split up the username > > @username = split("=", @params[0]); > > @password = split("=", @params[1]); > > > > #encrypt the password > > @password[2] = crypt(@password[1], "fish"); > > > > #grab the usernames and passwords from the pwd file > > open (pwd, $pwd_file) || die print "Error while opening pwd file for > >reading:<br>$!<br>"; > > @temp = <pwd>; > > close pwd; > > > > #build the uname and pwd arrays > > $counter = 0; > > while ((@temp[$counter]) && ($match eq "false")) > > { > > (@unames[$counter], @pwds[$counter]) = split (",", @temp[$counter]); > > > > #get rid of the end-of-line char from the pwd > > chomp(@pwds[$counter]); > > > > if ((@username[1] eq @unames[$counter]) && (@password[2] eq > >@pwds[$counter])) > > {$match = "true";} > > > > $counter++; > > } > > > > if ($match eq "false") > > { > > print " > > <tr> > > <td colspan=2> > > <b><font color=red><center> > > ERROR: the username and password do not >match > > </center></font></b> > > </td> > > </tr> > > </table> > > "; > > } > > else #the username and password match > > { > > if (@username[1] eq "admin") > > { > > print " > > <tr><td width=100%><b><font size=+1>Team >Editing</font></b></td></tr> > > <tr><td width=100%><font size=-1>You are logged in >as the > >administrator.</font></td></tr> > > <tr><td width=100%> </td></tr> > > <tr><td width=100%> > > "; > > > > #get all of the existing teams > > > > #***Connect to the database*** > > $dbh = DBI->connect($dsn, "", "") || die print >"$DBI::errstr<hr>"; > > > > #***Extract the teams from the database > > $sth = $dbh->prepare("SELECT TeamNum, TeamName, Division >FROM Teams WHERE > >Gender=? ORDER BY Gender, Division, TeamName") || die print "Died while > >preparing:<br>$DBI::errstr<hr>"; > > > > #execute for CO-ED and retrieve the data > > $sth->execute('CO-ED') || die print "Died while > >executing:<br>$DBI::errstr<hr>"; > > $counter = 0; > > while (@data = $sth->fetchrow_array()) > > { > > @COEDTeamNums[$counter] = @data[0]; > > @COEDTeamNames[$counter] = @data[1]; > > @COEDDivisions[$counter] = @data[2]; > > $counter++; > > } > > > > #execute for Boys and retrieve the data > > $sth->execute('Boys') || die print "Died while > >executing:<br>$DBI::errstr<hr>"; > > $counter = 0; > > while (@data = $sth->fetchrow_array()) > > { > > @BoysTeamNums[$counter] = @data[0]; > > @BoysTeamNames[$counter] = @data[1]; > > @BoysDivisions[$counter] = @data[2]; > > $counter++; > > } > > > > #execute for Girls and retrieve the data > > $sth->execute('Girls') || die print "Died while > >executing:<br>$DBI::errstr<hr>"; > > $counter = 0; > > while (@data = $sth->fetchrow_array()) > > { > > @GirlsTeamNums[$counter] = @data[0]; > > @GirlsTeamNames[$counter] = @data[1]; > > @GirlsDivisions[$counter] = @data[2]; > > $counter++; > > } > > > > if ((@COEDTeamNums == 0) && (@BoysTeamNums == 0) && >(@GirlsTeamNums == > >0)) #no teams currently exist > > { #make sure at least 1 team exists > > print " > > No teams currently exist.<p> > > <table border=0 cellpadding=4 cellspacing=0 >width=100%> > > "; > > } > > else > > { #at least 1 team exists, so let's display them > > print " > > <table border=0 cellpadding=4 >cellspacing=20 width=100%> > > <tr> > > <td >bgcolor=AD5200><b>CO-ED</b></td> > > <td >bgcolor=AD5200><b>Boys</b></td> > > <td >bgcolor=AD5200><b>Girls</b></td> > > </tr> > > <tr> > > <td bgcolor=AD5200 >valign=top> > > <table border=0 >cellpadding=4 cellspacing=0> > > <tr> > > <td >bgcolor=AD5200 width=50%><b>Name</b></td> > > <td >bgcolor=AD5200 width=50%><b>Division</b></td> > > </tr> > > "; > > > > $counter = 0; > > while (@COEDTeamNums[$counter]) > > { > > print " <tr> > > <td >bgcolor=AD6200 width=50%>@COEDTeamNames[$counter]</td> > > <td >bgcolor=AD6200 width=50%>@COEDDivisions[$counter]</td> > > </tr>"; > > $counter++; > > } #end while > > print " </table> > > </td> > > <td bgcolor=AD5200 >valign=top> > > <table border=0 >cellpadding=4 cellspacing=0> > > <tr> > > <td >bgcolor=AD5200><b>Name</b></td> > > <td >bgcolor=AD5200><b>Division</b></td> > > </tr> > > "; > > > > $counter = 0; > > while (@BoysTeamNums[$counter]) > > { > > print " <tr> > > <td >bgcolor=AD6200>@BoysTeamNames[$counter]</td> > > <td >bgcolor=AD6200>@BoysDivisions[$counter]</td> > > </tr>"; > > $counter++; > > } #end while > > > > print " </table> > > </td> > > <td bgcolor=AD5200 >valign=top> > > <table border=0 >cellpadding=4 cellspacing=0> > > <tr> > > <td >bgcolor=AD5200><b>Name</b></td> > > <td >bgcolor=AD5200><b>Division</b></td> > > </tr> > > "; > > > > $counter = 0; > > while (@GirlsTeamNums[$counter]) > > { > > print " <tr> > > <td >bgcolor=AD6200>@GirlsTeamNames[$counter]</td> > > <td >bgcolor=AD6200>@GirlsDivisions[$counter]</td> > > </tr>"; > > $counter++; > > } #end while > > > > print " </table> > > </td> > > </tr> > > </table> > > </td> > > </tr> > > "; > > > > print " > > <tr> > > <td> </td> > > <td> </td> > > </tr> > > <tr> > > <td> </td> > > <td> </td> > > </tr> > > <tr> > > <td colspan=2> > > <table border=0 cellpadding=4 >cellspacing=0 width=100%> > > <tr> > > <td width=40% >bgcolor=AD5200> > > <form >action=\"rename_a_team.pl\" method=\"get\"> > > <input >type=hidden name=username value=@username[1]> > > <input >type=hidden name=password value=@password[1]> > > > > <b>Rename A >Team</b> > > </td> > > <td width=40% >bgcolor=AD5200> </td> > > <td width=20% >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD5200> Current Team > >Name:</td> > > <td width=40% >bgcolor=AD5200><input type=text size=20 maxlength=50 > >name=CurrentTeamName></td> > > <td width=20% >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD5200> New Team > >Name:</td> > > <td width=40% >bgcolor=AD5200><input type=text size=20 maxlength=50 > >name=NewTeamName></td> > > <td width=20% >bgcolor=AD5200><input type=submit > >value=\"Submit\"></td> > > </form> > > </tr> > > <tr> > > <td >bgcolor=AD5200> </td> > > <td >bgcolor=AD5200> </td> > > <td >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td >bgcolor=AD6200> </td> > > <td >bgcolor=AD6200> </td> > > <td >bgcolor=AD6200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD6200> > > <form >action=\"delete_a_team.pl\" method=\"get\"> > > <input >type=hidden name=username value=@username[1]> > > <input >type=hidden name=password value=@password[1]> > > > > <b>Delete A >Team</b> > > </td> > > <td width=40% >bgcolor=AD6200> </td> > > <td width=20% >bgcolor=AD6200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD6200> Team Name:</td> > > <td width=40% >bgcolor=AD6200><input type=text size=20 maxlength=50 > >name=TeamName></td> > > <td width=20% >bgcolor=AD6200><input type=submit > >value=\"Submit\"></td> > > </form> > > </tr> > > <tr> > > <td >bgcolor=AD6200> </td> > > <td >bgcolor=AD6200> </td> > > <td >bgcolor=AD6200> </td> > > </tr> > > <tr> > > <td >bgcolor=AD5200> </td> > > <td >bgcolor=AD5200> </td> > > <td >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD5200> > > <form >action=\"add_a_game.pl\" method=\"get\"> > > <input >type=hidden name=username value=@username[1]> > > <input >type=hidden name=password value=@password[1]> > > > > <b>Add A >Game</b> > > </td> > > <td width=40% >bgcolor=AD5200> </td> > > <td width=20% >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD5200> Team Name:</td> > > <td width=40% >bgcolor=AD5200><input type=text size=20 maxlength=50 > >name=Team1Name></td> > > <td width=20% >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD5200> Team Name:</td> > > <td width=40% >bgcolor=AD5200><input type=text size=20 maxlength=50 > >name=Team2Name></td> > > <td width=20% >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD5200> Date > >(DD/MM/YY):</td> > > <td width=40% >bgcolor=AD5200><input type=text size=20 maxlength=8 > >name=Date></td> > > <td width=20% >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD5200> Time:</td> > > <td width=40% >bgcolor=AD5200><input type=text size=20 maxlength=20 > >name=Time></td> > > <td width=20% >bgcolor=AD5200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD5200> Location:</td> > > <td width=40% >bgcolor=AD5200><input type=text size=20 maxlength=255 > >name=Location></td> > > <td width=20% >bgcolor=AD5200><input type=submit > >value=\"Submit\"></td> > > </form> > > </tr> > > <tr> > > <td >bgcolor=AD5200> </td> > > <td >bgcolor=AD5200> </td> > > <td >bgcolor=AD5200> </td> > > </tr> > > "; > > } #end else: there's at least 1 team > > > > print " > > <tr> > > <td >bgcolor=AD6200> </td> > > <td >bgcolor=AD6200> </td> > > <td >bgcolor=AD6200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD6200> > > <form >action=\"add_a_team.pl\" method=\"get\"> > > <input >type=hidden name=username value=@username[1]> > > <input >type=hidden name=password value=@password[1]> > > > > <b>Add A >Team</b> > > </td> > > <td width=40% >bgcolor=AD6200> </td> > > <td width=20% >bgcolor=AD6200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD6200> New Team's > >Name:</td> > > <td width=40% >bgcolor=AD6200><input type=text size=20 maxlength=50 > >name=NewTeamName></td> > > <td width=20% >bgcolor=AD6200> </td> > > </tr> > > <tr> > > <td width=40% >bgcolor=AD6200> New Team's > >Division:</td> > > <td width=40% >bgcolor=AD6200> > > "; > > > > #print the divisions, but without the cost > > open (divisions, $DivisionsFile) || die print "Error while >opening > >divisions file for reading:<br>$!<br>"; > > @division_contents = <divisions>; > > close divisions; > > > > chomp (@division_contents); > > > > foreach $_ (@division_contents) > > { > > #only grab entries that start with C, B or G > > #this gets rid of the "--Select--" and "- - - - - >-" entries > > if (/select /) > > {print "$_\n";} > > elsif (/select_one/) > > {} > > else #it's an <option> that we want > > { > > /(<.*?>.*):.*(<.*?>)/; > > > > print "\t\t\t\t\t$1$2\n"; > > } > > } > > > > print " > > </select> > > </td> > > <td >bgcolor=AD6200><input type=submit value=\"Submit\"></form></td> > > </table> > > </td> > > </tr> > > "; > > > > $dbh->disconnect(); > > } #end if username == "admin" > > else > > { > > print " > > <tr> > > <td colspan=2> > > <b><font color=red><center> > > ERROR: you are not allowed access >to this page > > </center></font></b> > > </td> > > </tr> > > </table> > > "; > > } > > } > > } #end else > > > >print <<HTMLSTUFF; > > <tr> > > <td colspan=2> > > <p> > > <form action="edit_teams.pl" >method="get"> > > <input type=hidden >name=username value=@username[1]> > > <input type=hidden >name=password value=@password[1]> > > <input type="Submit" >value="Reload Page"> > > </form> > > </td> > > </tr> > > </td> > > </tr> > > </table> > > </body> > > </html> > > > >HTMLSTUFF > >; >