Hello. Looking for some guidance. I am creating a very simple site. It is Perl 5. Using CGI with SQLite3 on Windows 10 with IIS 10. I have a simple HTML form that does a post of text field data to a .PL. I did set the database directory to have rights of Full Control. The issue, per the error message, has something to do with rights.
The error I get from IIS is...
HTTP Error 502.2 - Bad Gateway
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are "DBD::SQLite::db do failed: attempt to write a readonly database at C:\inetpub\wwwroot\formtest_3.pl line 31. ".
The .PL file is...
#!/usr/bin/perl
use CGI qw(:cgi-lib :standard);
use DBI;
use strict;
use warnings;
my $dbfile = "/inetpub/wwwroot/data/sample.db";
my $dsn = "dbi:SQLite:dbname=$dbfile";
my $user = "";
my $password = "";
my $dbh = DBI->connect($dsn, $user, $password, {
PrintError => 0,
RaiseError => 1,
AutoCommit => 1,
FetchHashKeyName => 'NAME_lc',
});
### Parse form data
&ReadParse(my %in);
my $fname = $in{"fname"};
my $lname = $in{"lname"};
my $user_id = $in{"user_id"};
my $email = $in{"email"};
### Write SQL data
$dbh->do('INSERT INTO people (fname, lname, user_id, email) VALUES (?,
+ ?, ?, ?)',
undef,
$fname, $lname, $user_id, $email);
$dbh->disconnect;
### Print HTML document
my $html = "Content-Type: text/html
<HTML>
<HEAD>
<TITLE>CGI Test</TITLE>
</HEAD>
<BODY>
<H4>CGI Test r1</H4>
<P>
fname: $fname
<p>
lname: $lname
<P>
user_id: $user_id
<p>
email: $email
<p>
</BODY>
</HTML>";
print $html;