⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forum.pl

📁 PERL语言资料 可以用于PERL程序设计
💻 PL
字号:
#!perl
# Fig. 22.38: forum.pl
# Display forum postings for non-XSL browser

use warnings;
use strict;
use CGI qw( :standard *center *table );
use XML::Parser;
use Fcntl qw( :flock );

print( redirect( "error.html" ) ) if not param();

my ( $file, $parser, %info );

$file = param( "file" );
$file  =~ /^\w+\.xml$/ or die( "Not a valid file: $!" );
open( FORUM, "../htdocs/XML/$file" ) or 
   die( "Could not open: $!" );
flock( FORUM, LOCK_SH );

$parser = new XML::Parser( Style    => "Subs",
                           Handlers => { Char => \&text } );
$parser->parse( \*FORUM );
close( FORUM );

sub forum
{
   print( header );
}

sub forum_
{
   print( br, start_center,
      a( { -href => "/cgi-bin/addPost.pl?file=$file" },
           "Post a Message" ),
      br, br,
      a( { -href => "/cgi-bin/default.pl" }, 
           "Return to Main Page" ),
      end_center, end_html );
}

sub name_
{
   print( start_html( -title => $info{ "name" },
      -style => { -src => "/XML/site.css" } ),
      start_table( { -width       => "100%",
                     -cellspacing => "0",
                     -cellpadding => "2"    } ),

      Tr( td( { -class => "forumTitle" }, $info{ "name" } ) ),
      end_table, br );
}

sub message
{
   my ( $expat, $element, %attributes ) = @_;
   $info{ "date" } = $attributes{ "timestamp" };
}

sub message_
{
   print( start_table( { -width       => "100%",
      -cellspacing => "0",
      -cellpadding => "2"     } ),       
      Tr( [ td( { -class   => "msgTitle" }, $info{ "title" } ),
         td( { -class   => "msgInfo"  }, 
             " by " . em( $info{ "user" } ) . " at " .
             span( { -class => "date" }, $info{ "date" } ) ),
         td( { -class   => "msgText"  }, $info{ "text" } ) ] ),
      end_table );
}
                                                    
sub text
{
   my ( $expat, $string ) = @_;
   $info{ $expat->current_element } = $string;
}

 ########################################################################## 
 # (C) Copyright 2001 by Deitel & Associates, Inc. and Prentice Hall.     #
 # All Rights Reserved.                                                   #
 #                                                                        #
 # DISCLAIMER: The authors and publisher of this book have used their     #
 # best efforts in preparing the book. These efforts include the          #
 # development, research, and testing of the theories and programs        #
 # to determine their effectiveness. The authors and publisher make       #
 # no warranty of any kind, expressed or implied, with regard to these    #
 # programs or to the documentation contained in these books. The authors #
 # and publisher shall not be liable in any event for incidental or       #
 # consequential damages in connection with, or arising out of, the       #
 # furnishing, performance, or use of these programs.                     #
 ##########################################################################

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -