|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Alexey Sobolev 2:5022/54.6 31 Jul 2001 23:48:15 To : All Subject : запись в файл -------------------------------------------------------------------------------- Есть скрипт гостевой книги, как сделать чтобы запись объявлений была в отдельный, внешний, текстовый файл? И еще, как сделать, чтобы сообщения удалялись по истечение определенного времени (например месяца). === Здесь начало GK.PL === #!/usr/local/bin/perl $guestbookurl = "http://metall-torg.hut.ru/gk.htm"; $styles_url = "http://metall-torg.hut.ru/styles.css"; $guestbookreal = "../WWW/gk.htm"; $cgiurl = "http://metall-torg.hut.ru/cgi-bin/gk.pl"; &parse_form; sub parse_form { if ($ENV{'REQUEST_METHOD'} eq "POST") {$mode = 0} if ($ENV{'REQUEST_METHOD'} eq "GET") {$mode = 1} if ($mode == 0) {read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'})} if ($mode == 1) {$buffer = $ENV{'QUERY_STRING'}} @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } } &no_name("Текс объявления не был введен") unless $FORM{'comments'}; &no_name("Вы не указали Ваше имя") unless $FORM{'realname'}; open (FILE,"$guestbookreal"); @LINES=<FILE>; close(FILE); $SIZE=@LINES; open (GUEST,">$guestbookreal"); for ($i=0;$i<=$SIZE;$i++) { $_=$LINES[$i]; if (/<!--go_write-->/) { print GUEST "<!--go_write-->\n"; $FORM{'comments'} =~ s/\cM\n/<br>\n/g; print GUEST "<b><i>Продаю: $FORM{'comments'}</i></b><br>\n"; if ($FORM{'url'}) { print GUEST "<a href=\"$FORM{'url'}\">$FORM{'realname'}</a>"; } else { print GUEST "$FORM{'realname'}"; } if ( $FORM{'username'} ){ print GUEST " \<<a href=\"mailto:$FORM{'username'}\">"; print GUEST "$FORM{'username'}</a>\>"; } print GUEST "<br>\n"; print GUEST " - $date<hr size=\"1\" width=\"96%\">\n\n"; } else { print GUEST $_; } } close (GUEST); &print_head("Объявление добавлено"); print "<h3 align=center>Объявление добавлено</h3><br>\n"; print "<div align=center>\n; print "<table border=\"0\">\n"; print "<tr>\n"; print "<td>Имя</td>\n"; print "<td>\n"; print "$FORM{'realname'}</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td>E-mail</td>\n"; print "<td>\n"; print "$FORM{'username'}</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td>URL</td>\n"; print "<td>\n"; print "$FORM{'url'}</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td><b>Продаю</b></td>\n"; print "<td>$FORM{'comments'}</td>\n"; print "</tr>\n"; print "</table>\n"; print "</div>\n" print "<p><a href=\"$guestbookurl\">Вернуться на доску</a></p>"; &print_end; sub no_name { &print_head($_[0]); print "<h1 align=center>$_[0]</h1><br>\n"; print "<form action=\"$cgiurl\" method=\"POST\">\n"; print "<div align=center>\n"; print "<table border=\"0\">\n"; print "<tr>\n"; print "<td>Ваше имя</td>\n"; print "<td><input type=\"text\" size=\"20\"\n"; print "name=\"realname\" value=\"$FORM{'realname'}\"></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td>E-mail</td>\n"; print "<td><input type=\"text\" size=\"20\"\n"; print "name=\"username\" value=\"$FORM{'username'}\"></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td>URL</td>\n"; print "<td><input type=\"text\" size=\"20\"\n"; print "name=\"url\" value=\"$FORM{'url'}\"></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td colspan=\"2\"><b>Продаю</b><br>\n"; print "<textarea name=\"comments\" rows=\"4\"\n"; print "cols=\"38\">$FORM{'comments'}</textarea></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td align=\"center\"><font size=\"2\"><input\n"; print "type=\"submit\"\n"; print "value=\"ДОБАВИТЬ\"></font></td>\n"; print "<td><font size=\"2\"><input\n"; print "type=\"reset\" value=\"ОЧИСТИТЬ\"></font></td>\n"; print "</tr>\n"; print "</table>\n"; print "</div>\n"; print "</form>\n"; &print_end; exit; } sub print_head { print "Content-type: text/html"; print "\n\n"; print "<html>\n"; print "<body bgcolor=\"#ffffff\" topmargin=0 marginheight=0>\n"; } === А здесь конец GK.PL === Alexey --- * Origin: Борьба за мир - это как секс за девственность (2:5022/54.6) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/27813b67457f.html, оценка из 5, голосов 10
|