Can you find the bugs in this code.
FILE: chat.html
<HTML>
<HEAD>
<TITLE>Chat-room</TITLE>
</HEAD>
<BODY BGCOLOR="white" TEXT="black">
<FORM NAME="login" ACTION="cgi-bin/login.pl" METHOD=POST>
Pseudo: <INPUT TYPE=TEXT NAME="pseudo" VALUE=""><BR>
ASV: <INPUT TYPE=TEXT NAME="asv" VALUE=""><BR>
<INPUT TYPE=SUBMIT NAME="submit" VALUE="Log in"><INPUT TYPE=RESET VALUE="Annuler"><BR>
</FORM>
</BODY>
</HTML>
FILE: cgi-bin/CHAT.PL
#!/usr/local/bin/perl
#
$domain="
www.aees.misc.ulg.ac.be/";
$path="
http://$domain";
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;
}
print <<EnTete;
Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//FR">
<HTML>
<HEAD>
<TITLE>Chat-room</TITLE>
</HEAD>
<BODY BGCOLOR="white" TEXT="black">
<FORM NAME="chat" ACTION="$path/cgi-bin/chat
.pl" METHOD=POST>
<INPUT TYPE=HIDDEN NAME="pseudo" VALUE="$FORM{pseudo}">
<INPUT TYPE=HIDDEN NAME="asv" VALUE="$FORM{asv}">
Message: <INPUT TYPE=TEXT NAME="msg" VALUE=""><BR>
Couleur: #<INPUT TYPE=TEXT NAME="R" VALUE="00" SIZE=2 MAXSIZE=2><INPUT TYPE=TEXT NAME="G" VALUE="00" SIZE=2 MAXSIZE=2><INPUT TYPE=TEXT NAME="B" VALUE="00" SIZE=2 MAXSIZE=2><BR>
<INPUT TYPE=SUBMIT NAME="Submit" VALUE="Envoyer"><INPUT TYPE=RESET NAME="reset" VALUE="Annuler"><BR>
</FORM><BR><A HREF="$path/cgi-bin/quit.p
l">Quitter
</A><BR>
<HR WIDTH="100%"><BR>
<TABLE BORDER=0>
EnTete
open(MSG,">>msg.dat") || die $!;
#Faut-il faire précéder msg.dat de cgi-bin???
if($FORM{message} ne "")
{
print MSG "$FORM{pseudo}|$FORM{asv}|
#$FORM{R}$
FORM{G}$FO
RM{B}|$FOR
M{message}
\n";
}
close(MSG);
open(MSG,"<msg.dat") || die $!;
while(!EOF)
{
$message=<MSG>;
($pseudo, $asv, $color, $texte) = split(/|/, $message);
if($message!="")
{
print <<Contenu;
<TR><TD BGCOLOR="lightblue"><CENTE
R><B>$pseu
do</B><BR>
$asv</CENT
ER></TD><T
D><FONT COLOR="$color">$message</F
ONT></TD><
/TR>
Contenu
}
}
close(MSG);
print <<Fin;
</TABLE><BR>
</BODY>
</HTML>
Fin
FILE: cgi-bin/LOGIN.PL
#!/usr/local/bin/perl
#
$domain="
www.aees.misc.ulg.ac.be";
$path="
http://$domain";
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;
}
print <<EnTete;
Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//FR">
<HTML>
<HEAD>
<TITLE>Chat-room</TITLE>
</HEAD>
<BODY BGCOLOR="white" TEXT="black">
<FORM NAME="chat" ACTION="$path/cgi-bin/chat
.pl" METHOD="POST">
<INPUT TYPE=HIDDEN NAME="pseudo" VALUE="$FORM{pseudo}">
<INPUT TYPE=HIDDEN NAME="asv" VALUE="$FORM{asv}">
Message: <INPUT TYPE=TEXT NAME="msg" VALUE=""><BR>
Couleur: #<INPUT TYPE=TEXT NAME="R" VALUE="00" SIZE=2 MAXSIZE=2><INPUT TYPE=TEXT NAME="G" VALUE="00" SIZE=2 MAXSIZE=2><INPUT TYPE=TEXT NAME="B" VALUE="00" SIZE=2 MAXSIZE=2><BR>
<INPUT TYPE=SUBMIT NAME="Submit" VALUE="Envoyer"><INPUT TYPE=RESET NAME="reset" VALUE="Annuler"><BR>
</FORM><BR><A HREF="$path/cgi-bin/quit.p
l">Quitter
</A><BR>
<HR WIDTH="100%"><BR>
<TABLE BORDER=0>
EnTete
open(MSG,">>msg.dat") || die $!;
if($FORM{message} ne "")
{
print MSG "$FORM{pseudo}|$FORM{asv}|
#000000|$F
ORM{pseudo
} est entr& dans la salle.\n";
}
close(MSG);
open(MSG,"<msg.dat") || die $!;
while(!EOF)
{
$message=<MSG>;
($pseudo, $asv, $color, $texte) = split(/|/, $message);
print <<Contenu;
<TR><TD BGCOLOR="lightblue"><CENTE
R><B>$pseu
do</B><BR>
$asv</CENT
ER></TD><T
D><FONT COLOR="$color">$message</F
ONT></TD><
/TR>
Contenu
}
close(MSG);
print <<Fin;
</TABLE><BR>
</BODY>
</HTML>
Fin
FILE: cgi-bin/QUIT.PL
#!/usr/local/bin/perl
#
$domain="
www.aees.misc.ulg.ac.be";
$path="
http://$domain";
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;
}
print <<EnTete;
Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//FR">
<HTML>
<HEAD>
<TITLE>Chat-room</TITLE>
</HEAD>
<BODY BGCOLOR="white" TEXT="black">
<P>Au revoir.</P>
<A HREF="$path/chat.html">Ret
our</A><BR
>
EnTete
open(MSG,">>msg.dat") || die $!;
if($FORM{'message'}!="")
{
print MSG "$FORM{pseudo}|$FORM{asv}|
$FORM{pseu
do} a quitté la salle.\n";
}
close(MSG);
print "</BODY></HTML>\n";
FILE: cgi-bin/MSG.DAT
Webmaster|00/X/Server|#FF0
000|Welcom
e to the chat-room
Thanks.