ダウンロードをした人の一覧を表示するCGI

このQ&Aのポイント
  • フリーのCGIを探していますが見つかりません。あらかじめ登録されたメンバーがダウンロードしたファイルを一覧で表示するCGIを探しています。
  • または、ダウンロード完了登録フォームを用意して、自分の名前を選ぶとダウンロード済みの一覧が表示される仕組みでも構いません。
  • CGIの知識がないため、フリーのものを探しています。過去に同様のシステムを作った経験のある方からの情報をお待ちしています。
回答を見る
  • ベストアンサー

ダウンロードをした人の一覧を表示するCGI

色々ホームページを見てまわったのですが、 欲しいフリーのCGIが見つからなかったので、 もし「このHPにあるよ」など、情報を頂けたら幸いです。 私が欲しいCGIは、 あらかじめ登録されたメンバーが居て、 そのメンバーが、管理者の指定した圧縮ファイルなど、ファイルのダウンロードをしたかしてないか、一覧で表示できる様なCGIを探しています。 ダウンロード済みの方の行にはダウンロード済みと表示されて、日時も表示されるようなシステムです。 もしくは、「ダウンロード完了登録フォーム」を用意して、そこからコンボなどで自分の名前を選び、登録すると、一覧に「ダウンロード済み」「日時」が表示されるような仕組みでもかまいません。どちらかというとこちらの方が欲しいシステムです。 CGIの知識がほとんどないので、設置するくらいしかできません。 一から作ることが出来ないので、フリーで探しています。 凄くわがままな要望なんですが、過去にこういった事をした事がある方、いらっしゃいましたら情報を下さい。宜しくお願いします。

  • CGI
  • 回答数6
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • togino
  • ベストアンサー率75% (97/129)
回答No.6

#!/usr/local/bin/perl print "Content-type: text/html\n"; print "\n"; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'}); } else { $query_string = $ENV{'QUERY_STRING'}; } @a = split(/&/, $query_string); foreach $a (@a) { ($name, $value) = split(/=/, $a); $value =~ tr/+/ /; $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; $FORM{$name} = $value; } $user_name = $FORM{"user_name"}; @file_names = ("file1.zip", "file2.zip", "file3.zip"); @user_names = ("yamada", "sato", "inoue"); if($FORM{"file_name"}){ $file_name = $FORM{"file_name"}; open(OUT, ">> download.csv"); ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time()); $mon ++; print(OUT "${user_name},${file_name},${year}/${mon}/${mday} ${hour}:${min}:${sec}\n"); close(OUT); } open(IN, "< download.csv"); while($line = <IN>){ chop($line); @line = split(",", $line); $download{$line[0]}{$line[1]} = $line[2]; } close(IN); print <<_EOF_; <html><head> </head> <body> $user_name さんのダウンロード状況 <table border="1"> <tr> <td>DL</td> <td>ファイル名</td> <td>日時</td> </tr> _EOF_ foreach $file_name (@file_names) { if($download{$user_name}{$file_name}){ print <<_EOF_; <tr> <td>済</td> <td>$file_name</td> <td>$download{$user_name}{$file_name}}</td> </tr> _EOF_ }else{ print <<_EOF_; <tr> <td>未</td> <td>$file_name</td> <td><a href="download_view.php?user_name=${user_name}&file_name=${file_name}">ダウンロード</a></td> </tr> _EOF_ } } print <<_EOF_; </table> </body></html> _EOF_ return 1; 以上 Perl の CGI に書き換えて見ました。 う~ん、なれない言語だとちょっとしんどいなぁ

take2003
質問者

補足

下にも記載致しましたが、やはりうまく動かないみたいです。 アクセスするURL等間違っているのでしょうか。 申し訳ありません。

その他の回答 (5)

  • togino
  • ベストアンサー率75% (97/129)
回答No.5

> すべてを書いて、UPしてみましたが、 > ソースがブラウザに全部出てしまいました。 あちゃちゃ・・・たぶん、サーバが PHP に 対応していないという事だと思いますよ。 <?php phpinfo(); ?> という3行の phpinfo.php というファイルを作って サーバにアップして、ブラウザから見た場合に、 ソースがそのまま表示されるのであれば、サーバが PHP を処理していない、つまり対応していないって ことになりますね・・・ う~ん、Perl で書き直しますか

take2003
質問者

補足

申し訳ありませんでした。 サーバのホームページには対応と書いてあったのですが、もしかすると契約はPHP使用可能の契約をしていないのかもしれないです。 本当に申し訳ありません。 Perlでのやり方ですが、 #!/usr/local/bin/perl~return 1;までを書いて、 download_view.cgiの名前で保存して、 download.csvとともにUP(アクセス権、755、644で)して、 download_view.cgiにアクセスすれば宜しいのでしょうか。 何度も本当に申し訳ありません・・・。 とても助かります。

  • togino
  • ベストアンサー率75% (97/129)
回答No.4
take2003
質問者

補足

<?php $user_name = $_GET["user_name"]; から </table> </body></html> までをdownload_view.phpというファイルで保存するのでしょうか。 すべてを書いて、UPしてみましたが、ソースがブラウザに全部出てしまいました。 <html>から</html>までを記載すればいいのでしょうか。 何度もすいません・・・。

  • togino
  • ベストアンサー率75% (97/129)
回答No.3

<?php $user_name = $_GET["user_name"]; $file_names = array("file1.zip", "file2.zip", "file3.zip"); $user_names = array("yamada", "sato", "inoue"); if($_GET["file_name"]){ $file_name = $_GET["file_name"]; $fp = fopen("download.csv", "a"); fwrite($fp, "${user_name},${file_name},".date("Y-m-d H:i:s")."\n"); fclose($fp); } $fp = fopen("download.csv", "r"); while($line = fgetcsv($fp, 1000, ",")){ $download[$line[0]][$line[1]] = $line[2]; } fclose ($fp); ?> <html><head></head> <body> <?php echo $user_name; ?> さんのダウンロード状況 <table border="1"> <tr> <td>DL</td> <td>ファイル名</td> <td>日時</td> </tr> <?php foreach($file_names as $file_name){ if($download[$user_name][$file_name]){ ?> <tr> <td>済</td> <td><?php echo $file_name; ?></td> <td><?php echo $download[$user_name][$file_name]; ?></td> </tr> <?php }else{ ?> <tr> <td>未</td> <td><?php echo $file_name; ?></td> <td><a href="download_view.php?user_name=<?php echo $user_name; ?>&file_name=<?php echo $file_name; ?>">ダウンロード</a></td> </tr> <?php } } ?> </table> </body></html> 上記ファイルを download_view.php としてサーバーに アップし さらに下記のような download.csv を書き込み権限を 与えてアップして下さい sato,file1.zip.2004/07/01 12:00:00 完了しましたら http://xxx.yyy.zzz/download_view?user_name=sato とアクセスしてみてください。 いくつか仕様について質問があります。 ■ メンバーは固定ですか?Web から追加・削除しますか? ■ ダウンロードするファイルは固定ですか?Web から追加・削除しますか? Web から追加・削除するなら、そのページもつくりますが

take2003
質問者

補足

回答ありがとうございます。 設置をしてみて、ご報告します。 ご質問についてですが、 メンバーはWEBから追加出来ると大変ありがたいです。 ダウンロードするファイルは追加、削除します。 最初は一つですが、 ファイルNO.1、ファイルNO.2・・・というように追加していくつもりです。 お手数かけて大変申し訳ありません。 ありがとうございます。

  • togino
  • ベストアンサー率75% (97/129)
回答No.2

例えば、この OK Web も PHP を利用されていますが 設置することができるのかは、サーバによります。 下記のファイルを phpinfo.php という名前で 作成して、サーバにアップし http://xxx.yyy.zzz/~aaa/phpinfo.php などの ようにブラウザから見て、いろいろ情報が 見られれば PHP が使えるサーバってことになります。 <?php phpinfo(); ?> というファイルです。 # 誰か Perl で書いてあるのがあればいいんですがね。

take2003
質問者

補足

サーバの詳細を調べたところPHPが使用できるみたいです。

  • togino
  • ベストアンサー率75% (97/129)
回答No.1

CGI は Perl 言語で書かれたものでないと いけないでしょうか? もし PHP 言語での CGI でよろしければ、 これらくらいのものなら10分でお作りして ここに書き込みしてあげれますけど。

take2003
質問者

補足

回答ありがとうございます。 PHP言語で作成されたCGIというのは設置の仕方などは通常のPerlのものと同じなのでしょうか? 知識不足ですいません。 もし私のような初心者でも設置できるようなものでしたら、ぜひ書いて頂きたいのですが。 お手数かけて本当に申し訳ありません。

関連するQ&A

  • 一覧を表示しCGI経由でファイル表示

    またまた質問させていただけないでしょうか? 前回回答して頂いた方法でどうにか中盤まで書けました。有難う御座います。 またつっかかっている部分があります。 あるフォルダーにあるファイル名一覧を表示します。 そのファイル名をクリックするとCGI経由でファイル を開くというものなのですが・・・。 どうも上手くいきません。 流れとしては 1.ディレクトリ「master」の中身一覧を取得 2.それを表示 1.一覧の中のあるファイル名をクリック。 2.[CGI]あるファイルを読み込む。 3.あるファイルを表示。

    • ベストアンサー
    • Perl
  • 出欠のCGIを探してす。CGIが表示できません。

    フリーファイルを色々ダウンロードしてみてトライしてみたのですが、CGIファイルが実行されません。 転送(データなど)や、一行目も変更しました。 どうすれば実行された、画面が表示できますか?

    • ベストアンサー
    • CGI
  • CGIで他サーバーのtextデータを読み込み、一覧表示したい

    自サーバー1と自サーバー2で同じCGIを利用しています。 管理画面でデータを登録してtextファイルに吐き出し、ユーザー画面ではtextファイルを読み込み一覧表示させるだけのCGIです。 2つのサーバーで使ってるので登録が2度手間で面倒なものですから、自サーバー2のほうのCGIを改編して自サーバー1のtextデータを読み込むようにしたいと思っています。ただ、私が初心者のため、どうすればいいかよく分かりません。 しょうもない質問ですが、ぜひよろしくお願いします。 現在、「$data="./data/data.dat"」になってます。 「$data="http://*****.com/cgi/data/data.dat"」では駄目でした。 色々調べた結果…よく分かりませんでした↓↓↓ よろしくお願いいたします。

    • 締切済み
    • CGI
  • CGIでファイルのダウンロードをさせたい

    ホームページでファイルのダウンロードをさせたいの ですが、セキュリティの関係もあって元ネタのファイル はURLで指定できるところにはありません。 そこで、C言語でCGIを作成し、Content-Type: text/plain\n\n などとし、CGI側でファイルをOPEN して吐き出させたところ、ブラウザー(IE5)では ダウンロード画面が表示されず。CGIが出力した内容が そのまま表示されてしまいます。CGIでの処理が足りない と思われますが、どうしたらCGIからブラウザーへダウンロードの指示を出すことができるのか教えて下さい。

    • 締切済み
    • CGI
  • ディレクトリ内のファイルを一覧表示するCGIを探しています

    指定したディレクトリ内にあるファイルを一覧表示しリンクを自動で作ってくれるCGIを探しています 自分で探してみたところ、いくつか見つけられたのですがなかなか条件にあうCGIが無かったので・・・ ↓こんなの探してます ・携帯でも見れるシンプルなもの ・ファイルの並び順(名前順や最新順)を設定できる  ↑観覧者が自由にソートするのではなくサーバー側(?)で決めれる ・1ページに表示するファイルの数を設定できる ・指定ディレクトリ内にディレクトリがあった場合それもリンク あとできれば画像ファイルを開いたときに「進む」で次のファイルに移動などの機能があればうれしいです どうかよろしくおねがいします・・・

    • 締切済み
    • CGI
  • 普通のHTMLの画面からCGIへリンクを貼るには?

    誰か助けてくれる方おしえていただけますでしょうか 何個か質問があります。 ▼一つ目 HTMLでトップページを作りました。 次にCGIでプログラムを作りHTMLを吐き出す”○○○.cgi”を作りました。 トップページ(HTML)から○○○.cgiへリンクを貼る方法をおしえてもらえないでしょうか? 現在の対応としては・・ ●普通にリンクを貼ってみましたが、ファイルをダウンロードする格好になってしまいました。 ▼二つ目 perlとmysqlを使ってCGIを作っています。内容的には、必要なデータを登録し、それを検索する作業を作っています。キーワードの検索をした時に引っかかってきた内容を一覧画面に表示させる時に、○×件ごとに画面に表示させたいのですが方法が分かりません。 例えば検索結果を10件ごとに画面に表示させるにはどのようにしたらよいのでしょうか? どうか教えて下さい。 ▼三つ目 先ほどと状況適には変りませんが、今度は情報を登録する時の事です。 情報をインプットボックスに入力してもらいそれをmysqlのDBに格納するようにしています。しかし入力する手間を省くためにコンボボックスやチェックボックスなどに代入できる物はしたいと考えています。 しかし普通にやったのではだめなのでしょうか? 又一度入力したデータを変更があったために少し入力データを編集できるようにしています。 どうかおしえていただけないでしょうか 文章が長々となってしまいましたがどうぞ助けて下さい。(回答して頂いた方にはすぐにお礼、補足説明などをさせて頂きます。)

    • 締切済み
    • CGI
  • ファイルをダウンロードさせるCGI

    よくダウンロード販売などのサイトに置かれているCGI、 『お客さんがクリックすると「ファイルをダウンロードしますか?」と出て希望の方にファイルをダウンロードしてもらえる』CGIを探しています。 携帯専用のダウンロードCGIなら見つけたんですが…(涙) CGIは現在猛勉強中で基礎的なものしか知らないのですが、良かったら教えて頂ければ嬉しいです。

    • ベストアンサー
    • CGI
  • safariでcgiが表示されず cgiファイルがダウンロードされてしまうそうです

    http://www5d.biglobe.ne.jp/~rb34/col4/dummy.htmlのページ(TOPページからcgiで作られているのでダミーページから飛ばないと表示されません)に関して safariというブラウザだと 全てのページには飛べず デスクトップにcgiファイルがダウンロードされるそうです (恐らく、cgiという拡張子のついたhtmlファイルだと思われますが) 正常な状態にするには どうしたらよろしいでしょうか ご存知の方 ご教授ください

    • 締切済み
    • CGI
  • cgiの表示アドレス

    超初心者なのですがcgiをつけたいので、ご協力お願いします。iswebで登録してkboardというcgiを設置したいんです。FTPでダウンロードしたファイルをアップしたんですが、そのあとにアドレスをいれて一度表示してみるとあるんですが・・どのアドレスをいれればいいんでしょうか? 自分のHPのアドレスに/cgi-bin/kb-ex-snt/ をつければいいんですか?それともFTPのホスト名につければいいんでしょうか?

    • ベストアンサー
    • CGI
  • ファイル一覧を表示しその画面からダウンロードを行いたい

    こんにちは。PHP5を勉強して約半年のものです。PHP5でフォルダ内のファイルを表示し、そこで選択したファイルをダウンロード、または保存用のダイアログを開くプログラムを作成するにはどうすればよいのでしょうか? フォルダ内のファイルの一覧を表示し、<a href>を利用して指定したファイルにアクセスすること、http://opqr.jp/2007/09/php.htmlのサイトなどを参考にクリックしてファイルの保存ダイアログを開いたり、単純な保存の仕方などはできるのですが、質問の通りファイル一覧表示からファイル名をクリックした際、その(クリックした)ファイルをダウンロードするにはどうすればよいのでしょうか?

    • ベストアンサー
    • PHP