インフォメーションBBS

[使い方] [タイトルのみ] [関連発言] [最新20発言] [過去ログ一覧]
お名前:  ←パスワード(修正用)
アドレス:
タイトル:

本文:
  表示数

1122 わかやま神 [RE] 2000/10/17 23:23 [修正]
RE4:書き込んでもカウントアップしないカウンター
#1121(忍氏)の書き込みを引用します:
>なんか色々考えて試行錯誤しましたが
>基本的な書き方が良く判らなくて困りました。
>しかしついさっきカウンターを増やすところを
>
>if ($ENV{'REQUEST_METHOD'} ne 'POST') {
>   $daylog[0]++;			#カウンタを+1する
>   }
>
>と、やったら巧く動いてるんですが
>本当にこれだけのことでよかったんでしょうか?
>いや、動いてるんだけどなんか心配で・・・・(^^;;

だいじょうぶですよ。これで。
ポストの時だけですから・・・

1121 [RE] 2000/10/17 04:07 [RES一覧] [修正]
RE3:書き込んでもカウントアップしないカウンター
#1083(水原麗名@ういんずはーと氏)の書き込みを引用します:
>とりあえず、$ENV{'REQUEST_METHOD'}がPOSTの時はカウンターを増やさないようにすれば大丈夫でしょう。
>さて、どうやってやる?
>正解はCMの後で。(激違)

なんか色々考えて試行錯誤しましたが
基本的な書き方が良く判らなくて困りました。
しかしついさっきカウンターを増やすところを

if ($ENV{'REQUEST_METHOD'} ne 'POST') {
   $daylog[0]++;			#カウンタを+1する
   }

と、やったら巧く動いてるんですが
本当にこれだけのことでよかったんでしょうか?
いや、動いてるんだけどなんか心配で・・・・(^^;;

1120 わかやま神 [RE] 2000/10/13 17:57 [修正]
RE:はじめまして
#1119(yuuki氏)の書き込みを引用します:
>SSI隠しカウンタ ver.1.1
>これダウンロードして、
>自分のHPに設置しようと思ったんですが、
>はずかしながらやり方がさっぱりわかりません。
>のでよろしければ、
>どなたか1から教えていただけないでしょうか?
>ちなみに魔法のiランドでページ作ってます。
>あつかましい質問ですいませんが、
>どうぞよろしくお願いしますm(__)m

「魔法のiランド」でSSIは使えますか?
これはとっても大事な事ですので、調べてみて下さい。
使えない場合はCGIを使用するしかないです。

どちらも使えない場合もあります。

1119 yuuki [RE] 2000/10/12 16:36 [RES一覧]
はじめまして
SSI隠しカウンタ ver.1.1
これダウンロードして、
自分のHPに設置しようと思ったんですが、
はずかしながらやり方がさっぱりわかりません。
のでよろしければ、
どなたか1から教えていただけないでしょうか?
ちなみに魔法のiランドでページ作ってます。
あつかましい質問ですいませんが、
どうぞよろしくお願いしますm(__)m

1118 海豚 [RE] 2000/10/12 08:44 [修正]
RE:ファイルのコピー
#1114(海豚氏)の書き込みを引用します:
> 今存在しているファイル(log.dat)を新しいファイル(back.dat)を作ってコピーしたい
>こんな事出来ますか?

違う方法で解決しました。
お騒がせしましたっすぅ。

1117 CGI初心者です。 [RE] 2000/10/12 00:38 [修正]
RE2:パターンマッチについて
#1116(うはく氏)の書き込みを引用します:
>お察しの通りこのままではごちゃごちゃになってしまいます。
>解決策として一番スマートなのは「区切り文字」を変えることだと思います。
>「/」を「#」にしてみてはどうでしょうか?
>Win の Perl では確認済み(OK)です。
>
>$graphic =~ s#(.)#<IMG SRC=http://homepage2.nifty.com/tweb_home/$1.gif>#g;
え?パターンマッチって#とかで区切ってもできるんですね。
ビックリしました。
おかげさまでそれで試してみるとうま〜くいきました。
毎回毎回僕の困難に答えてくださいまして。
いつもながら有難うございます。

1116 うはく [RE] 2000/10/11 20:34 [RES一覧] [修正]
RE:パターンマッチについて
#1115(CGI初心者です。氏)の書き込みを引用します:
>で、僕の契約しているプロバイダはgifファイルをCGIファイルとは別の
>フォルダに入れなくてはいけなくて、CGIからGIFファイルを指定するときは
>フルパスで示さなくてはいけないようになっているので、赤字の部分を
>$graphic =~ s/(.)/<IMG SRC=http://homepage2.nifty.com/tweb_home/$1.gif>/g ;
>としなくてはいけないのです。
>で、このようにすると、パターンマッチの $a=~ s/p/r/g のスラッシュと、
>パス指定のスラッシュがゴチャゴチャニなってしまうのではないかと思うのです。
>どうなんでしょうか?
>それと、もしそうならできれば解決策を教えていただければありがたいです。
>どうかよろしくお願いします。

お察しの通りこのままではごちゃごちゃになってしまいます。
解決策として一番スマートなのは「区切り文字」を変えることだと思います。
「/」を「#」にしてみてはどうでしょうか?
Win の Perl では確認済み(OK)です。

$graphic =~ s#(.)#<IMG SRC=http://homepage2.nifty.com/tweb_home/$1.gif>#g;

1115 CGI初心者です。 [RE] 2000/10/11 19:40 [RES一覧] [修正]
パターンマッチについて
またまたHelpお願いします。
今、count_g2.plなどのグラフィックでのカウンタで
悩んでいます。
どこを見直してもプログラムに間違いがないと思うのですが、(たぶんですけど;)
1つだけ気になることがあるのです。それは、
カウンタを5桁の数値に分けて、それをそれぞれ対応する画像に
置き換えるところ↓の部分

$graphic = sprintf("%05d",$log[0]);
				#5桁の数値を取り出す
$graphic =~ s/(.)/<IMG SRC=$1.gif>/g ;	#数値をイメージタグに置換
printf ("あなたで$graphic人め(本日%03d人)",$log[1]);

で、僕の契約しているプロバイダはgifファイルをCGIファイルとは別の
フォルダに入れなくてはいけなくて、CGIからGIFファイルを指定するときは
フルパスで示さなくてはいけないようになっているので、赤字の部分を
$graphic =~ s/(.)/<IMG SRC=http://homepage2.nifty.com/tweb_home/$1.gif>/g ;
としなくてはいけないのです。
で、このようにすると、パターンマッチの $a=~ s/p/r/g のスラッシュと、
パス指定のスラッシュがゴチャゴチャニなってしまうのではないかと思うのです。
どうなんでしょうか?
それと、もしそうならできれば解決策を教えていただければありがたいです。
どうかよろしくお願いします。

1114 海豚 [RE] 2000/10/11 17:55 [RES一覧] [修正]
ファイルのコピー
 今存在しているファイル(log.dat)を新しいファイル(back.dat)を作ってコピーしたい
こんな事出来ますか?

1113 わかやま神 [RE] 2000/10/10 23:27 [修正]
RE2:24.CGIダウンロードカウンタについて
#1112(海豚氏)の書き込みを引用します:
>わかやま神さまっ!本当にありがとうございますぅ。
>他のも色々とやっていたら御返事書き込むのを忘れてしまいました(ソーリー)
>
>それだけの知識を得るのにどの様な勉強をしたんでしょうか?

なんにもしてないっすよ。キッパリ!!
他の人が作られたスプリクトを眺めて、
自分自身スプリクトになった気持ちで追いかけているだけです(笑)
興味があるサイトは片っ端から見てチェックしていますし・・・
基本的な事もまだまだ覚えられない状態ですけどね。

>私も本気になって勉強しようと思い「楽だ本」を購入してしまいました。(ドッカーン)
>オラリー・ジャパンの「始めてのPerl第2版」ってやつです。
>買っただけで出来た気分になってしまう本ですね(単なる安心感だって・・・爆)
>約300ページもあって大変そうだけど勉強してみます。

ほえ〜っ!「らくだ」買ったんですか?
あれだけ分厚いと読む気がしないので、買わずじまいです。

>こんな勉強方法で大丈夫だろうか?・・・

努力あるのみってやつかなぁ?
まぁ、少しずつ覚えて行けば良いんじゃないですか?
「急いては事をし損じる」と申しますし。

1112 海豚 [RE] 2000/10/10 21:04 [RES一覧] [修正]
RE:24.CGIダウンロードカウンタについて
#1102(海豚氏)の書き込みを引用します:
> またまた質問で申し訳ありません。
>「24.CGIダウンロードカウンタ」をフリーウェブでやっているのですが、
>「dlcount.htm」を「dlcount.shtml」でやるとちゃんと出来るのですが、
>この内容を丸ごと「index.cgi」に入れて実行したら出来ました。
>でも「ダウンロード回数:----」の回数(数字)が表示されません。
>やはり「*.shtml」でないと「*.cgi」では表示されないのでしょうか?
>「*.cgi」で出来る、何か良い方法があったらお教え下さい。

「*.cgi」の中に回数読み込みのファイルを入れたら出来るようになりました。
お騒がせしました。

#1111(わかやま神氏)の書き込みを引用します:
>おおおおおっ!!よかった〜。
>大丈夫かな〜、まずいとこなかったかな〜」と心配しちょりました(笑)
>過去の投稿を眺めて初めて気が付きました。
>あちきってこんなに投稿してたのねん(爆)

わかやま神さまっ!本当にありがとうございますぅ。
他のも色々とやっていたら御返事書き込むのを忘れてしまいました(ソーリー)

それだけの知識を得るのにどの様な勉強をしたんでしょうか?
私も本気になって勉強しようと思い「楽だ本」を購入してしまいました。(ドッカーン)
オラリー・ジャパンの「始めてのPerl第2版」ってやつです。
買っただけで出来た気分になってしまう本ですね(単なる安心感だって・・・爆)
約300ページもあって大変そうだけど勉強してみます。
こんな勉強方法で大丈夫だろうか?・・・

1111 わかやま神 [RE] 2000/10/10 19:11 [修正]
RE25:ミニBBSに直接アクセスできないようになりましたね!
#1108(海豚氏)の書き込みを引用します:
>神様、仏様、わかやま神様!
>ありがとうございます。ばっちり出来るようになりました!
>色々とありがとうございました。

おおおおおっ!!よかった〜。
「大丈夫かな〜、まずいとこなかったかな〜」と心配しちょりました(笑)

過去の投稿を眺めて初めて気が付きました。
あちきってこんなに投稿してたのねん(爆)

1110 海豚 [RE] 2000/10/10 13:42
なるほど
#1108(海豚氏)の書き込みを引用します:

あ!どうもその様です。ありがとさんです。

話は変わりますが、
  foreach $line (sort @CS) {
      ($a01,$a02,$a03) = split(/\,/, $line);
	print "<center>$a01</center>\n";
  }
というのがあってこの場合のソートは「$a01」にかかってしまうのでしょうか?
「$a03」をソートしたい場合どの様にすれば宜しいのでしょうか?
こんな説明で分かるのだろうか?
また日本語ソート「あ〜ん」の平仮名のみでいいのですが
こんなソートって出来ますでしょうか?
よろしくですぅ。

1109 うはく [RE] 2000/10/10 12:01 [修正]
RE25:ミニBBSに直接アクセスできないようにするには
#1108(海豚氏)の書き込みを引用します:
>ところで、
>$name =~ s/ //g;       # 空白を削除?
>$name =~ s/ //g;   # 改行を削除?
>と言う事なのでしょうか?

上は半角の空白を削除。
下は全角の空白を削除。

じゃないかな?

1108 海豚 [RE] 2000/10/10 08:15 [RES一覧]
RE24:ミニBBSに直接アクセスできないようにするには
#1104(わかやま神氏)の書き込みを引用します:

神様、仏様、わかやま神様!
ありがとうございます。ばっちり出来るようになりました!
色々とありがとうございました。

ところで、
$name =~ s/ //g;       # 空白を削除?
$name =~ s/ //g;   # 改行を削除?
と言う事なのでしょうか?

1107 わかやま神 [RE] 2000/10/10 12:18 [修正]
RE:「SSI祝祭日メッセージ」の改造について
#1106(快速ミラ氏)の書き込みを引用します:
> 自分のホームページに、今日はなんの日、という感じで、過去の
>記念日をページに表示するCGIかSSIを探していて、「すぐに
>使えるPerlスクリプト CGI&SSI快適活用ライブラリ」の本を買いま
>した。
>
> そして、そこにあった「SSI祝祭日メッセージ」を使いたくて、S
>SI対応のプロバイダー(Hi-HO)と契約して、いざ流用・・・と思っ
>たら、ここのプロバイダーは、セキュリティの関係上、#exec cmdが
>使えないとのことでした(悲)。
> 
> この部分を別のコマンドにするか、CGIに書き直すかをしたいと
>思っていろいろ勉強しているのですが、行き詰まってしまっています。
>該当部分は、saijitu.htmのソースです。どなたかおわかりの方、ど
>うか教えて頂けないでしょうか。

おおっ!!久しぶりのお仲間がっ!
え〜と、どうするんだったっけ?
あ、そうそう、

まず最初に、
hi-hoではSSIの呼び出しタグを書いたHTML文書の拡張子は「shtml」でないとだめっす。
shtmlの呼び出しタグを下記のようにします。

<!--#include virtual="/cgi-bin/hoge/hoge/saijitu.pl"-->
「hoge」の部分は変えてくんなましょ。

次に「saijitu.pl」の改造

(1)祝祭日データのパス指定を変更
hi-hoでは環境変数「$ENV{'HOME'}」を基準に読み書きします。
$file = "$ENV{'HOME'}/cgi-bin/holiday.txt";	#祝日データファイル


(2)#HTTPヘッダの追加
(テキストデータ(プレインテキスト))であるとサーバーに知らせてやります。
print "Content-type:text/html\n\n";	#HTTPヘッダ(テキストデータ(プレインテキスト))
この追加場所は(2)の前でいいです。

あちきがやってみて、これで動きました・・たぶん。
というのも、改造が終わったスプリクトを誤って削除してしまって分からなくなっちゃてます。

それからhi-hoではこのスプリクトのデバッグ表示機能はそのままでは使えません。
引数を取得する場合も環境変数「$ENV{'HOME'}」を基準にしなければだめです。
デバッグ用の部分はコメントアウトしておいて下さい。
(そのままでも問題はないと思いますが・・・)

上手く動いているか確認する方法は祝祭日データを書き換える方が手っ取り早いでしょう。

1106 快速ミラ [RE] 2000/10/09 20:06 [RES一覧] [修正]
「SSI祝祭日メッセージ」の改造について
 こんにちは、はじめまして。CGI&SSI初心者です。

 ご教授頂きたいのは、「SSI祝祭日メッセージ」の改造について
です。
 
 自分のホームページに、今日はなんの日、という感じで、過去の
記念日をページに表示するCGIかSSIを探していて、「すぐに
使えるPerlスクリプト CGI&SSI快適活用ライブラリ」の本を買いま
した。

 そして、そこにあった「SSI祝祭日メッセージ」を使いたくて、S
SI対応のプロバイダー(Hi-HO)と契約して、いざ流用・・・と思っ
たら、ここのプロバイダーは、セキュリティの関係上、#exec cmdが
使えないとのことでした(悲)。
 
 この部分を別のコマンドにするか、CGIに書き直すかをしたいと
思っていろいろ勉強しているのですが、行き詰まってしまっています。
該当部分は、saijitu.htmのソースです。どなたかおわかりの方、ど
うか教えて頂けないでしょうか。

1105 海豚 [RE] 2000/10/08 23:58 [修正]
RE24:ミニBBSに直接アクセスできないようにするには
#1104(わかやま神氏)の書き込みを引用します:
>正規表現って難しいのねん。
>で、これでどうかな?
>
>#!/usr/local/bin/perl
>
>$r = $ENV{'HTTP_REFERER'};  #リンク元の取得
>
>($ref, $b) = split( /\?/, $r );  #「?」より前を取得
>
>$this_url = 'http://www.hoge.ne.jp/cgi-bin/hoge/hoge/env_cgi.cgi';  #実行CGI
>$come_url = 'http://www.hoge.ne.jp/hoge/env.shtml';  #リンク元
>$for_url = 'http://www.yahoo.co.jp/';  #yahooへぶっ飛ばす
>
>#比較が「0」なら直接「1」ならリンク元または自分自身
>$env_ok = ($ref eq $come_url || $ref eq $this_url) ? '1' : '0' ;
>
>if ($env_ok == 0) {
>	print "Location: $for_url\n\n";  #バイバイ
>	exit;  #おちまい
> }
>
>たとえば
>http://p4room.mda.or.jp/book/cgi/info.cgi?res=1098
>となっていたら、「?」より前を取ってきます。
>「$b」はダミーですから使う必要はありません。
>「$b」の中には「res=1098」が入っています。
>該当する文字(この場合は「?」)がない時は、
>すべての文字を返しますから問題ないでしょう。

「水原麗名@ういんずはーと」さん「わかやま神」さん、ありがとうございます。
早速やらせていただきます。

1104 わかやま神 [RE] 2000/10/08 12:35 [RES一覧] [修正]
RE23:ミニBBSに直接アクセスできないようにするには
#1101(海豚氏)の書き込みを引用します:
>#1100(わかやま神氏)の書き込みを引用します:
>>そうねっ!単純が一番!
>>で、手元に資料がないから・・・
>>正規表現と置換を利用すれば可能です。
>>置換だけでも出来ると思うけど。
>>それらしい事分かれば連絡します。
>
>ありがとうございます。
>期待に胸膨らませてお待ちしていま〜す♪

正規表現って難しいのねん。
で、これでどうかな?

#!/usr/local/bin/perl

$r = $ENV{'HTTP_REFERER'};  #リンク元の取得

($ref, $b) = split( /\?/, $r );  #「?」より前を取得

$this_url = 'http://www.hoge.ne.jp/cgi-bin/hoge/hoge/env_cgi.cgi';  #実行CGI
$come_url = 'http://www.hoge.ne.jp/hoge/env.shtml';  #リンク元
$for_url = 'http://www.yahoo.co.jp/';  #yahooへぶっ飛ばす

#比較が「0」なら直接「1」ならリンク元または自分自身
$env_ok = ($ref eq $come_url || $ref eq $this_url) ? '1' : '0' ;

if ($env_ok == 0) {
	print "Location: $for_url\n\n";  #バイバイ
	exit;  #おちまい
 }

たとえば
http://p4room.mda.or.jp/book/cgi/info.cgi?res=1098
となっていたら、「?」より前を取ってきます。
「$b」はダミーですから使う必要はありません。
「$b」の中には「res=1098」が入っています。
該当する文字(この場合は「?」)がない時は、
すべての文字を返しますから問題ないでしょう。

1103 水原麗名@ういんずはーと [RE] 2000/10/08 03:23 [修正]
RE20:ミニBBSに直接アクセスできないようにするには
#1098(海豚氏)の書き込みを引用します:
>#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)を
>カットしちゃう何てことは可能でしょうか?
>宜しくお願いします。

簡単だよっ。
URLには「?」はここでしか出てこない約束だから
正規表現を使って
s/\?.*//;
これでOK。(本当か?)

あと481個の発言があります。 [さらに20個を読む]
[トップページに戻る]管理人 : キャメル