質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

0回答

300閲覧

Perlでデータベースが使えない

trm

総合スコア117

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2017/12/09 01:33

###前提・実現したいこと
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 の著述では先頭の#の文字が消えていますが実際に書いたコードでは#を書いています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KojiDoi

2017/12/09 03:43

プログラムやHTMLの内容を示すときは、その前後の行に```を入力するか、解答欄の</>ボタンを押してソースコードがソースコードとして見えるようにしてください。
KojiDoi

2017/12/09 03:44

どんなエラーが出ているのかも書いてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問