WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:500 Internal Server Error

0:[投稿] でこさん [2005/06/14 11:01 ][環境:IE6,WINXP Linux,Apache,CGI,perl ]

下記のCGIでエラーがでて動きません。転送モード=アスキー・パーミッション=755です。
どなたか教えてください。お願いいたします。
-----------------------------------------------------------
<test.pl>
#!/usr/bin/perl --

require 'cgi-lib.pl';

#フォームからのデータを受け取る
&ReadParse(*form);

#ファイル名を指定する
$fnme = 'sample';

#拡張子部分を取出す為にデータの間処理を続ける
foreach $tmp (@in)
{
    # 受信データの Content-type 部分から拡張子を探す
    if ($tmp =~ /(.*)Content-type:(.*)/i)
    {
        if ($2 =~ /image\/jpeg/i) { $ext = '.jpg'; }
        elsif ($2 =~ /image\/pjpeg/i) { $ext = '.jpg'; }
        elsif ($2 =~ /image\/gif/i) { $ext = '.gif'; }
        elsif ($2 =~ /image\/png/i) { $ext = '.png'; }
        else { $ext = 'NO'; }
    }
    # 受信データの filename= 部分から拡張子を探す
    elsif ($tmp =~ /(.*)filename=(.*)/i)
    {
        if ($2 =~ /\.jpg/i) { $ext = '.jpg'; }
        elsif ($2 =~ /\.gif/i) { $ext = '.gif'; }
        elsif ($2 =~ /\.png/i) { $ext = '.png'; }
        else { $ext = 'NO'; }
    }
}

#jpg gif png 以外ならエラーを出力する
if (($ext eq 'NO') || ($exit eq ''))
{
    $mes = '許可されていないファイル形式です。';
}
#許可されている拡張子なら書き込み処理をする
else
{
    #ファイル名と拡張子を結合する
    $fnme = $fnme . $ext;

    # 受信データを書き込む
    open OUT,">$fnme";
    binmode OUT;
    print OUT $in{'upfile'};
    close OUT;

    $mes = '書き込みが完了しました。'
}

#完了メッセージ
print "Content-type: text/html\n\n";
print <<"HTML";


<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY>
$mes
</BODY>
</HTML>

HTML

exit;
-----------------------------------------------------------
<test.html>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>アップロード</TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="/cgi-bin/test.pl" enctype="multipart/form-data">
<INPUT size="40" type="file" name="upfile">
<INPUT type="submit" value="送信する">
</FORM>
</BODY>
</HTML>


1:[回答] 江崎グリ子 [2005/06/14 14:17 ]

1行目の<test.pl>というのを削除してみて下さい。
また、perl のパスが #!/usr/bin/perl のままで合っているか確認してみて下さい。
#!/usr/local/bin/perl ではないですか?
それと、 #!/usr/bin/perl -- の -- の部分も削除した方がよいかと思います。
お役に立てればよいのですが・・・(^_^;


2:[回答] 通りがかり。 [2005/06/14 18:12 ]

-- ←これ自体は問題無いと思われ…。


3:[回答] B-Cus [2005/06/14 19:24 ]

全然関係ありませんが、#! についてへぇと思ったメール。
http://lists.freebsd.org/pipermail/freebsd-arch/2005-February/003525.html


4:[回答] 通りがかり。 [2005/06/14 22:18 ]

ところで、さっき中身もよく見てなかったのですが、突っ込みどころ満載の
スクリプトですね…
さて、どこから手をつけてよいのか…


5:[完了] でこさん [2005/06/15 09:31 ]

通りがかり。さんのおっしゃるとおり、もう一度スクリプトを確認してから質問させて頂きたいと思います。すみませんでした。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World