annotate cgi-bin/comments.cgi @ 98:3d8b0e615bf3

Added.
author Steve Kemp <steve@steve.org.uk>
date Wed, 12 Dec 2007 17:28:29 +0000
parents
children cd27fd555272
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
98
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
1 #!/usr/bin/perl -w
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
2 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
3 # This is a simple script which is designed to accept POST request,
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
4 # of comments to a series of text files.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
5 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
6 # This code is very simple and should be easy to extend with anti-spam
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
7 # at a later point.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
8 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
9 # Steve
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
10 # --
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
11 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
12
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
13
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
14
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
15 use strict;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
16 use warnings;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
17 use CGI;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
18
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
19 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
20 # The directory to store comments in
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
21 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
22 my $COMMENT = $ENV{'DOCUMENT_ROOT'} . "../comments/";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
23
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
24
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
25 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
26 # Get the parameters from the request.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
27 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
28 my $cgi = new CGI();
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
29 my $name = $cgi->param('name') || undef;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
30 my $mail = $cgi->param('mail') || undef;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
31 my $body = $cgi->param('body') || undef;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
32 my $id = $cgi->param('id') || undef;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
33
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
34
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
35 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
36 # If any are missing just redirect back to the blog homepage.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
37 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
38 if ( !defined( $name ) || !length( $name ) ||
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
39 !defined( $mail ) || !length( $mail ) ||
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
40 !defined( $body ) || !length( $body ) ||
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
41 !defined( $id ) || !length( $id ) )
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
42 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
43 print "Location: http://" . $ENV{'HTTP_HOST'} . "/\n\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
44 exit;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
45 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
46
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
47
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
48 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
49 # Otherwise save them away.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
50 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
51 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
52 # ID.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
53 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
54 if ( $id =~ /^(.*)[\/\\](.*)$/ ){
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
55 $id=$2;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
56 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
57
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
58
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
59 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
60 # get the current time
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
61 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
62 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
63 localtime(time);
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
64
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
65 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
66 # Open the file.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
67 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
68 my $file = $COMMENT . "/" . $id . "." . "$mday-$mon-$year-$hour-$min-$sec";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
69 open( FILE, ">", $file );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
70 print FILE "Name: $name\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
71 print FILE "Mail: $mail\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
72 print FILE "User-Agent: $ENV{'HTTP_USER_AGENT'}\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
73 print FILE "IP-Address: $ENV{'REMOTE_ADDR'}\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
74 print FILE "\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
75 print FILE $body;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
76 close( FILE );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
77
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
78 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
79 # Now show the user the thanks message..
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
80 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
81 print "Content-type: text/html\n\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
82 print <<EOF;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
83 <html>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
84 <head>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
85 <title>Thanks For Your Comment</title>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
86 </head>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
87 <body>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
88 <h2>Thanks!</h2>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
89 <p>Your comment will be included the next time this blog is rebuilt.</p>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
90 <p><a href="http://$ENV{'HTTP_HOST'}/">Return to blog</a>.</p>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
91 </body>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
92 </html>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
93 EOF
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
94