#! c:/perl/bin/perl # # album.cgi # 写真タイトルのリストとそれぞれをコメント付きで表示。 # # 1.02 : 8/3/03 : 戻るリンクをより正確に指定するように修正 # 1.01 : 8/2/03 : $imagedirを追加、他のサーバー上にある画像ファイルを指定可能 # 1.0 : 7/26/03 : Created # Hideki Kanayama #### 環境設定 ここから ############## # $script(デフォルトはalbum.cgi)があるサブディレクトリ(SSIを呼び出すshtmlがあるディレクトリからの相対パス) $subdir = "."; # 画像があるディレクトリ(album.cgiからみた相対パス)、httpからの指定でも可 $imagedir = "."; # このスクリプト名 $script = "album.cgi"; # アルバムのリストファイル。写真のファイル名、タイトル、コメントをこの中に書く $file = "album.lst"; # 戻り先のリンク。 (album.cgiから見た相対パスとファイル名、絶対パス、httpからの指定でも可) $back = "album.shtml"; #### 環境設定 ここまで ############## if ($ENV{"REQUEST_METHOD"} eq "POST"){ read(STDIN,$data,$ENV{"CONTENT_LENGTH"}); } else { $data = $ENV{"QUERY_STRING"}; } @tmparry=split(/&/,$data); foreach $string (@tmparry){ ($key,$value)=split(/=/,$string); $value =~ tr/+/ /; $in{"$key"}=$value; } if ($in{file} eq ''){ &linklist; } else { &dispphoto; } sub linklist { print "Content-Type: text/html\n\n"; if (!open(FILE,"< $file")){ print "
ファイルが存在しません。$file
"; exit; } $i=1; while (){ ($image,$title,$comment)=split(/,/); print "$title
\n"; $i = $i + 1; } close(FILE); } sub dispphoto { print "Content-Type: text/html\n\n"; if (!open(FILE,"< $in{file}")){ print "
ファイルが存在しません。$in{file}
"; exit; } $i=0; while (){ ($image,$title,$comment)=split(/,/); $i = $i + 1; if ("$image" ne "$in{image}") {$previmage=$image;$prevtitle="$title";next;} print < $title

$title

戻る

$comment
END ($nextimage,$nexttitle,$nextcomment)=split(/,/,); if ($previmage eq '') { $prevlink="$back#1"; $prevtitle = "トップへ" } else { $prevlink = "$script?file=$file&image=$previmage"; } if ($nextimage eq '') { $nextlink="$back#1"; $nexttitle = "トップへ" } else { $nextlink = "$script?file=$file&image=$nextimage"; } print < ←$prevtitle $nexttitle→ BOTTOM } close(FILE); }