私は過去数日間のCGI :: applicationを使いこなし、本当に基本的なフォーラムを作成することに決めました。最初のページにはすべての投稿が表示されます(最初のレベル、返信なしなど)新しい投稿を作成するために使用できるフォーム。CGI :: ApplicationとSQLite
私が問題になっているのは、フォームに入力されたデータが決してSQLiteデータベースに挿入されないということです。ここで
は私が悩みを抱えているSubプロシージャです:sub newpost {
my $self = shift;
if ($self->param()){
my $dbh = DBI->connect("dbi:SQLite:dbname=$database_file","","");
my $sth = $dbh->prepare("INSERT INTO posts (author, time, text) VALUES('testuser', '2011-10-23', 'This is a test!')");
$sth->execute();
$self->header_type('redirect');
$self->header_props(-url=> '?rm=viewall');
}
else {
my $tmpl_obj = $self->load_tmpl('newpost.html');
return $tmpl_obj->output();
}
正しく起こる(newpost実行モードが最初に呼び出されたとき、elseステートメント内のコードが実行されていることは何ですかフォームを含むテンプレートがロードされます)。フォームのアクションはこの同じ実行モードを呼び出しますが、パラメータが提供されるようになり、ifステートメントのコードが実行されます。私はSQLコードそのものをチェックしていますが、それは機能しているので、私が見ているものが他にもあるはずです。
また、このようにフォームロジックを実装するのがベストプラクティスと考えられますか?
おかげ