addforum.pl
来自「PERL语言资料 可以用于PERL程序设计」· PL 代码 · 共 80 行
PL
80 行
#!perl
# Fig. 22.34: addForum.pl
# Adds a forum to the list
use warnings;
use strict;
use CGI qw( :standard );
use XML::DOM;
use Fcntl qw( :flock :DEFAULT );
if ( param ) {
my ( $parser, $document, $forums, $forum, $name );
my ( $file, $newfile ) = ( "forums.xml", param( "filename" ) );
$newfile =~ /^\w+\.xml$/ or die( "Not a valid file: $!" );
sysopen( NEW, "../htdocs/XML/$newfile", O_WRONLY|O_EXCL|O_CREAT )
or die( "Could not create: $!" );
open( FORUMS, "+<../htdocs/XML/$file" ) or
die( "Could not open: $!" );
flock( FORUMS, LOCK_EX );
$parser = new XML::DOM::Parser;
$document = $parser->parse( \*FORUMS );
$forums = $document->getDocumentElement;
$forum = $document->createElement( "forum" );
$forum->setAttribute( "filename", $newfile );
$forums->insertBefore( $forum, $forums->getFirstChild );
$name = $document->createElement( "name" );
$name->addText( param( "name" ) );
$forum->appendChild( $name );
seek( FORUMS, 0, 0 );
truncate( FORUMS, 0 );
$document->print( \*FORUMS );
close( FORUMS );
$document = $parser->parsefile( "../htdocs/XML/template.xml" );
$forum = $document->getDocumentElement;
$forum->setAttribute( "file", $newfile );
$name = $document->createElement( "name" );
$name->addText( param( "name" ) );
$forum->appendChild( $name );
$document->print( \*NEW );
close( NEW );
print( redirect( "default.pl" ) );
}
else {
print( header, start_html( -title => "Add a forum",
-style => { -src => "/XML/site.css" } ) );
print( start_form(),
"Forum Name", br(),
textfield( -name => "name", -size => 40 ), br(),
"Forum File Name", br(),
textfield( -name => "filename", -size => 40 ), br(),
submit( -name => "submit", value => "Submit" ),
reset(), end_form(),
a( { -href => "/cgi-bin/default.pl" }, "Return to Main Page" ),
end_html() );
}
##########################################################################
# (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 + =
减小字号Ctrl + -
显示快捷键?