またまた質問で申し訳ありません。 「24.CGIダウンロードカウンタ」をフリーウェブでやっているのですが、 「dlcount.htm」を「dlcount.shtml」でやるとちゃんと出来るのですが、 この内容を丸ごと「index.cgi」に入れて実行したら出来ました。 でも「ダウンロード回数:----」の回数(数字)が表示されません。 やはり「*.shtml」でないと「*.cgi」では表示されないのでしょうか? 「*.cgi」で出来る、何か良い方法があったらお教え下さい。
#1100(わかやま神氏)の書き込みを引用します: >そうねっ!単純が一番! >で、手元に資料がないから・・・ >正規表現と置換を利用すれば可能です。 >置換だけでも出来ると思うけど。 >それらしい事分かれば連絡します。 ありがとうございます。 期待に胸膨らませてお待ちしていま〜す♪
#1099(海豚氏)の書き込みを引用します: >#1098(海豚氏)の追加ですけど、 >http://p4room.mda.or.jp/book/cgi/info.cgi?res=1098 >の文字の左から何個目までを読み込んで$AAAに代入する >って事でも良いんですが・・・。 そうねっ!単純が一番! で、手元に資料がないから・・・ 正規表現と置換を利用すれば可能です。 置換だけでも出来ると思うけど。 それらしい事分かれば連絡します。
#1098(海豚氏)の追加ですけど、 http://p4room.mda.or.jp/book/cgi/info.cgi?res=1098 の文字の左から何個目までを読み込んで$AAAに代入する って事でも良いんですが・・・。
#1096(わかやま神氏)の書き込みを引用します: >つまり、「http://*****/cgi-bin/*****/bbs.cgi」となる訳ですね。 >試してみたらそれなりに動きました(あちきのサイトでは) > >スプリクトはこちら >使われるなら適当に修正して下さい。 色々とありがとうございました。 フリーウェブだとリモートホスト名が取得できないらしくダメでした(シクシク) で・・・・・。 URLを「切り捨て」何てことは出来るのでしょうか? 例えば、ここの掲示板だと現在見ている画面のURLは http://p4room.mda.or.jp/book/cgi/info.cgi ですが、「RE」をクリックすると http://p4room.mda.or.jp/book/cgi/info.cgi?res=1096 になってます。これを http://p4room.mda.or.jp/book/cgi/info.cgi以降のURL(?res=1096)を カットしちゃう何てことは可能でしょうか? 宜しくお願いします。
ありがとうごぜーますだ! 早速実験させていただきます。
#1094(海豚氏)の書き込みを引用します: >#1092(わかやま神氏)の書き込みを引用します: >>HTTP_REFERERに比較する情報と違う文字(数値)が1つでもあれば、 >>その時点ではねられてしまうでしょうね。 >>「特定の情報が含まれている」とすれば出来るかも。 >>やり方は・・・あ、3分たっちゃった、時間がないのでまた今度。 >> >>出来る出来ないは別として。調べてみましょうか? >>進展なければ、どなたか代返お願いします。 > >申し訳ありませんが、是非御願い致しますぅ。(すりすり) 環境変数に「HTTP_HOST」と「REQUEST_URI」ってのがあります。 「HTTP_HOST」はホスト名を「REQUEST_URI」はCGIのパスを取って来ます。 でも、このままじゃ使えないので、結合します。 で、こんなのでどうでしょう? $ref = $ENV{'HTTP_REFERER'}; #リンク元 $come_url = 'http://*********/*********/*********/*********/___.htm'; $for_url = 'http://www.yahoo.co.jp/'; $this_url = 'http://'.$ENV{'HTTP_HOST'}.$ENV{'REQUEST_URI'}; $bbs_ok = ($ref eq $come_url || $ref eq $this_url) ? '1' : '0' ; if ($bbs_ok == 0) { print "Location: $for_url\n\n"; exit; } 赤い行は、変数$this_urlに「http://+ホスト名+CGIのパス」と結合し代入しています。 つまり、「http://*****/cgi-bin/*****/bbs.cgi」となる訳ですね。 試してみたらそれなりに動きました(あちきのサイトでは) スプリクトはこちら 使われるなら適当に修正して下さい。
log01 #一度ここでログ捕り $ref = $ENV{'HTTP_REFERER'}; #リンク元 $come_url = 'http://*****/*****/index.html'; #参照元URL $for_url = 'http://www.yahoo.co.jp/'; #ヤフーに飛ばす $this_url = 'http://*****/cgi-bin/*****/bbs.cgi'; このBBS if ($AAA == ''){ $bbs_ok = ($ref eq $come_url || $ref eq $this_url) ? '1' : '0' ; if ($bbs_ok == 0) { print "Location: $for_url\n\n"; exit; } } $AAA = '1'; #一度BBSに入った事を記録する。 log02 #2回目ログ捕り として、2回目以降$AAAが1だからif内は無視して自分自身を読み込んでも 入れるようにしたつもりですが、ログ捕ってみたら 2回目のログには$AAAは1になってるんですが1回目のログには$AAAは空になってました。 ここの掲示板のように[RE]をクリックすると http://p4room.mda.or.jp/book/cgi/info.cgi?res=1093 というように、?の後に色々と付加される掲示板なんです。 それで書き込むとヤフーに飛んでいってしまいます。 この時、$AAAはクリアーされて「空」に空になってしなうのでしょうか? ご存知の方いらっしゃいましたらお教え願います。
#1092(わかやま神氏)の書き込みを引用します: >HTTP_REFERERに比較する情報と違う文字(数値)が1つでもあれば、 >その時点ではねられてしまうでしょうね。 >「特定の情報が含まれている」とすれば出来るかも。 >やり方は・・・あ、3分たっちゃった、時間がないのでまた今度。 > >出来る出来ないは別として。調べてみましょうか? >進展なければ、どなたか代返お願いします。 申し訳ありませんが、是非御願い致しますぅ。(すりすり)
たびたびレス有難うございます。 >CGIを使えば同じ事は出来ますよ。 え??そうなんですか? >ついでなら、画像カウンタなんかを試してみたらどうですか? >呼び出し方法が違うといっても、そんなに難しくはないですし・・・ >判らない所があれば、気兼ねなく書き込んで下さい。 >お師匠さんの方々がお答えして下さると思います。 >あちきも応援します。 てことで、自分なりに考えて CGIで作ってみたらうまく走ってくれました!!! (蛇がクネクネやってます。) めさめさ嬉しいです。アドバイス本当に有難うございます。 今後は少しずつなとオリジナルを作っていこうと思います。 もし何かわからない事があったらまた、 このサイトに甘える事もあるかもしれませんが、 そのときはどうぞよろしくお願いいたします。
#1091(海豚氏)の書き込みを引用します: >#1090(わかやま神氏)の書き込みを引用します: > >早速の御返事ありがとうございます。 >URL指定に*(ワイルドカード)って使用できるのでしょうか? >この掲示板だと今書き込んでいるURLが >http://p4room.mda.or.jp/book/cgi/info.cgi?res=1090 >になっています。これを >http://p4room.mda.or.jp/book/cgi/info.cgi?* >として、それ以降何が入力されていても真を返すとか? >出来ないのでしょうか? HTTP_REFERERに比較する情報と違う文字(数値)が1つでもあれば、 その時点ではねられてしまうでしょうね。 「特定の情報が含まれている」とすれば出来るかも。 やり方は・・・あ、3分たっちゃった、時間がないのでまた今度。 出来る出来ないは別として。調べてみましょうか? 進展なければ、どなたか代返お願いします。
#1090(わかやま神氏)の書き込みを引用します: 早速の御返事ありがとうございます。 URL指定に*(ワイルドカード)って使用できるのでしょうか? この掲示板だと今書き込んでいるURLが http://p4room.mda.or.jp/book/cgi/info.cgi?res=1090 になっています。これを http://p4room.mda.or.jp/book/cgi/info.cgi?* として、それ以降何が入力されていても真を返すとか? 出来ないのでしょうか?
#1087(海豚氏)の書き込みを引用します: >このような書き込みをここにしても良いのか判りませんが、 >私も、快適活用ライブラリを使用していますが、 >今回は、http://www.rescue.ne.jp/の「ツリー式電子掲示板 Trees」に >直接アクセスできない用にしようとしたのですが「閲覧」等クリックすると >自分を読み込んで何時までも掲示板に入れません。 >この場合、「HTTP_REFERERにhttp://*****/が入ってない」と言う事でしょうか? >どの様にすれば宜しいのかお分かりになる方がいましたらお願いします。 ああ、またやっちゃった・・・投稿の順番違い。 レスキューですか?こいつはわからんです。 ここの掲示板と同じ考えでいいと思いますが。 「閲覧」モードを指定すると、 「HTTP_REFERER」に入って来る情報が違うからじゃないでしょうか?
#1088(CGI初心者です。氏)の書き込みを引用します: >レスどうも有難うございます。 > >>サイトは@niftyとお見受けしましたが、いかが? >>で、ここは「SSI」は使なかったはず・・・・ >>呼び出し方も違いますし。 >え?そうなんですか?せっかくいろいろやろうと思っていたのに… >かなりショックです。 > >例の「参照URLについて」のページを >結構読みかえして何度か悪戦苦闘していたのですが… > >この本のとおりにSII&CGIの使えるプロバイダってあります? >ご存知なら教えてください。お願いします。 > 探せば結構ありますよ。 あちきは「hi−ho」ですけど、ここはSSI使えます。 が、SSIは元々危険要素が大きいので、 「hi−ho」では制限がかなりあります。 呼び出しも「exec」ではなく「inclde」ですし、 ファイルの読み書きも環境変数を基準にしないとだめだし。 (試してみたら、そのままでも問題なく動きますが保証はありません) CGIを使えば同じ事は出来ますよ。 ついでなら、画像カウンタなんかを試してみたらどうですか? 呼び出し方法が違うといっても、そんなに難しくはないですし・・・ 判らない所があれば、気兼ねなく書き込んで下さい。 お師匠さんの方々がお答えして下さると思います。 あちきも応援します。
レスどうも有難うございます。 >サイトは@niftyとお見受けしましたが、いかが? >で、ここは「SSI」は使なかったはず・・・・ >呼び出し方も違いますし。 え?そうなんですか?せっかくいろいろやろうと思っていたのに… かなりショックです。 例の「参照URLについて」のページを 結構読みかえして何度か悪戦苦闘していたのですが… この本のとおりにSII&CGIの使えるプロバイダってあります? ご存知なら教えてください。お願いします。
#1016(KOOL氏)の書き込みを引用します: >わかやま神さま、水原@女神教会さま、見事動きました! >ありがとうございました!! >今回の件で、Perlの構文をもっと勉強しなきゃと思いました...。 >これからもbbs.cgiを題材としてお勉強させていただきます。 >本当にありがとうございました。 このような書き込みをここにしても良いのか判りませんが、 私も、快適活用ライブラリを使用していますが、 今回は、http://www.rescue.ne.jp/の「ツリー式電子掲示板 Trees」に 直接アクセスできない用にしようとしたのですが「閲覧」等クリックすると 自分を読み込んで何時までも掲示板に入れません。 #1015(水原@女神教会氏)の書き込みを引用します: >$ref = $ENV{'HTTP_REFERER'}; #リンク元 > >$come_url = 'http://*********/*********/*********/*********/___.htm'; >$for_url = 'http://www.yahoo.co.jp/'; >$this_url = 'http://*********/cgi-bin/bbs.cgi'; > >HTTP_REFERERにhttp://*****/が入ってない可能性もあるかもしれません。 >(多分しっかり入ってるはずだけど) この場合、「HTTP_REFERERにhttp://*****/が入ってない」と言う事でしょうか? どの様にすれば宜しいのかお分かりになる方がいましたらお願いします。 P.S ドッシー秋山さん、キャメル桜田さん ツリー型の簡単な掲示板作っていただけません?・・・・・ね。
#1085(CGI初心者です。氏)の書き込みを引用します: >どうも始めまして。前からずっとCGIとかに興味があって、作れるようになりたいなと >思っていたのですが、僕もつい最近この「快適活用ライブラリ」の本に出会いまして、 >せっせと読み進めている次第でございます。 >で、今日とりあえず簡単な奴を実際にUPして、動かしてみようと思い、UPしてみたのですが、 >全くもって働いてくれないのです(涙)ソースはコチラのページからダウンロードしたので >間違いが無いはずなのですが、どうして動かないのでしょうか? >僕の契約しているプロバイダは本の始めの方にのっていたように、普通のHtmlとか画像ファイル >は「homepage」というフォルダに。CGIスクリプトは「cgi-bin」というフォルダ >に置くように指示されているのです。だから言われた通り、"count_c1.pl"と"cout_c1.log"をcgi-bin >に、"count_c1.htm"をhomepageにUPしたのです。 >ディレクトリが違うので、.htmのほうで呼び出すところを ><!--#exec cmd="../cgi-bin/count_c1.pl"-->とか、フルパス指定とかしてみたのですが >やっぱりダメでした。どうしてもCGIを自分で作って動かせるようになりたいのです。 >どうすればうまくいくのかぜひ教えてくださいお願いします。 サイトは@niftyとお見受けしましたが、いかが? で、ここは「SSI」は使なかったはず・・・・ 呼び出し方も違いますし。 詳しくはこちらの「参照URLについて」を見てちょ!
どうも始めまして。前からずっとCGIとかに興味があって、作れるようになりたいなと 思っていたのですが、僕もつい最近この「快適活用ライブラリ」の本に出会いまして、 せっせと読み進めている次第でございます。 で、今日とりあえず簡単な奴を実際にUPして、動かしてみようと思い、UPしてみたのですが、 全くもって働いてくれないのです(涙)ソースはコチラのページからダウンロードしたので 間違いが無いはずなのですが、どうして動かないのでしょうか? 僕の契約しているプロバイダは本の始めの方にのっていたように、普通のHtmlとか画像ファイル は「homepage」というフォルダに。CGIスクリプトは「cgi-bin」というフォルダ に置くように指示されているのです。だから言われた通り、"count_c1.pl"と"cout_c1.log"をcgi-bin に、"count_c1.htm"をhomepageにUPしたのです。 ディレクトリが違うので、.htmのほうで呼び出すところを <!--#exec cmd="../cgi-bin/count_c1.pl"-->とか、フルパス指定とかしてみたのですが やっぱりダメでした。どうしてもCGIを自分で作って動かせるようになりたいのです。 どうすればうまくいくのかぜひ教えてくださいお願いします。
#1083(水原麗名@ういんずはーと氏)の書き込みを引用します: >とりあえず、$ENV{'REQUEST_METHOD'}がPOSTの時はカウンターを増やさないようにすれば大丈夫でしょう。 >さて、どうやってやる? >正解はCMの後で。(激違) し、CMぅ〜!?(^^; 本の方をみてみたけど$ENV{'REQUEST_METHOD'}については POSTかGETを返すっていうのしか書いてない感じですね・・・。 それだけで使い方のイメージはできるんですけど、 (入力フォームに書き込みがあればカウントしないという事なんですよね?) 具体的な書き方がいまいち判らない・・・(;_;) というか違う気がしてきた(^^;
#1082(忍氏)の書き込みを引用します: >ごぶさたしてます。 >なんか思い立ってminiBBSにCGIのカウンターを付けたんですが >書き込むとカウントしちゃうんですよね。 >簡単にこれを回避する方法ってありますでしょうか? > >使ってる基本スクリプトはサンプルリストの >28のミニBBSと >1のSSIカウンタのCGI版なのですが。 > >よろしくおねがいします。 とりあえず、$ENV{'REQUEST_METHOD'}がPOSTの時はカウンターを増やさないようにすれば大丈夫でしょう。 さて、どうやってやる? 正解はCMの後で。(激違)
[トップページに戻る] | 管理人 : キャメル |