annotate cgi-bin/comments.cgi @ 99:cd27fd555272

Use a better date + time format.
author Steve Kemp <steve@steve.org.uk>
date Wed, 12 Dec 2007 17:33:22 +0000
parents 3d8b0e615bf3
children a25099606ec5
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;
99
cd27fd555272 Use a better date + time format.
Steve Kemp <steve@steve.org.uk>
parents: 98
diff changeset
17
98
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
18 use CGI;
99
cd27fd555272 Use a better date + time format.
Steve Kemp <steve@steve.org.uk>
parents: 98
diff changeset
19 use POSIX qw(strftime);
cd27fd555272 Use a better date + time format.
Steve Kemp <steve@steve.org.uk>
parents: 98
diff changeset
20
cd27fd555272 Use a better date + time format.
Steve Kemp <steve@steve.org.uk>
parents: 98
diff changeset
21
98
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
22
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
23 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
24 # The directory to store comments in
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
25 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
26 my $COMMENT = $ENV{'DOCUMENT_ROOT'} . "../comments/";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
27
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
28
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
29 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
30 # Get the parameters from the request.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
31 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
32 my $cgi = new CGI();
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
33 my $name = $cgi->param('name') || undef;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
34 my $mail = $cgi->param('mail') || undef;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
35 my $body = $cgi->param('body') || undef;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
36 my $id = $cgi->param('id') || undef;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
37
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
38
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
39 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
40 # If any are missing just redirect back to the blog homepage.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
41 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
42 if ( !defined( $name ) || !length( $name ) ||
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
43 !defined( $mail ) || !length( $mail ) ||
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
44 !defined( $body ) || !length( $body ) ||
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
45 !defined( $id ) || !length( $id ) )
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
46 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
47 print "Location: http://" . $ENV{'HTTP_HOST'} . "/\n\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
48 exit;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
49 }
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 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
53 # Otherwise save them away.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
54 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
55 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
56 # ID.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
57 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
58 if ( $id =~ /^(.*)[\/\\](.*)$/ ){
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
59 $id=$2;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
60 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
61
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
62
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
63 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
64 # get the current time
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
65 #
99
cd27fd555272 Use a better date + time format.
Steve Kemp <steve@steve.org.uk>
parents: 98
diff changeset
66 my $timestr = strftime "%e-%B-%Y-%H:%M:%S", gmtime;
98
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
67
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
68 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
69 # Open the file.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
70 #
99
cd27fd555272 Use a better date + time format.
Steve Kemp <steve@steve.org.uk>
parents: 98
diff changeset
71 my $file = $COMMENT . "/" . $id . "." . $timestr;
98
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
72 open( FILE, ">", $file );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
73 print FILE "Name: $name\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
74 print FILE "Mail: $mail\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
75 print FILE "User-Agent: $ENV{'HTTP_USER_AGENT'}\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
76 print FILE "IP-Address: $ENV{'REMOTE_ADDR'}\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
77 print FILE "\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
78 print FILE $body;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
79 close( FILE );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
80
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
81 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
82 # Now show the user the thanks message..
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
83 #
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
84 print "Content-type: text/html\n\n";
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
85 print <<EOF;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
86 <html>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
87 <head>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
88 <title>Thanks For Your Comment</title>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
89 </head>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
90 <body>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
91 <h2>Thanks!</h2>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
92 <p>Your comment will be included the next time this blog is rebuilt.</p>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
93 <p><a href="http://$ENV{'HTTP_HOST'}/">Return to blog</a>.</p>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
94 </body>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
95 </html>
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
96 EOF
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
97