Actually, on the hoster's website, it says that to run Perl scripts on their
server, you don't need to include a shebang line. They do, though, give the
path to Perl. I've tried both (their shebang line and no shebang line), and
neither work. I gave your suggestion of <#!perl> a try and it also didn't
work. I'm really at a loss now as to what to do. I'll find out what
webserver they're using. As for what version of Perl, it's 5.60
Thanks,
Nick
> -----Original Message-----
> From: Jeff Seger [mailto:[EMAIL PROTECTED]]
> Sent: June 24, 2002 1:02 PM
> To: John Day
> Cc: DBI-Users
> Subject: Re: need execute perms?
>
>
> 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
> > >;
> >
>