0

願わくば、誰かが CGI コーディングの経験がまったくないユーザーを助けてくれることを願っています。昨日まで、クライアントが注文を送信したとき、次のコードは正常に機能していました。そして昨日、内部サーバー エラー メッセージがブラウザに表示されました。

私たちのホスティング会社がトラブルシューティングを行ったとき、これは彼らのエラーログが言っていることです:

20130508T200031: www.4printer.com/cgi-bin/mailit.cgi open |/usr/lib/sendmail -t -oi -oem: /home/users/web/b643/ipw.i4printe/public_html/cgi- で許可が拒否されましたbin/mailit.cgi 110行目

残念ながら、コーディングの問題はサポートされていません。

コードの 110 行目には次のように書かれています。

$msg->send();

これは CGI コード全体です。

#!/usr/bin/perl
# webmaster@qnis.net

$date = `/bin/date`; chop($date);

# Read the Input 
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

# Split the name-value pairs

@pairs = split(/&/, $buffer);
 if(!($buffer =~ /CUSTOMER/)){
   print <<"(ERROR_MSG)";
Content-type:text/html


 <center><font size='4'><b>No data was recorded. Please use your browsers back button and try again.

(ERROR_MSG) 終了; }

$mailprog = "/usr/sbin/sendmail";
$emailInfo = "";

open(MAIL, "|$mailprog -t") || do{ print "Can't open $mailprog!\n"; exit;};
  print MAIL "To: ctsales2\@4printer.com\n";
#   print MAIL "To: jim\@spiderbilt.com\n";
print MAIL "From: 4printWebForm\n";  
print MAIL "Subject: California Financial Printing Order Form\n\n";
print MAIL "This form was submitted on $date\n\n";
foreach $pair (@pairs) {

 ($name, $value) = split(/=/, $pair);
 $value =~ tr/+/ /;
 $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
 $name =~ tr/+/ /;
 $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

 if ($value eq "SUBMIT INFORMATION") {
Next;
 } else {
      print MAIL "$name: $value\n\n";
      $emailInfo = $emailInfo . "$name: $value<br /><br />";
   }

} 閉じる (メール);

$title='Perl Mail demo';
$from= 'info@4printer.COM';

$rcvd_cookies = $ENV{'HTTP_COOKIE'};
@cookies = split /;/, $rcvd_cookies;
  foreach $cookie ( @cookies ){
  ($key, $val) = split(/=/, $cookie); # splits on the first =.
$key =~ s/^\s+//;
$val =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/\s+$//;
if( $key eq "4printerEmail" ){
    use URI::Escape;
    $user_id = uri_unescape($val);
}

}

## Mail Header
 use MIME::Lite;

# SendTo email id

# create a new MIME Lite based email
 my $msg = MIME::Lite->new

( 件名 => "4Printer.com 確認"、差出人 => 'sales@4printer.com'、宛先 => $user_id、タイプ => 'text/html'、データ => '

            <tr>
                <td align="left">
                    <div width="300">
                        <font face="Arial" size="2">
                            <p>
                            '.$emailInfo.'
                            </p>
                            <p>
                             Your order has been received and is being processed. <br /><br />
                             Thank you for your order!
                            </p>
                            <br />
                            <font color="#5485a3"><b>California Financial Printing</b></font><br />
                            P.O. Box 25755<br />
                            Fresno, CA 93729-5755<br />
                            559.454.8414<br />
                            800.438.1449
                        </font>
                    </div>
                </td>
            </tr>
        </table>
    </td>
</tr>

');

$msg->send();

print <<output;
Content-type:text/html

出力

アドバイスやご意見をいただければ幸いです。よろしくお願いします!

4

0 に答える 0