1
過去幾天我一直在搞CGI ::應用程序,並決定創建一個真正的基礎論壇:第一頁顯示所有帖子(只有第一級,沒有回覆或任何東西)以及可用於創建新帖子的表單。CGI ::應用程序和SQLite
我遇到的問題是輸入表單的數據永遠不會被插入到SQLite數據庫中。
這裏是我遇到的麻煩的子過程:
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代碼本身,它的工作原理,所以我一定會看到其他東西。
此外,這是否被認爲是以這種方式實現表單邏輯的最佳實踐?
感謝