| Цитата(sharq @ 28.6.2005, 22:06) | А почему не использовать модуь CGI, он как раз для этих целей создан, и таких проблем не будет, тем более, для начинающих.
|
С модулем CGI? В принципе я в конце-концов пришёл к выводу, что всётаки так будет проще. Вот:
| Код |
#!perl
use CGI; $db_url = "/dat.dat";
$query = CGI->new; print
$query->header, $query->start_html(), $query -> hr();
$user = $query->param('name'); $email = $query->param('email'); $message = $query->param('message');
$def = "$user \: \: $email\n$message";
# if($user && $email && $message){ #
open(FP_OUT,">>$db_url"); print FP_OUT $def, "\n\n"; close(FP_OUT);
open(IN_FP,"<$db_url"); @datas = <IN_FP>; close(IN_FP); for($i=0;$i<=$#datas;$i++){ print"\n"; if($datas[$i] == "\n"){ print "<br>"; } print "$datas[$i]\n"; }
print
$query->start_form, $query->textfield( -name=>'name', -size=>20), $query->p, $query->textfield( -name=>'email', -size=>20), $query->p, $query->textarea( -name=>"message", -rows=>14, -columns=>60, -default => ""), $query->p, $query -> submit(-name=>"Отправить"), $query -> end_form, $query -> end_html;
} else{ open(IN_FP,"<$db_url"); @datas = <IN_FP>; close(IN_FP); for($i=0;$i<=$#datas;$i++){ print"\n"; if($datas[$i] == "\n"){ print "<br>"; } print "$datas[$i]\n"; }
print
$query->start_form, $query->textfield( -name=>'name', -size=>20), $query->p, $query->textfield( -name=>'email', -size=>20), $query->p, $query->textarea( -name=>"message", -rows=>14, -columns=>60, -default => ""), $query->p, $query -> submit(-name=>"Захуячить"), $query -> end_form, $query -> end_html;
}
|
громоздко, но в принципе работает. Как вы наверное догадались - это некое подобие гостевой книги. Вопрос в том, как очистить поля после занесения записи в файл dat.dat. Иначе, при нажатии на кнопку обновить это сообщение записывается в файл ещё раз |