Obrigado por tentar me ajudar. Muito Obrigado .
Acho que com a sua ajuda j� consegui fazer O Apache ler os scripts na pasta
/home/httpd/cgi-bin, mas ainda n�o consegui a prova concreta, pois continuo
recebendo Internal Server Error.
Eu explico:
� que o erro que aparece no error.log, em /var/log/httpd/ mudou, agora �:
syntax error at /home/httpd/cgi-bin/chat.cgi line 38, near ""look") "
Unrecognized character \xA1 at /home/httpd/cgi-bin/chat.cgi line 110.
[Fri Jun 1 17:04:42 2001] [error] [client 127.0.0.1] Premature end of script
headers: /home/httpd/cgi-bin/chat.cgi
Presumo que isso queira dizer que a leitura de cgis no /home/httpd/cgi-bin/
j� est� habilitada, e correta, estando o probelma do Internal Server error
pr�prio chat.cgi.
� isso mesmo n�?
� estranho, pois no servidor onde hospedo o site nunca deu este problema.
Se vc, ou algu�m da lista ainda tiver paci�ncia, mando a trascri��o das
linhas 38 e 110 do chat.cgi, bem como o arq. return_message.cgi, a que se
refere a linha 38 do chat.cgi.
No final, coloquei inteiro o chat.cgi tbm...
Agrade�o qualquer ajuda.
Mais uma vez, Obrigado.
Linha 38 do chat.cgi:
}
elsif ($job eq "look"){
do 'return_message.cgi'; "look") { (esta � linha 38)
do 'return_message.cgi';
&return_message;
}
Linha 110 do chat.cgi
else {
$FORM{$_[0]}=$_[1];
}
}
##########
{$_[0]}��$_[1]"; (esta � a linha 110)
}
Script inteiro do chat.cgi, e abaixo o script inteiro do return_message.cgi
#!/usr/bin/perl
################
# SetUp Begin
require "config.txt";
# SetUp End
#############
$|=1;
print "Content-type: text/html;\n\n";
$userlevel =1;
$allow_html=1;
$exist ="no";
$allow_html=1 if ($userlevel>=$level_html);
&get_form;
&set_var;
if ($job eq "login") {
do 'write_online.cgi';
do 'write_message.cgi';
do 'whole.cgi';
&write_online("online");
&write_message("login") if ($exist eq "no");
&return_whole;
}
elsif ($job eq "logout") {
do 'write_online.cgi';
do 'write_message.cgi';
do 'logout.cgi';
&write_online("outline");
&write_message("logout") if ($exist ne "no");
&return_logout;
}
elsif ($job eq "look"){
do 'return_message.cgi'; "look") {
do 'return_message.cgi';
&return_message;
}
elsif ($job eq "says") {
do 'write_message.cgi';
do 'return_message.cgi';
&write_message("says");
&return_message;
}
elsif ($job eq "online") {
do 'write_online.cgi';
do 'return_online.cgi';
&write_online(online);
&return_online;
}
elsif ($job eq "adver") {
do 'adver.cgi';
&return_adver;
}
elsif ($job eq "settype") {
do 'type.cgi';
&return_type;
}
elsif ($job eq "setfunc") {
do 'func.cgi';
&return_func;
}
###########
sub get_form {
@querys = split(/&/, $ENV{'QUERY_STRING'});
foreach (@querys) {
($name,$value) = split(/=/, $_);
$value = &filterhtml($value);
&setvaluetoform($name, $value);
if ($name eq "userpassword") {&check_password;}
}
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach (@pairs) {
($name, $value) = split(/=/, $_);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value = &filterhtml($value);
&setvaluetoform($name, $value);
if ($name eq "userpassword") {&check_password;}
}
}
##########
sub filterhtml {
local($return)=$_[0];
$return =~ s/<!--(.|\n)*-->//g;
if ($allow_html != 1) {
$return =~ s/<([^>]|\n)*>//g;
$return =~ s/<//g;
}
return $return;
}
##########
sub setvaluetoform {
if ($FORM{$_[0]}) {
$FORM{$_[0]}="$FORM{$_[0]}��$_[1]";
}
else {
$FORM{$_[0]}=$_[1];
}
}
##########
{$_[0]}��$_[1]";
}
else {
$FORM{$_[0]}=$_[1];
}
}
##########
sub check_password {
$userid =&get_var('userid' ,'\n|"|<|>|\&|;| |\?|��') if
($usernameasuserid==0);
$userid =&get_var('username' ,'\n|"|<|>|\&|;| |\?|��') if
($usernameasuserid==1);
$userpassword =&get_var('userpassword','\n|"|<|>|\&|;| |\?|��');
if ($super{$userid}) {
($chkuserpassword,$chkuserlevel)=split(/��/,$super{$userid});
$userlevel=$chkuserlevel if ($chkuserpassword eq $userpassword);
$allow_html=1 if ($userlevel>=$level_html);
}
}
##########
sub set_var {
$job =&get_var('job' ,'\n|��');
$username =&get_var('username' ,'\n|"|<|>|\&|;| |\?|��');
$usersex =&get_var('usersex' ,'\n|��');
$autocls =&get_var('autocls' ,'\n|��');
$towhoway =&get_var('towhoway' ,'\n|��');
$towho =&get_var('towho' ,'\n|��');
$says =&get_var('says' ,'\n|��');
$addwordcolor =&get_var('addwordcolor' ,'\n|��');
$addsays =&get_var('addsays' ,'\n|��');
$addsign =&get_var('addsign' ,'\n|��');
$changelogouturl =&get_var('changelogouturl' ,'\n|��');
&checkempty($job ,"No Job");
&checkempty($username,"No Username");
&checkempty($usersex ,"No Usersex") if ($usersexmust==1);
&checkempty($says ,"No Says") if ($job eq "says");
$userip=$ENV{'REMOTE_ADDR'};
($secn,$minn,$hourn,$dayn,$monn,$yearn,$weekn,$yeardayn,$isdst)
=earn,$weekn,$yeardayn,$isdst) = localtime(time+(3600*$time_miss));
$monn=$monn+1;
if ($monn<10) {$monn="0$monn";}
if ($dayn<10) {$dayn="0$dayn";}
if ($hourn<10) {$hourn="0$hourn";}
if ($minn<10) {$minn="0$minn";}
if ($secn<10) {$secn="0$secn";}
$daten="$yearn/$monn/$dayn";
$timen="$hourn\:$minn\:$secn";
$secn=$hourn*60*60+$minn*60+$secn;
$reloadtimes=4;
$reloadxx=$reloadx*$reloadtimes;
$reloadxxx=$reloadxx*$reloadtimes;
$userinfo="&username=$username";
$userinfo="$userinfo&usersex=$usersex" if ($usersex ne "");
$userinfo="$userinfo&userid=$userid&userpassword=$userpassword" if (($userid)
&& ($userid ne "") && ($userpassword) && ($userpassword ne ""));
}
#########
sub get_var {
local($return)="";
$return="$FORM{$_[0]}" if ($FORM{$_[0]});
$return=~ s/$_[1]//g;
return $return;
}
#########
sub readtxtfile {
open(READTXTFILE,"$filehead$_[0]");
#flock(READTXTFILE,$_[1]) if ($_[1]);
@readtxtfile=<READTXTFILE>;
#flock(READTXTFILE,8) if ($_[1]);
close(READTXTFILE);
return @readtxtfile;
}
#############
sub checkempty {
local($chkval)=$_[0];
$chkval =~ s/ |<br>|\n//g;
&error($_[1]) if ($chkval eq "");
}
##########
sub error {
print "<html><head><title>$roomtitle erro</title>\n";
print "<META HTTP-EQUIV=REFRESH CONTENT='$_[1];URL=$_[2]'>\n" if (($_[1]) &&
($_[2]));
print "</head><body bgcolor=$messageback text=#FFFFFF>\n";
print "<center><h1>ERRO</h1><h2>$_[0]</h2></center>\n";
print "</body></html><style>\n";
exit 0;
}
############body></html><style>\n";
exit 0;
}
############
Scritp do return_message.cgi:
do 'messageshow.cgi';
sub return_message {
@message=&readtxtfile($messagefile,2);
#@message=sort @message;
if ($#message>$allow_message*10) {
open(MESSAGE,">$filehead$messagefile") || die $!; flock(MESSAGE,2);
for($i=0;$i<=$#message;$i++) {
if ($i<$#message-$allow_message*2) {if ($allow_messagerecord==1) {print
MESSAGERECORD "$message[$i]";}}
else {print MESSAGE "$message[$i]";}
}
flock(MESSAGE,8);
close(MESSAGE);
}
$messagerecordnumber=$#message;
splice(@message,0,$#message+30-$allow_message*2);
print "<html><head><title>Message</title>\n";
print<<"print_tag";
<body text="#423232" background="$server/chat/bk_salas.gif">
<font face=\"arial\" size=\"2\">
<SCRIPT LANGUAGE="JavaScript1.1">ANGUAGE="JavaScript1.1">
<!--
var autoScrollOn = 1;
var scrollOnFunction;
var scrollOffFunction;
function scrollWindow( )
{
if ( autoScrollOn == 1 )
{
this.scroll(0, 65000);
setTimeout('scrollWindow()', 200);
} // end if
} // end scrollWindow
function scrollOn( )
{
autoScrollOn = 1;
scrollWindow( );
} // end scrollOn
function scrollOff( )
{
autoScrollOn = 0;
} // end scrollOff
function StartUp( )
{
this.onblur = scrollOnFunction;
this.onfocus = scrollOffFunction;
scrollWindow( );
} // end StartUp
scrollOnFunction = new Function('scrollOn( )')
scrollOffFunction = new Function('scrollOff( )')
StartUp();
// -->
</SCRIPT>
print_tag
print "<META HTTP-EQUIV=REFRESH
CONTENT='$reloadx;URL=$cgiurl?job=look$userinfo'>\n";
print "</head><body bgcolor=$messageback BACKGROUND=\"bk_salas.gif\"
text=$messageword><basefont size=3>\n";
$messageshow=0;
for($i=0;($i<=$#message) && ($messageshow<=$allow_message);$i++) {
($chkdaten,$mark,$chkuserip,$chkusername,$chkuserlevel,$chkusersex,$chktowhow
ay,$chktowho,$chkaddwordcolor,$chkaddsays,$chkaddsign,$chksays,$markend,$last
)=split(/��/,$message[$i]); if ($markend eq "end") {&message_show;}
}
print "</body></html><style>\n";
open(ONLINE,">>$filehead$onlinefile") || die $!;
print ONLINE ,">>$filehead$onlinefile") || die $!;
print ONLINE
"online��$userip��$username��$userlevel��$usersex��$secn��end��\n";
close(ONLINE);
}
}
Sempre agradecido
Gustavo
-------------------------------------------------------
Assinantes em 02/06/2001: 2271
Mensagens recebidas desde 07/01/1999: 116370
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:[EMAIL PROTECTED]