Article View: pl.comp.lang.java
Article #750Problem z CGI-script !!!!!!!!!!!!!!!!!!!!!!!
From: Jarek
Date: Wed, 16 Jul 1997 13:57
Date: Wed, 16 Jul 1997 13:57
299 lines
9068 bytes
9068 bytes
Mam problem z zainstalowaniem skryptu CGI mam prosbe jezeli ktos bawil sie w cos takiego
to prosze o przerobienie ponizszego skryptu .
Moje objawy to :
1 utworzylem katalog "xxx" na c:
2 z ponizszego textu utworzylem pliki questbook.html i questbook.cgi
3 przy wysylaniu formulaza z questbook.html IE3.0 uswiadamia mi iz nie rozpoznaje
rozszezenia CGI, i d... blada.
Dzieki za wszelka pomoc.
Jarek stix@hotmail.com
zapraszam na moja strone
www.free.polbox.pl/s/stixland
----------------------------------------------------------------------------------------------------------------------------------------------------------
-poczatek HTML-
<HTML>
<HEAD>
<TITLE> </TITLE>
</HEAD>
<BODY>
<h1> Księga Gości </h1>
<FORM ACTION="./cgi-bin/guestbook.cgi" METHOD="post">
<pre>
Twój Email :<INPUT TYPE="text" NAME="username">
Twoje Imię :<INPUT TYPE="text" NAME="realname">
Miasto :<INPUT TYPE="text" NAME="city"> Województwo: <INPUT TYPE="text"
NAME="state" SIZE=3>
Kraj :<INPUT TYPE="text" NAME="country" VALUE="POL" SIZE=3>
Komentarz :<TEXTAREA NAME ="" ROWS=6 COLS=60> </TEXTAREA>
<p>
<INPUT TYPE="submit" VALUE="Wyślij"><INPUT TYPE="reset" VALUE="Wykasuj">
</FORM>
</pre>
</BODY>
</HTML>
Koniec HTML
poczatek questbook.CGI
$server = "http://.../.../.../";
$guestbookurl = "guestbook.html";
$guestbookreal = "guestbk.html";
$guestlog = "guestlog.html";
$cgiurl = "/cgi-bin/guestbook.cgi";
$mail = 1; # 1 = Yes; 0 = No
$uselog = 1; # 1 = Yes; 0 = No
$linkmail = 1; # 1 = Yes; 0 = No
$separator = 1; # 1 = <hr>; 0 = <p>
$redirection = 0; # 1 = Yes; 0 = No
$date = `date +"%A, %B %d, %Y at %T (%Z)"`;
chop($date);
$shortdate = `date +"%D %T %Z"`;
chop($shortdate);
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
# Un-Webify plus signs and %-encoding
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# Stop people from using subshells to execute commands
# Not a big deal when using sendmail, but very important
# when using UCB mail (aka mailx).
# $value =~ s/~!/ ~!/g;
# Uncomment for debugging purposes
# print "Setting $name to $value<P>";
$FORM{$name} = $value;
}
&no_comments unless $FORM{'comments'};
&no_name unless $FORM{'realname'};
# Begin the Editing of the Guestbook File
open (FILE,"$guestbookreal");
@LINES=<FILE>;
close(FILE);
$SIZE=@LINES;
# Open Link File to Output
open (GUEST,">$guestbookreal");
for ($i=0;$i<=$SIZE;$i++) {
$_=$LINES[$i];
if (/<META begin>/) {
print GUEST "<META begin>\n";
print GUEST "<b>$FORM{'comments'}</b><br>\n";
print GUEST "$FORM{'realname'}";
if ( $FORM{'username'} ){
if ($linkmail eq '1') {
print GUEST " (<a href=\"mailto:$FORM{'username'}\">$FORM{'username'})</a>";
}
else {
print GUEST " ($FORM{'username'})";
}
}
print GUEST "<br>\n";
if ( $FORM{'city'} ){
print GUEST "$FORM{'city'},";
}
if ( $FORM{'state'} ){
print GUEST " $FORM{'state'}";
}
if ( $FORM{'country'} ){
print GUEST " $FORM{'country'}";
}
if ($separator eq '1') {
print GUEST " - $date<hr>\n\n";
}
else {
print GUEST " - $date<p>\n\n";
}
}
else { print GUEST $_; }
}
close (GUEST);
# Log The Entry
if ($uselog eq '1') {
open (LOG, ">>$guestlog");
print LOG "$ENV{'REMOTE_HOST'} - [$shortdate]<br>\n";
close (LOG);
}
##############
# Sub Routines
sub no_comments
{
print "Content-type: text/html\n\n";
print "<html><head><title>No Comments</title></head>\n";
print "<body><h1>Your Comments appear to be blank</h1>\n";
print "The comment section in the guestbook fillout form appears to be blank and therefore the
Guestbook Addition was not added. Please enter your comments below.<p>\n";
print "<form method=POST action=\"$server$cgiurl\">\n";
print "Your Name:<input type=text name=\"realname\" size=30
value=\"$FORM{'realname'}\"><br>\n";
print "E-Mail: <input type=text name=\"username\" value=\"$FORM{'username'}\"
size=40><br>\n";
print "City: <input type=text name=\"city\" value=\"$FORM{'city'}\" size=15>, State: <input
type=text name=\"state\" value=\"$FORM{'state'}\" size=2> Country: <input type=text value=USA
name=\"country\" value=\"$FORM{'country'}\" size=15><p>\n";
print "Comments:<br>\n";
print "<textarea name=\"comments\" COLS=60 ROWS=4></textarea><p>\n";
print "<input type=submit> * <input type=reset></form><hr>\n";
print "Return to the <a href=$server$guestbook>Guestbook</a>.\n";
print "</body></html>\n";
# Log The Error
if ($uselog eq '1') {
open (LOG, ">>$guestlog");
print LOG "$ENV{'REMOTE_HOST'} - [$shortdate] <b>ERR</b> - No Comments<br>\n";
close (LOG);
}
exit;
}
sub no_name
{
print "Content-type: text/html\n\n";
print "<html><head><title>No Name</title></head>\n";
print "<body><h1>Your Name appears to be blank</h1>\n";
print "The Name Section in the guestbook fillout form appears to be blank and therefore your
entry to the guestbook was not added. Please add your name in the blank below.<p>\n";
print "<form method=POST action=\"$server$cgiurl\">\n";
print "Your Name:<input type=text name=\"realname\" size=30><br>\n";
print "E-Mail: <input type=text name=\"username\" value=\"$FORM{'username'}\"
size=40><br>\n";
print "City: <input type=text name=\"city\" value=\"$FORM{'city'}\" size=15>, State: <input
type=text name=\"state\" value=\"$FORM{'state'}\" size=2> Country: <input type=text value=USA
name=\"country\" value=\"$FORM{'country'}\" size=15><p>\n";
print "Comments have been retained.<p>\n";
print "<input type=hidden name=\"comments\" value=\"$FORM{'comments'}\">\n";
print "<input type=submit> * <input type=reset><hr>\n";
print "Return to the <a href=$server$guestbook>Guestbook</a>.\n";
print "</body></html>\n";
# Log The Error
if ($uselog eq '1') {
open (LOG, ">>$guestlog");
print LOG "$ENV{'REMOTE_HOST'} - [$shortdate] <b>ERR</b> - No Name<br>\n";
close (LOG);
}
exit;
}
#########
# Options
# Mail Option
if ($mail eq '1') {
open (MAIL, "|$mailprog $recipient") || die "Can't open $mailprog!\n";
print MAIL "Reply-to: $FORM{'username'} ($FORM{'realname'}\n";
print MAIL "From: $FORM{'username'} ($FORM{'realname'}\n";
print MAIL "Subject: Entry to Guestbook\n\n";
print MAIL "You have a new entry in your guestbook:\n\n";
print MAIL "------------------------------------------------------------\n";
print MAIL "$FORM{'comments'}\n";
print MAIL "$FORM{'realname'}";
if ( $FORM{'username'} ){
print MAIL " ($FORM{'username'})";
}
print MAIL "\n";
if ( $FORM{'city'} ){
print MAIL "$FORM{'city'},";
}
if ( $FORM{'state'} ){
print MAIL " $FORM{'state'}";
}
if ( $FORM{'country'} ){
print MAIL " $FORM{'country'}";
}
print MAIL " - $date\n";
print MAIL "----------------------------------------------------------\n";
close (MAIL);
}
# Print Out Initial Output Location Heading
if ($redirection eq '1') {
print "Location: $server$guestbookurl\n\n";
}
else { &redirection }
# Redirection Option
sub redirection
{
# Print Beginning of HTML
print "Content-Type: text/html\n\n";
print "<html><head><title>Thank You</title></head>\n";
print "<body><h1>Thank You For Signing Our Guestbook</h1>\n";
# Print Response
print "Thank you for filling in our guestbook. Your entry has been added to the
guestbook.<hr>\n";
print "Here is what you submitted:<p>\n";
print "<b>$FORM{'comments'}</b><br>\n";
print "$FORM{'realname'}";
if ( $FORM{'username'} ){
if ($linkmail eq '1') {
print " (<a href=\"mailto:$FORM{'username'}\">$FORM{'username'}</a>)";
}
else { print " ($FORM{'username'})" }
}
print "<br>\n";
if ( $FORM{'city'} ){
print "$FORM{'city'},";
}
if ( $FORM{'state'} ){
print " $FORM{'state'}";
}
if ( $FORM{'country'} ){
print " $FORM{'country'}";
}
print " - $date<p>\n";
# Print End of HTML
print "<hr>\n";
print "* <a href=$server$guestbookurl>Back to the Guestbook</a> - You may need to reload it
when you get there to see your entry.\n";
print "</body></html>\n";
exit;
}
Technical Details
Message-ID:
<5qik0p$91i$1@helios.man.lublin.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!lublin.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!lublin.pl!not-for-mail From: stix@hotmail.com (Jarek) Newsgroups: pl.comp.lang.java Subject: Problem z CGI-script !!!!!!!!!!!!!!!!!!!!!!! Date: 16 Jul 1997 13:57:45 GMT Organization: stix Lines: 288 Distribution: world Message-ID: <5qik0p$91i$1@helios.man.lublin.pl> NNTP-Posting-Host: rap2-wct176.katowice.tpnet.pl X-Newsreader: News for Windows NT X1.0-93 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit