WEB相談室

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

タイトル:"500 Internal Server Error"の消し方

0:[投稿] いつもお世話になっています。 [2005/08/09 16:45 ][環境:IE6,WINXP Linux]

下記のソースはサンプルソース(ファイルをアップロードします)をもとに作りました。"500 Internal Server Error"がでてしまいますが、FFFTPで確認してみるとファイルがアップロードされています。(ファイルサイズが大きい場合はソースに記述してあるようにファイルはアップロードされません)
どなたかこのエラーの消し方をご教授ください。お願いします。

#!/usr/bin/perl

use CGI;
require "./util.pl";

# 定数
$title = "upload_sample1";
$temp = "./tmp"; #画像ファイルを格納するディレクトリ
$max_picture = 2048;
$max_content = 256;
$en = "\\";

$query = new CGI;

main();
exit;

sub main{
    #各項目の取得
    $content1 = $query->param('content1');
    $picture1 = $query->param('picture1');
    #テキストエリア内のタグ文字対応の変換
    $content1 =~ s/&/&/g;
    $content1 =~ s/</&big;/g;
    $content1 =~ s/>/&sma;/g;
    $content1 =~ s/\r\n/<BR>/g;
    $content1 =~ s/\r/<BR>/g;
    $content1 =~ s/\n/<BR>/g;
    #ファイルが正しいものかチェック
    if(index($picture1,$en) == -1){
        $update_error = "ファイルが正しくありません。".
            "正しいファイルを送信してください。\n";
    }else{
        #MIMEタイプの取得
        $type1 = $query->uploadInfo($picture1)->{'Content-Type'};                
        #文字数・ファイルサイズの取得
        $moji_size1 = length $content1;
        $byte_read1 = 1;
        while($byte_read1 != 0){
            $byte_read1 = read($picture1,$buffer1,$max_picture);
            $file1 .= $buffer1;
            $file_size1 ++;
        }
        #サイズオーバーのエラー表示
        if($moji_size1 > 256 && $file_size1 > 300){
            $update_error = "サイズオーバー!\n"
                ."・テキストエリア-125文字以下\n"
                ."・画像-600KB以下\n"
        }elsif($moji_size1 > 256){
            $update_error = "サイズオーバー!\n"
                ."・テキストエリア-125文字以下\n"
        }elsif($file_size1 > 300){
            $update_error = "サイズオーバー!\n"
                ."・画像-600KB以下\n"
        }else{
            #フルパスからベースネームの取得
            while(index($picture1,$en) != -1){
                $find1 = index($picture1,$en);
                substr($picture1,0,$find1+1) = "";
            }
            #同じファイル名がないかチェック
            if(-e "$temp/$picture1"){
                 $update_error = "同じファイル名が存在します。" .
                       "ファイル名を変更して送信してください。\n";
            }else{
                #ファイルを指定ディレクトリにコピー
                open(OUT, "> $temp/$picture1")
                       or exitError("現在ファイルの処理ができなくなっています。");
                binmode(OUT);
                print(OUT $file1);
                close(OUT);
                #パーミッションの変更
                chmod(0666,"$temp/$picture1");
            
            }
        }
    }
    if($update_error eq ""){
        &page_out_kakunin($content1,$picture1,$type1);
    }else{
        &page_out_error2($update_error);
    }
}

sub page_out_error2{
    ($update_error) = @_;
    print <<HTML_ERR;
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;">
<TITLE>エラー表示ページ</TITLE>
</HEAD>
<BODY BGCOLOR="#ffe4e1">
<CENTER>
<P>
<TABLE>
<TR><TH ROWSPAN="3"><IMG SRC="/abc/images/a.gif"></TH>
<TD><IMG SRC="/abc/images/b.gif" WIDTH="400"></TD>
</TR>
<TR>
<TD><IMG SRC="/abc/images/c.gif" WIDTH="400" HEIGHT="50"></TD>
</TR>
<TR>
<TD><IMG SRC="/abcy/images/d.gif" WIDTH="400"></TD>
</TR>
</TABLE>
</P>
<HR WIDTH="750">
<H2>エラー! 再度入力してください</H2>
<BR>
<BR>
<B>$update_error</B>
<BR>
<BR>
<BR>
<FORM ACTION="/abc/a.html" METHOD="POST">
<INPUT TYPE="submit" VALUE="前に戻る">
</FORM>
</CENTER>
</BODY>
</HTML>
HTML_ERR
}

sub page_out_kakunin{
    ($content1,$picture1,$type1) = @_;
    print <<HTML_SUCCESS;
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;">
<TITLE>$title</TITLE>
</HEAD>
<BODY>
更新内容:$content1<BR>
更新画像名:$picture1<BR>$type1<BR>
</BODY>
</HTML>
HTML_SUCCESS
}

1;


1:[関連] いつもお世話になっています。 [2005/08/09 17:04 ]

サイズオーバーの表示の";"が一部抜けていますが、つけ忘れです。すいません。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World