Ik wil een eenvoudig cgi-script aan een formulier koppelen. Maar het lukt me niet helemaal. Wat heb ik al?
Het HTML-document
En het CGI-script
Als FTP-programma gebruik ik WS_FTP.
Ik heb wel iets gelezen over permissions.
chmod 755 guestbook.cgi
chmod 644 guestbook.html
Maar ik heb geen idee wat het inhoudt.
Wie zou mij kort even uit kunnen leggen, wat ik fout doe?
Het HTML-document
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <HTML> <HEAD> <TITLE>Guestbook Script</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <FORM METHOD="post" ACTION="cgi-bin/guestbook.cgi"> <INPUT NAME="name" SIZE=50 TYPE="text"> <B>Your Name</B><BR> <INPUT NAME="email" SIZE=50 TYPE="text"> <B>Your E-Mail Address</B><BR> <INPUT TYPE="hidden" NAME="submitaddress" VALUE="mijnemail@mijnhost.com"> <B>Write to me below:</B><P> <TEXTAREA NAME="feedback" ROWS=10 COLS=50></TEXTAREA><P> <CENTER> <INPUT TYPE=submit VALUE="SEND"> <INPUT TYPE=reset VALUE="CLEAR"> </CENTER> </FORM> </BODY> </HTML> |
En het CGI-script
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| #!/usr/bin/perl
# That is the path to PERL just above It MUST be first in the script
# The following accepts the data from the form
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
# The following sends the email
open (MESSAGE,"| /usr/lib/sendmail -t");
print MESSAGE "To: $FORM{submitaddress}\n";
print MESSAGE "From: $FORM{name}\n";
print MESSAGE "Reply-To: $FORM{email}\n";
print MESSAGE "Subject: Feedback from $FORM{name} at $ENV{'REMOTE_HOST'}\n\n";
print MESSAGE "The user wrote:\n\n";
print MESSAGE "$FORM{feedback}\n";
close (MESSAGE);
&thank_you;
}
#The following creates the Thank You page display
sub thank_you {
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>Thank You!</TITLE>\n";
print "</HEAD>\n";
print "<BODY BGCOLOR=#FFFFCC TEXT=#000000>\n";
print "<H1>Thank You!</H1>\n";
print "\n";
print "<P>\n";
print "<H3>Your feedback is greatly appreciated.<BR>\n";
print "<P>\n";
print "</BODY>\n";
print "</HTML>\n";
exit(0);
} |
Als FTP-programma gebruik ik WS_FTP.
Ik heb wel iets gelezen over permissions.
chmod 755 guestbook.cgi
chmod 644 guestbook.html
Maar ik heb geen idee wat het inhoudt.
Wie zou mij kort even uit kunnen leggen, wat ik fout doe?
Before me there was many, after me there will be none. I'm the one!