A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
他のCGI設置経験があれば類推可能かとも思ったのですけど。
無理でしたか?まずは、「ここから」の次の行から、「ここまで」の手前の行までを
コピーして、エディターまたはメモ帳の新規ファイルに貼り付けて下さい。
そして、ファイル名を、「changer.cgi」などとします。
windowsの古いversionのメモ帳だと拡張子に「.txt」が付加されることがあるので、そのときはエクスプローラーでファイル名を変更して下さい。
それから、お使いのサーバーでの「perl呼び出しパス」に合わせて、1行目を書き換えます。
次に、画像ファイルのリストのところを、サーバーに設置した時のcgiから表示したい画像までの相対パスで入力します。
ファイル名はシングルクォーテーション「''」で括ることと、複数のデータは半角カンマ「,」で繋げるところの入力忘れに注意して下さい。
また、配列の引数は0開始で、カウンターは1から開始するので、リストの2番目の画像から表示開始になります。ローテーションして1番目に戻ります。
ftpソフトなどで、cgi設置用のディレクトリーに上記「changer.cgi」と画像ファイルとをアップロードします。
パーミッション設定は、
changer.cgi は705
画像ファイル は644
あと、cgiの実行権限がownerではないサーバーの場合は、カウンター用ファイルも先に作っておくことをお薦めします。
エディターで「0」とだけ書いて「numfile.log」というファイル名で保存し、cgiを置いたディレクトリーにアップロードします。
カウンターファイルのパーミッションは606とします。
実行チェックとして、cgiのURIをブラウザのURI欄に入力し、
表示されたなら、リロードして画像が切り替わることも確認。
このURIを表示したいページのimgタグのsrcに指定すれば完了です。
丁寧に教えていただいたにもかかわらず、連絡が遅れて申し訳ありません。当方あまりCGIの知識がないため、少し時間がかかると思いますが、教えていただいたものを稼働させるべくガンバってみます。
本当にどうもありがとうございました。
No.1
- 回答日時:
簡易カウンタースクリプトをすこし書き換えればいけそうなので、作ってみました。
##### ここから:環境に合わせて適宜書き換え下さい
#!/usr/local/bin/perl
### 画像ファイルのリスト
@files =('./num/a0.gif', './num/b1.png', './num/c2.jpg' );
### カウンターファイル名:自動作成します
$numfile = 'numfile.log';
### no cache flag; no-cache出力する=1、しない=0
$no_cache = 1;
##########
### カウント の取得
if (-e $numfile) {
open(FILE, "<$numfile");
$total=<FILE>;
close(FILE);
$total =~ tr/\r\n//d;
}else{
$total =0;
open(FILE, "+>$numfile");
close(FILE);
chmod 0666, $numfile;
}
$total ++;
open(FILE, ">$numfile");
print FILE "$total\n";
close(FILE);
### 画像ファイル名の同定
$image = $files[$total % scalar(@files)];
### 画像タイプ(拡張子で代用)
$ImgType = ( split(/\./, $image) )[-1];
### 画像ファイルを開く
open(IMG, "$image") or &error();
# windows 用 入出力変更
binmode IMG;
binmode STDOUT;
# イメージの出力
print qq(Pragma: no-cache\n) if $no_cache;#←キャッシュを残させないで毎回画像を取得
print qq(Content-type: image/$ImgType\n\n);
print while (<IMG>);
# イメージファイルのクローズ
close(IMG);
exit;
sub error{
print qq(Pragma: no-cache\n) if $no_cache;### キャッシュを残させない
print qq(Content-type: text/plain\n\n);
print 'error !';
exit;
}
#####ここまで
丁寧に対応していただき、たいへんありがとうございました。ただ、私にプログラミングの知識がなく、「猫に小判」状態です。返って迷惑をおかけいたしました。
御礼申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonのCGIでページを遷移したい
-
URLに~/cgi-bin/~を隠す方法
-
お問い合わせフォームの設置に...
-
EXCELファイルに誰がアクセスし...
-
simplexml_load_fileのエラー
-
IISのSSIの設定について
-
VB6 FTPファイルのパーミッショ...
-
CGIでjcode.plを読み込めなくな...
-
アクセスログのリファラについ...
-
ファイルロックの質問
-
超初心者ですが、、
-
ASP(IIS?)のエラーについて
-
パーミッションについて詳しく...
-
C言語のCGIはプロパイダに聞か...
-
ASPから既存のexcelブックを開...
-
cgiを複数設置する方法
-
HTMLでサーバと接続????
-
他人の"hoge.cgi"を使うのは危...
-
HTML文書の中で環境変数を使う...
-
Perlでの一括アップロード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLに~/cgi-bin/~を隠す方法
-
CGIが動作しません。
-
apeboard+の設置について (UUHP)
-
apache で /cgi-bin/にアクセス...
-
ロリポップサーバでのWeb拍手cg...
-
PyCharmでのCGIを使ったWebサー...
-
エラーログの意味
-
Apacheでのコンテントネゴシー...
-
yomi-searchの登録者にメールを...
-
Apacheでphpとcgiを使いたいの...
-
WEBサーバーのCGIエラーについて
-
ショッピングカートのセキュリティ
-
exec cgi ="aaa.cgi" を有効に...
-
cgiのsystem関数を用い、ファイ...
-
httpd の1.42pで表示出来ないCG...
-
htmlにCGIプログラムの埋め方。
-
CGI掲示板について
-
下記の文章を翻訳願います
-
カウンターが表示されません;;
-
CLEVER BBSでテストしてみたん...
おすすめ情報