|
|
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
|