home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 May / 05_02.iso / software / mhtmls / MagicHTMLStudio.exe / Disk1 / data1.cab / Program_Files / CGI / Conference / board.cgi < prev    next >
Encoding:
Text File  |  2002-03-06  |  19.8 KB  |  607 lines

  1. #!/usr/bin/perl
  2. $board_name = "My Conference";
  3. $rev_messages = 1;
  4. $change_smiles = 0;
  5. %forums = (
  6. "001","Programs",
  7. "002","SecurityPad",
  8. "003","CPU",
  9. "004","Hard",
  10. "005","Soft",
  11.  
  12. );
  13. $password = '000';
  14.    read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
  15.    @pairs = split(/&/, $buffer);
  16.    foreach $pair (@pairs) {
  17.       ($name, $value) = split(/=/, $pair);
  18.       $value =~ tr/+/ /;
  19.       $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  20.       $value =~ s/<!--(.|\n)*-->//g;
  21.       $value =~ s/<([^>]|\n)*>//g;
  22.       $FORM{$name} = $value;
  23.    }
  24.  
  25.    $temp=$ENV{'QUERY_STRING'};
  26.    @pairs=split(/&/,$temp);
  27.    foreach $item(@pairs) {
  28.        ($key,$content)=split (/=/,$item,2);
  29.     $content=~tr/+/ /;
  30.     $content=~ s/%(..)/pack("c",hex($1))/ge;
  31.     $FORM{$key}=$content;
  32.    }
  33.  
  34.    ($s,$m,$h,$d,$mn,$y) = (localtime)[0..5];
  35.    $y+=1900;
  36.    $mn++;
  37.    if ($s < 10) {
  38.       $s = "0$s";
  39.    }
  40.    if ($m < 10) {
  41.       $m = "0$m";
  42.    }
  43.    if ($h < 10) {
  44.       $h = "0$h";
  45.    }
  46.    if ($mn < 10) {
  47.       $mn = "0$mn";
  48.    }
  49.    $time_post = "$d.$mn.$y Γ $h:$m:$s";
  50.  
  51. if($FORM{'action'} eq 'show_topics') {&show_topics;}
  52. if($FORM{'action'} eq 'make_topic') {&make_topic;}
  53. if($FORM{'action'} eq 'view_topic') {&view_topic;}
  54. if($FORM{'action'} eq 'register') {®ister;}
  55. if($FORM{'action'} eq 'register_try') {®_apply;}
  56. if($FORM{'action'} eq 'install') {&install;}
  57. if($FORM{'action'} eq 'reply_message') {&reply_message;}
  58. if($FORM{'action'} eq 'change_profile') {&change_profile_step_1;}
  59. else {&show_themes;}
  60.  
  61. $copyright = "<a href=\"http:www.agfreesoft.com\"></a>";
  62.  
  63. sub show_themes {
  64.  
  65.     print "Content-Type: text/html\n\n";
  66.     open(HEAD,"header.txt");
  67.     @head = <HEAD>;
  68.     close(HEAD);
  69.     foreach (@head) {
  70.         print $_;
  71.     }
  72.     print "[ <a href=board.cgi?action=register>registration</a> ] [ <a href=board.cgi?action=change_profile_step_1>your data</a> ] [ faq ]<br><br>\n";
  73.     print "<table width=100% cellpadding=3 cellsapcing=1 border=0>\n";
  74.     print "<tr><td bgcolor=#336699 width=20></td><td bgcolor=#336699><font color=#ffffff size=2><center>Section name</center></font></td><td width=100 bgcolor=#336699><font color=#ffffff size=2><center>topics in section</center></font></td></tr>\n";
  75.  
  76.     foreach $file (keys %forums) {
  77.         open(TOPICS,"$file.txt");
  78.         @topics = <TOPICS>;
  79.         close(TOPICS);
  80.  
  81.         $top_q = @topics;
  82.  
  83.  
  84.         print "<tr bgcolor=#dddddd><td></td><td><font color=#000000 size=2><a href=board.cgi?action=show_topics&theme=$file>$forums{$file}</a></font></td><td bgcolor=#dddddd><font color=#000000 size=2>$top_q</font></td></tr>\n";
  85.  
  86.  
  87.     }
  88.  
  89.     print "</table>\n";
  90.  
  91.  
  92.     print "<br><br><center>$copyright</center>";
  93.     open(FOOT,"footer.txt");
  94.     @foot = <FOOT>;
  95.     close(FOOT);
  96.     foreach (@foot) {
  97.         print $_;
  98.     }
  99.     exit;
  100.  
  101. }
  102.  
  103. sub show_topics {
  104.  
  105.     open(TOPICS,"$FORM{'theme'}.txt");
  106.     @topics = <TOPICS>;
  107.     close(TOPICS);
  108.  
  109.     @topics = reverse(@topics);
  110.     $top_q = @topics;
  111.  
  112.     print "Content-Type: text/html\n\n";
  113.     open(HEAD,"header.txt");
  114.     @head = <HEAD>;
  115.     close(HEAD);
  116.     foreach (@head) {
  117.         print $_;
  118.     }
  119.     print "<b>Total messages: $top_q</b><br><br>\n";
  120.     print "<table width=100% cellpadding=3 cellsapcing=1 border=0>\n";
  121.     print "<tr><td bgcolor=#336699><font color=#ffffff size=2><center>Message subject</center></font></td><td width=150 bgcolor=#336699><font color=#ffffff size=2><center>└uthor</center></font></td><td width=100 bgcolor=#336699><font color=#ffffff size=2><center>Answer</center></font></td><td width=200 bgcolor=#336699><font color=#ffffff size=2><center>Last change</center></font></td></tr>\n";
  122.  
  123.     foreach $topic (@topics) {
  124.         @topic_params = split(/\|\|/,$topic);
  125.         print "<tr bgcolor=#eeeeee><td><font color=#000000 size=2><a href=$topic_params[5]>$topic_params[1]</a></font></td><td bgcolor=#dddddd><font color=#000000 size=2>";
  126.     if($topic_params[6] ne '') {
  127.         print "<a href=mailto:$topic_params[6]>$topic_params[2]</a>";
  128.     }
  129.     else {
  130.         print "$topic_params[2]";
  131.     }
  132.     print "</font></td><td><font color=#000000 size=2>$topic_params[3]</font></td><td bgcolor=#dddddd><font color=#000000 size=2>$topic_params[4]</font></td></tr>\n";
  133.     }
  134.  
  135.     print "</table>\n";
  136.  
  137.     print "<form action=board.cgi method=post>\n";
  138.     print "<table ±ellspacing=1 cellpadding=3 border=0>\n";
  139.     print "<input type=hidden name=action value=make_topic>\n";
  140.     print "<input type=hidden name=theme value=$FORM{'theme'}>\n";
  141.     print "<tr><td>Your name(nickname): </td><td><input type=text name=name size=25></td></tr>";
  142.     print "<tr><td>Your password(or the password if you are registered): </td><td><input type=text name=email size=25></td></tr>";
  143.     print "<tr><td>Subject of discussion: </td><td><input type=text name=topic size=25></td></tr>";
  144.     print "<tr><td>Message: </td><td><textarea name=message rows=10 cols=30></textarea></td></tr>";
  145.     print "<tr><td colspan=2><center><input type=submit value=\"Create subject\"></center></td></tr>";
  146.     print "</table>\n";
  147.     print "</form>\n<br><br><center>$copyright</center>";
  148.     open(FOOT,"footer.txt");
  149.     @foot = <FOOT>;
  150.     close(FOOT);
  151.     foreach (@foot) {
  152.         print $_;
  153.     }
  154.     exit;
  155.  
  156. }
  157.  
  158. sub make_topic {
  159.  
  160.     ✓
  161.  
  162.     chdir("users");
  163.     open(USER_NAME,"$FORM{'name'}.cgi");
  164.     @data = <USER_NAME>;
  165.     chomp($data[4]);
  166.     chomp($data[1]);
  167.     if ($data[4] eq $FORM{'email'}) {
  168.         $FORM{'email'} = $data[1];
  169.     }
  170.     chdir("../");
  171.  
  172.     open(TOPICS,"$FORM{'theme'}.txt");
  173.     @topics_array = <TOPICS>;
  174.     close(TOPICS);
  175.  
  176.     $topics = @topics_array + 1;
  177.  
  178.     open(TOPICS,">> $FORM{'theme'}.txt");
  179.     print TOPICS "||$FORM{'topic'}||$FORM{'name'}||0||$time_post||board.cgi?action=view_topic\&topic=$topics\&theme=$FORM{'theme'}||$FORM{'email'}||\n";
  180.     close(TOPICS);
  181.  
  182.     $FORM{'message'} =~ s/\n/<br>/g;
  183.  
  184.     open(TOPIC,"> $FORM{'theme'}/$topics");
  185.     print TOPIC "||$FORM{'topic'}||$FORM{'name'}||1||$time_post||$FORM{'message'}||$FORM{'email'}||\n";
  186.     close(TOPIC);
  187.  
  188.     print "Content-Type: text/html\n\n";
  189.     open(HEAD,"header.txt");
  190.     @head = <HEAD>;
  191.     close(HEAD);
  192.     foreach (@head) {
  193.         print $_;
  194.     }
  195.  
  196.     print "Subject <b>$FORM{'topic'}</b> it was added by you $time_post\n in section $forums{$FORM{'theme'}}<br><br><center>$copyright</center>";
  197.     open(FOOT,"footer.txt");
  198.     @foot = <FOOT>;
  199.     close(FOOT);
  200.     foreach (@foot) {
  201.         print $_;
  202.     }
  203.  
  204.     exit;
  205.  
  206. }
  207.  
  208. sub view_topic {
  209.  
  210.     open(TOPIC,"$FORM{'theme'}/$FORM{'topic'}");
  211.     @messages = <TOPIC>;
  212.     close(TOPIC);
  213.  
  214.     $prev = $FORM{'topic'} - 1;
  215.     $next = $FORM{'topic'} + 1;
  216.  
  217.     print "Content-Type: text/html\n\n";
  218.     open(HEAD,"header.txt");
  219.     @head = <HEAD>;
  220.     close(HEAD);
  221.     foreach (@head) {
  222.         print $_;
  223.     }
  224.  
  225.     $replies = @messages - 1;
  226.     (undef,$topic_name,undef,undef,$last_change,undef,undef,undef) = split(/\|\|/,$messages[-1]);
  227.     (undef,undef,$name_author,undef,undef,undef,$author_email,undef) = split(/\|\|/,$messages[0]);
  228.     $topic = $FORM{'topic'};
  229.  
  230.  
  231.     print "<a name=up></a>\n";
  232.     print "<table width=100% border=1 cellspacing=0 cellpadding=0 bordercolor=black>\n";
  233.     print "<tr>\n";
  234.     print "<td width=220 bgcolor=#eeeeee valign=top>\n";
  235.     print "<table><tr><td>\n";
  236.     print "<b>Subject of discussion:</b> $topic_name.<br>\n";
  237.     print "<b>Author of subject:</b>";
  238.     if($author_email ne '') {
  239.         print " <a href=mailto:$author_email>$name_author</a>";
  240.     }
  241.     else {
  242.         print " $name_author";
  243.     }
  244.     print "<br>\n<b>Last change:</b> $last_change.<br>\n";
  245.     print "<b>Answers:</b> $replies<br>\n";
  246.     print "<br>\n";
  247.     print "<br>\n";
  248.     print "<b>Transmit answer:</b><br><br>\n";
  249.     print "<form action=board.cgi method=POST>\n";
  250.     print "<b>Your name(nickname):</b><br>\n";
  251.     print "<input type=text name=name style=\"width: 210\"><br>\n";
  252.     print "<b>Your email(or the password if you are registered):</b><br>\n";
  253.     print "<input type=text name=email style=\"width: 210\"><br>\n";
  254.     print "<b>Message:</b><br>\n";
  255.     print "<textarea rows=10 name=message style=\"width: 210\"></textarea><br>\n";
  256.     print "<input type=hidden name=topic value=\"$topic\">\n";
  257.     print "<input type=hidden name=action value=reply_message>\n";
  258.     print "<input type=hidden name=theme value=$FORM{'theme'}>\n";
  259.     print "<input type=submit value=\"Transmit answer\">\n";
  260.     print "</form>\n";
  261.     print "</td></tr></table>\n";
  262.     print "<center><b>| <a href=board.cgi?action=view_topic&topic=$prev&theme=$FORM{'theme'}><<</a> | <a href=board.cgi>home</a> | <a href=board.cgi?action=view_topic&topic=$next&theme=$FORM{'theme'}>>></a> |</b></center><br><br>\n";
  263.     print "</td>\n";
  264.     print "<td bgcolor=#eeeeee valign=top>\n";
  265.     if ($rev_messages) { @messages = reverse(@messages); }
  266.     foreach $message (@messages) {
  267.         &change_smiles if $change_smiles = 1;
  268.         (undef,undef,$name,undef,$date,$message,$email,undef) = split(/\|\|/,$message);
  269.         print "<table cellspacing=1 cellpadding=3 border=0>\n";
  270.         print "<tr>\n";
  271.         print "<td bgcolor=#dddddd width=99%>";
  272.         if ($email ne '') {
  273.             print "<a href=mailto:$email>$name</a>";
  274.         }
  275.         else {
  276.             print $name;
  277.         }
  278.         print " ( $date ) </td>\n";
  279.         print "<td bgcolor=#dddddd>[<a href=#up>Up</a>]\n";
  280.         print "</td>\n";
  281.         print "</tr>\n";
  282.         print "<tr><td bgcolor=#eeeeee colspan=2><br>$message<br><br></td></tr>\n";
  283.         print "</table>\n";
  284.     }
  285.     print "</td></tr></table>\n<br><br><center>$copyright</center>";
  286.  
  287.     open(FOOT,"footer.txt");
  288.     @foot = <FOOT>;
  289.     close(FOOT);
  290.     foreach (@foot) {
  291.         print $_;
  292.     }
  293.  
  294.     exit;
  295.  
  296. }
  297.  
  298. sub register {
  299.  
  300.     print "Content-Type: text/html\n\n";
  301.     open(HEAD,"header.txt");
  302.     @head = <HEAD>;
  303.     close(HEAD);
  304.     foreach (@head) {
  305.         print $_;
  306.     }
  307.     print "<b>Registration</b><br><br>\n";
  308.     print "<table width=100% cellpadding=3 cellsapcing=1 border=0>\n";
  309.  
  310.     print "<form action=board.cgi method=post>\n";
  311.     print "<table ±ellspacing=1 cellpadding=3 border=0>\n";
  312.     print "<input type=hidden name=action value=register_try>\n";
  313.     print "<tr><td>Your name(nickname)<font color=red>*</font>: </td><td><input type=text name=name size=25></td></tr>";
  314.     print "<tr><td>Your email<font color=red>*</font>: </td><td><input type=text name=email size=25></td></tr>";
  315.     print "<tr><td>Your web-page: </td><td><input type=text name=homepage size=25></td></tr>";
  316.     print "<tr><td>Your ICQ: </td><td><input type=text name=icq size=25></td></tr>";
  317.     print "<tr><td>Password<font color=red>*</font>: </td><td><input type=password name=password size=25></td></tr>";
  318.     print "<tr><td>Repeat password<font color=red>*</font>: </td><td><input type=password name=password2 size=25></td></tr>";
  319.     print "<tr><td>Interests: </td><td><input type=text name=interests size=25></td></tr>";
  320.     print "<tr><td>Residence: </td><td><input type=text name=place size=25></td></tr>";
  321.     print "<tr><td colspan=2><center><input type=submit value=\"Register\"></center></td></tr>";
  322.     print "</table>\n";
  323.     print "</form>\n<font color=red>*</font> - mandatory fields for filling  .<br><br><center>$copyright</center>";
  324.     open(FOOT,"footer.txt");
  325.     @foot = <FOOT>;
  326.     close(FOOT);
  327.     foreach (@foot) {
  328.         print $_;
  329.     }
  330.     exit;
  331.  
  332. }
  333.  
  334. sub reg_apply {
  335.  
  336.  
  337.     chdir("users");
  338.     if (!(-e "$FORM{'name'}.cgi")) {
  339.         open(USER_PROFILE,">$FORM{'name'}.cgi");
  340.         print USER_PROFILE "$FORM{'name'}\n";
  341.         print USER_PROFILE "$FORM{'email'}\n";
  342.         print USER_PROFILE "$FORM{'homepage'}\n";
  343.         print USER_PROFILE "$FORM{'icq'}\n";
  344.         print USER_PROFILE "$FORM{'password'}\n";
  345.         print USER_PROFILE "$FORM{'interests'}\n";
  346.         print USER_PROFILE "$FORM{'place'}\n";
  347.         close(USER_PROFILE);
  348.     }
  349.     chdir("../");
  350.     print "Content-Type: text/html\n\n";
  351.     open(HEAD,"header.txt");
  352.     @head = <HEAD>;
  353.     close(HEAD);
  354.     foreach (@head) {
  355.         print $_;
  356.     }
  357.  
  358.     print "You have successfully registered. Your name: <b>$FORM{'name'}</b>, password: <b>$FORM{'password'}</b>\n<br><br><center>$copyright</center>";
  359.  
  360.     open(FOOT,"footer.txt");
  361.     @foot = <FOOT>;
  362.     close(FOOT);
  363.     foreach (@foot) {
  364.         print $_;
  365.     }
  366.  
  367.     exit;
  368.  
  369. }
  370.  
  371. sub change_profile {
  372.  
  373.     if (!($FORM{'step'})) {
  374.  
  375.         print "Content-Type: text/html\n\n";
  376.         open(HEAD,"header.txt");
  377.         @head = <HEAD>;
  378.         close(HEAD);
  379.         foreach (@head) {
  380.             print $_;
  381.         }
  382.         print "<b>Enter your name and password</b><br><br>\n";
  383.         print "<table width=100% cellpadding=3 cellsapcing=1 border=0>\n";
  384.  
  385.         print "<form action=board.cgi method=post>\n";
  386.         print "<table ±ellspacing=1 cellpadding=3 border=0>\n";
  387.         print "<input type=hidden name=action value=change_profile>\n";
  388.         print "<input type=hidden name=step value=2>\n";
  389.         print "<tr><td>Your name(nickname)<font color=red>*</font>: </td><td><input type=text name=name size=25></td></tr>";
  390.         print "<tr><td>Password<font color=red>*</font>: </td><td><input type=password name=password size=25></td></tr>";
  391.         print "<tr><td colspan=2><center><input type=submit value=\"Register\"></center></td></tr>";
  392.         print "</table>\n";
  393.         print "</form>\n<font color=red>*</font> - mandatory fields for filling.<br><br><center>$copyright</center>";
  394.         open(FOOT,"footer.txt");
  395.         @foot = <FOOT>;
  396.         close(FOOT);
  397.         foreach (@foot) {
  398.             print $_;
  399.         }
  400.         exit;
  401.     }
  402.     elsif($FORM{'step'} eq '2') {
  403.         open(USER_PROFILE,"users/$FORM{'name'}.cgi");
  404.         @data = <USER_PROFILE>;
  405.         close(USER_PROFILE);
  406.  
  407.         chomp($data[4]);
  408.  
  409.         if($FORM{'password'} ne $data[4]) {&error('Incorrect password');}
  410.  
  411.         print "Content-Type: text/html\n\n";
  412.         open(HEAD,"header.txt");
  413.         @head = <HEAD>;
  414.         close(HEAD);
  415.         foreach (@head) {
  416.             print $_;
  417.         }
  418.         print "<b>Change data</b><br><br>\n";
  419.         print "<table width=100% cellpadding=3 cellsapcing=1 border=0>\n";
  420.  
  421.         print "<form action=board.cgi method=post>\n";
  422.         print "<table ±ellspacing=1 cellpadding=3 border=0>\n";
  423.         print "<input type=hidden name=action value=change_profile>\n";
  424.         print "<input type=hidden name=step value=3>\n";
  425.         print "<input type=hidden name=name value=\"$data[0]\">";
  426.         print "<tr><td>Your email<font color=red>*</font>: </td><td><input type=text name=email size=25 value=\"$data[1]\"></td></tr>";
  427.         print "<tr><td>Your page: </td><td><input type=text name=homepage size=25 value=\"$data[2]\"></td></tr>";
  428.         print "<tr><td>Your ICQ: </td><td><input type=text name=icq size=25 value=\"$data[3]\"></td></tr>";
  429.         print "<tr><td>Password<font color=red>*</font>: </td><td><input type=password name=password size=25 value=\"$data[4]\"></td></tr>";
  430.         print "<tr><td>Repeat password<font color=red>*</font>: </td><td><input type=password name=password2 size=25 value=\"$data[4]\"></td></tr>";
  431.         print "<tr><td>Interests: </td><td><input type=text name=interests size=25 value=\"$data[5]\"></td></tr>";
  432.         print "<tr><td>Residence: </td><td><input type=text name=place size=25 value=\"$data[6]\"></td></tr>";
  433.         print "<tr><td colspan=2><center><input type=submit value=\"Change data\"></center></td></tr>";
  434.         print "</table>\n";
  435.         print "</form>\n<font color=red>*</font> - mandatory fields for filling.<br><br><center>$copyright</center>";
  436.         open(FOOT,"footer.txt");
  437.         @foot = <FOOT>;
  438.         close(FOOT);
  439.         foreach (@foot) {
  440.             print $_;
  441.         }
  442.         exit;
  443.     }
  444.     elsif ($FORM{'step'} eq '3') {
  445.  
  446.         chdir("users");
  447.         open(USER_PROFILE,">$FORM{'name'}.cgi");
  448.         print USER_PROFILE "$FORM{'name'}\n";
  449.         print USER_PROFILE "$FORM{'email'}\n";
  450.         print USER_PROFILE "$FORM{'homepage'}\n";
  451.         print USER_PROFILE "$FORM{'icq'}\n";
  452.         print USER_PROFILE "$FORM{'password'}\n";
  453.         print USER_PROFILE "$FORM{'interests'}\n";
  454.         print USER_PROFILE "$FORM{'place'}\n";
  455.         close(USER_PROFILE);
  456.         chdir("../");
  457.         print "Content-Type: text/html\n\n";
  458.         open(HEAD,"header.txt");
  459.         @head = <HEAD>;
  460.         close(HEAD);
  461.         foreach (@head) {
  462.             print $_;
  463.         }
  464.  
  465.         print "You have successfully changed the data. Your name: <b>$FORM{'name'}</b>, password: <b>$FORM{'password'}</b>\n<br><br><center>$copyright</center>";
  466.  
  467.         open(FOOT,"footer.txt");
  468.         @foot = <FOOT>;
  469.         close(FOOT);
  470.         foreach (@foot) {
  471.             print $_;
  472.         }
  473.  
  474.         exit;
  475.     }
  476.     else {exit;}
  477. }
  478.  
  479. sub install {
  480.     if($FORM{'password'} eq $password) {
  481.         foreach $key (keys(%forums)) {
  482.             mkdir($key,0777);
  483.         }
  484.     mkdir("users",0777);
  485.     print "Content-Type: text/html\n\n";
  486.     print "Installation is completed.";
  487.     }
  488.     exit;
  489. }
  490.  
  491. sub reply_message {
  492.  
  493.     ✓
  494.  
  495.     chdir("users");
  496.     open(USER_NAME,"$FORM{'name'}.cgi");
  497.     @data = <USER_NAME>;
  498.     chomp($data[4]);
  499.     chomp($data[1]);
  500.     if ($data[4] eq $FORM{'email'}) {
  501.         $FORM{'email'} = $data[1];
  502.     }
  503.     chdir("../");
  504.  
  505.     open(TOPICS,"+< $FORM{'theme'}.txt");
  506.     flock(TOPICS,2);
  507.     @topics = <TOPICS>;
  508.     $topic = $FORM{'topic'};
  509.     @topic_params = split(/\|\|/,$topics[$topic - 1]);
  510.     $topic_params[3]++;
  511.     $topic_params[4] = $time_post;
  512.     $topic_name = $topic_params[1];
  513.     $topics[$topic - 1] = join("||",@topic_params);
  514.     seek (TOPICS, 0, 0);
  515.     truncate (TOPICS,0);
  516.     print TOPICS @topics;
  517.     close(TOPICS);
  518.  
  519.     $FORM{'message'} =~ s/\n/<br>/g;
  520.  
  521.     open(TOPIC,">> $FORM{'theme'}/$topic");
  522.     print TOPIC "||$topic_name||$FORM{'name'}||1||$time_post||$FORM{'message'}||$FORM{'email'}||\n";
  523.     close(TOPIC);
  524.  
  525.     print "Content-Type: text/html\n\n";
  526.     open(HEAD,"header.txt");
  527.     @head = <HEAD>;
  528.     close(HEAD);
  529.     foreach (@head) {
  530.         print $_;
  531.     }
  532.  
  533.     print "Answer to a subject <b>$topic_name</b>was added by you $time_post\n<br><br><center>$copyright</center>";
  534.  
  535.     open(FOOT,"footer.txt");
  536.     @foot = <FOOT>;
  537.     close(FOOT);
  538.     foreach (@foot) {
  539.         print $_;
  540.     }
  541.  
  542.     exit;
  543.  
  544. }
  545.  
  546. sub change_smiles {
  547.  
  548.     $message =~ s/:[\)]+/<IMG SRC="smile.gif">/g;
  549.     $message =~ s/:\(/<IMG SRC="frown.gif">/g;
  550.     $message =~ s/\:D/<IMG SRC="biggrin.gif">/g;
  551.     $message =~ s/\;[\)]+/<IMG SRC="wink.gif">/g;
  552.     $message =~ s/\:o/<IMG SRC="redface.gif">/g;
  553.  
  554. }
  555.  
  556. sub check {
  557.  
  558.     if ($FORM{'name'} ne '') {
  559.           $name = $FORM{'name'};
  560.           $name =~ s/"//g;
  561.           $name =~ s/<//g;
  562.           $name =~ s/>//g;
  563.           $name =~ s/\&//g;
  564.           $FORM{'name'} = $name;
  565.     }
  566.     else {$FORM{'name'} = '[Anonim]';}
  567.  
  568.     if ($FORM{'topic'} ne '') {
  569.         $topic = "$FORM{'topic'}";
  570.         $topic =~ s/\&/\&\;/g;
  571.         $topic =~ s/"/\"\;/g;
  572.         $FORM{'topic'} = $topic;
  573.     }
  574.     else {
  575.         &error('You have not entered a subject.');
  576.     }
  577.  
  578.     if (!($FORM{'message'} ne '')) {
  579.         &error('You have not entered the text of the message.');
  580.     }
  581.  
  582. }
  583.  
  584. sub error {
  585.  
  586. $err = $_[0];
  587.  
  588.     print "Content-Type: text/html\n\n";
  589.     print "<html>\n";
  590.     print "<head>\n";
  591.     print "<title>$board_name error</title>\n";
  592.     print "<style>\n";
  593.     print "BODY {font-family: Tahoma; font-size: 11}\n";
  594.     print "</style>\n";
  595.     print "</head>\n";
  596.     print "<body>\n";
  597.     print "<center>\n";
  598.     print "<font size=2 face=Tahoma>$err</font>\n<br><br><center>$copyright</center>";
  599.     print "</center>\n";
  600.     print "</body>\n";
  601.     print "</html>\n";
  602.  
  603.     exit;
  604.  
  605. }
  606.  
  607.