###前提・実現したいこと
Perlでデータベースを使用したい。
###発生している問題・エラーメッセージ
「接続がリセットされました」とウェブブラウザに表示される。
###該当のソースコード
Perl(WINDOWS用)
ここにご自身が実行したソースコードを書いてください
#index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Eurasia</title>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
</head>
<body bgcolor="#000066" text="#000000" link="#0000ee" alink="#0000ee" vlink="#551a8b">
<font color="#ff0000"><big><big><big> 現在ウェブ店舗作成中<br>
ご利用までにはしばらく<br>
お待ちください。<br>
<br>
ユーラシア</big></big></big></font><font color="#ff0000"><big><big><big><br>
</big></big></big></font><font color="#ffffff">本がネットで販売できる!他CD・DVD・ソフトウェア・ビデオゲームも販売できます!<br><br>
</font><a href="4.cgi"><img src="btn056_09%20-%201.gif"
alt="4.cgi" width="180" height="30">
<br>
</a>
</font><a href="5.cgi"><img src="btn056_09 - 2.gif"
alt="5.cgi" width="180" height="30">
<br>
</a>
</body>
</html>
#4.cgi
#!C:/WWW/Perl64/bin/perl
print "Content-type: text/html\n\n";
print <<"HTML";
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ユーザーアカウント登録</title>
</head>
<body bgcolor="#000066" text="#000000" link="#0000ee" alink="#0000ee"
vlink="#551a8b">
<form action="bbb.cgi" method="post">
<form>
<table border="0">
<tbody>
<tr>
<td align="right"><b> <font color="#ff0000">希望ユーザーID</font></b><br>
</td>
<td><input type="text" name="name" size="40" maxlength="30"></td>
</tr>
<tr>
<td align="right"><b> <font color="#ff0000">希望パスワード</font></b><br>
</td>
<td><input type="password" name="pass" size="40" maxlength="30"></td>
</tr>
<tr>
<td align="right"><b><font color="#ff0000">パスワード確認</font></b><br>
</td>
<td><input type="password" name="pass2" size="40" maxlength="30"></td>
</tr>
<tr>
<td align="right"><b> <font color="#ff0000">氏名</font></b><br>
</td>
<td><input type=""text"" name="simei" size="40" maxlength="30"></td>
</tr>
<tr>
<td align="right"><b><font color="#ff0000">メールアドレス</font></b><br>
</td>
<td><input type=""text"" name="mail" size="40"
maxlength="30"></td>
</tr>
<tr>
<td align="right"><b><font color="#ff0000">商品名</font></b><br>
</td>
<td><input type="text" name="syouhinmei" size="40" maxlength="30"></td>
</tr>
<tr>
<td align="right"><b><font color="#ff0000">商品カテゴリー</font></b><br>
</td>
<td><input type="text" name="category" size="40" maxlength="30"></td>
</tr>
<tr>
<td align="right"><p><b><font color="#ff0000">商品カテゴリー</font></b><br>
</td>
<input type="radio" name="q1" value="書籍"><font color="#ff0000">書籍</font>
<input type="radio" name="q1" value="cd"><font color="#ff0000">CD</font>
<input type="radio" name="q1" value="dvd"><font color="#ff0000">DVD</font>
<input type="radio" name="q1" value="software"><font color="#ff0000">ソフトウェア</font>
<input type="radio" name="q1" value="videogame"><font color="#ff0000">ビデオゲーム</font>
</p>
</tr>
<tr>
<td align="right"><b> <font color="#ff0000">商品値段</font></b><br>
</td>
<td><input type="text" name="nedan" size="40" maxlength="30"></td>
</tr>
<br>
</tr>
<tr>
<td><input type="submit" onclick="location.href'C:/WWW/bbb.cgi'" value="送信">
<input type="reset" value="リセット"></td>
</tr>
</font>
</tbody>
</table>
</form>
<br>
<br>
</body>
</html>
HTML
exit;
#bbb.cgi
#!C:/WWW/perl64/bin/perl.exe
use strict;
use DBI;
#フォームからデータを受け取り変数へ入れる
read(STDIN, $formin, $ENV{'CONTENT_LENGTH'});
$buffer = $ENV{'CONTENT_LENGTH'};
+ 記号を半角スペースに戻す
$formin =~ tr/+/ /;
#URLエンコードデータをデコード
$formin =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
@indata = split (/&/,$formin); #受け取ったデータを&で区切り、配列へ
foreach $tmp (@indata) #フォームの要素分(配列分)以下の処理を繰り返す
{
($name,$value) = split (/=/,$tmp); # =記号で区切り、名前 と 値 に分ける
$forminh{$name} = $value; #区切った名前を付けた連想配列に値を入れる
}
接続
my $dbh = DBI->connect("dbi:SQLite:dbname=test.db");
$dbh->do("create table meibo (dbid,dboid,dbpassword,dbsimei,dbmmail);");
データ追加
sql=1
$dbh->do("insert into meibo (dbid,dboid,dbpassword,dbsimei,dbmmail) values (gql,$forminh{'name'},$forminh{'pass'},$forminh{'simei'},$forminh{'mail'});");
テーブルの読み出し命令
my $sth = $dbh->prepare("select * from meibo");
$sth->execute;
各データを展開表示
while (my @row = $sth->fetchrow_array) {
print "@row\n";
}
$sth->finish;
undef $sth;
切断
$dbh->disconnect;
print "Content-type: text/html\n\n";
print <<"HTML";
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>コンテンツの情報書き込み</title>
</head>
<body bgcolor="#000066" text="#000000" link="#0000ee" alink="#0000ee"
vlink="#551a8b">
<form action="CGI194b1.html">
<textarea name="kanso" rows="4" cols="40">商品情報をご記入ください。</textarea>
<br>
<input type="submit" value="送信"><input type="reset" value="リセット">
</form>
<br>
<br>
</body>
</html>
HTML
exit;
#────────────────────────
これらのプログラムでbbb.cgiでSQLiteというデータベースを使用したいのですが、参考とした著述通りにプログラムを書いてもエラーが出ます。どなたかお願いします。
###試したこと
課題に対してアプローチしたことを記載してください
データーベースを扱うサンプルプログラムを作成しましたが、文字化けして、うまく表示されません。
###補足情報(言語/FW/ツール等のバージョンなど)
WINDOWS用Perl使用
より詳細な情報
このテラテイルでの表示では#!C:/WWW/perl64/bin/perl の著述では先頭の#の文字が消えていますが実際に書いたコードでは#を書いています。