CGIだけど、なんか質問ある? Part 8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/09/22 23:15ID:???※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
Perl 初心者コーナー Part16
http://pc.2ch.net/test/read.cgi/php/1032070299/l50
過去ログ・関連スレッドは >>2
0476473
02/10/28 14:58ID:???ディレクトリ書き込み権限は777になってます。
シンボリックリンクファイルの生成方法、誰かわかりませんか??
それからCGIで生成したディレクトリの削除も出来なくなってしまいました。
中に置いてあるファイルはunlinkで全て消すことが出来たんですが、
ディレクトリだけがどうしても残ってしまいます。
rmdir "$dir";
も書いてみましたがダメでした。
0477473
02/10/28 15:06ID:???シンボリックリンクが不可視ファイルで入っているらしいです。
ファイルが入ってるディレクトリをrmdirで消せるはず無いですよね、、
でもどうしてシンボリックリンクファイルがPerlで生成したのに
不可視ファイルで出来てしまうんでしょうか?
可視ファイルで生成する方法ありませんか?
0478nobodyさん
02/10/28 15:12ID:6oOjSB0Xできる方法ってありますか?
JavaScript使えればonClickとやらで出来るそうなのですがiモードでは
その方法は使えませんですた。。。
0480478
02/10/28 16:18ID:6oOjSB0X無理ですか・・・弱ったなあ・・・
実は今知り合いに頼まれて簡単な広告クリック集計システムを作ってるんですよ
(バリバリ初心者ですが^^;)
で、ある程度完成して携帯端末だけカウント取れるようにもなったんですが、
いわゆる不正クリックといわれる奴の対処法に悩んでます。
<IMG SRC="http://hoge.com/click.cgi?id=xxxx">
ってhtmlに埋め込まれちゃうとアクセスするだけでカウント
しちゃうので、困ってますた。
ふとクリックをPOSTで送れたら、うまく対処できるんじゃないかと
(ここらへん正直テキトーですが)思ってました。
う〜ん・・・どうするかな(@_@;)
0481nobodyさん
02/10/28 18:30ID:???他が一部だめなんでは?Jなんかは最近の機種だと出来たりするようだけど。
0482nobodyさん
02/10/28 20:48ID:YTyghVBKiモードはPOSTもOKだけど、フォーム以外はダメだな。
リンク先の広告ページに
<img src="hoge.cgi?id=xxxx&hoge=yyyy">
を入れといて、そこにアクセスがあったときにカウントするってのでどうよ。
定期的にyyyyの値を変更してサーバ側で保持してる値と一致しなければ
不正アクセスと見なすって感じで。
0483nobodyさん
02/10/28 22:38ID:ModqiGOk増やすような方法ってある???
0485483
02/10/28 23:16ID:ModqiGOkそいで、CGIでそのチャットのページをユーザーが自由に作れるようにするには
どうすればいいかなぁ???と。自由につくれるという事は、ページをそれに応じて増殖する必要があるわけだから。
1つ1つのチャットは変数かなんかで、それぞれの部屋の割り振りだできるようになればなぁって。
まだCGI始めたばかりだから、勉強も兼ねてこういうの作ってみたいと思いますた。
0487483
02/10/29 00:09ID:p38ubHh4ごめんなさい(泣 説明難しいなぁ。
http://www.daifukuya.com/chat/index.html
↑のサイトのチャットスクリプト使えば、チャット自体はCGIを使わなくてもOKでしょ^^
埋め込み式だから!これを埋め込んだHTMLファイルを増殖したいのれす。
このスクリプトのチャンネル部分を変数かなんかでそれぞれ変更すれば、同じファイルから違うページが作れるわけなんです。
あんまり分からないけど上の解説はperlでかくとこんなかんじ!
$roomは利用者がフォームで入力できるようなかんじ。
<PARAM name="channel" value="$room">
0488478
02/10/29 00:39ID:GLCucFJ8レス、サンクスです。
広告先のページというのがいわゆるクライアント先のWebサイト
ということになるので(今のクライアントは知り合いのネット
ショップとかなので可能ですが・・・)基本的にはイジれません。。。
大手広告代理店の広告みたいに1×1ピクセルの画像も同時に読み込ませて
アクセス数も取ってクリック率で見るしかないのかな〜。
今夜もまた眠れません。。。
0489nobodyさん
02/10/29 15:03ID:sSeR6CQ6これを防ぐにはどうしたらよいのでしょうか?
データ登録時にすべてEUCにして保存
表示時にSJISにしています。
0490nobodyさん
02/10/29 17:47ID:???0491nobodyさん
02/10/29 18:10ID:bxrzgdw8もしよろしければそれの具体的な方法をご教授いただけませんでしょうか?
ポインタでも結構です。
0493nobodyさん
02/10/29 23:27ID:???ちょっと感動。
(関係ないのでsage
0494あとちょっと...
02/10/30 01:25ID:9QvYHyfCENCTYPE="multipart/form-data"でバイナリモードで受信し、ファイルのWRITEまでは
できたのですが、アップロードできたファイルがZIP圧縮ファイルとして使えないのです。
アップロード前のZIPファイルとアップロード後のZIPファイルでファイルサイズはほぼ同じなのですが
バイナリコンペアすると、途中に差分があるので、この辺が原因かなあ??と思っているのですが・・・
今までに同じような経験で解決された方、教えてくださいm(__)m
0496nobodyさん
02/10/30 06:25ID:???いかにもCRLF問題っぽいな〜。
fopen(filename, "wb")ってやってる?
0498494
02/10/30 11:11ID:???実行してる一例ですが、
転送前:32916バイト
転送後:32656バイト(260バイト少ない)
です。差分箇所を調べたんですが法則性は見つからないです。
>>497さん
書き込みファイルのバイナリオープンはやってます。
CRLF問題ってなんでしょうか?
0500nobodyさん
02/10/30 16:01ID:???エージェントを見るとマックからだけで、Winからはこの現象は発生しません。
対処法などわかりましたらお願いします。
0502nobodyさん
02/11/02 10:38ID:8cCpuUIY書き出すためにオープンするファイルって別につくらないと駄目ですよね?
これをスクリプトで自動的に作るようにしたいのですが、何か方法はありますか?
手持ちの書籍にはそれに関することは書かれていませんでした。
0503nobodyさん
02/11/02 13:34ID:???0504nobodyさん
02/11/02 13:49ID:???open()の説明読み直したほうがいいぞ。
0505nobodyさん
02/11/02 15:58ID:8cCpuUIY>>504
ありがとうございます。open関数の説明を読んだのですが
touchに関しては触れられていませんでした。
ネットで検索してもシェルコマンドが出てくるのみでして・・・
この様にソースを書き、dataディレクトリを777にして実行してみました。
open(FH, "touch >data/test.hml") ;
print FH "<html><head><title>test</title></head><body>test</body></html>\n";
close(FH);
結果はファイルは作成されませんでした。
この場合は作成権限がないと言うことでしょうか?
0506nobodyさん
02/11/02 16:00ID:8cCpuUIY×open(FH, "touch >data/test.hml") ;
○open(FH, "touch >data/test.html") ;
0507nobodyさん
02/11/02 16:07ID:???0508nobodyさん
02/11/02 16:55ID:???touchはシェルコマンドだ。
open()はどこの説明読んだんだ?
0509nobodyさん
02/11/03 01:27ID:MCCBFgItシークレットでの会話は数字で内容が分かりません。
この数字を日本語にするのはどうすれば良いのでしょう。
0510nobodyさん
02/11/03 02:09ID:???0511nobodyさん
02/11/03 18:12ID:???初心者なのですが、がんがってCGIとか作ってみたりしてるのですが、相手がProxyを挿してきたら
1・漏れ串だったら生IP差し押さえて許可
2・漏れて無い匿名串ならお帰り願う
っつーかんじのスクリプトを作りたいんですけども
手元に有る本とか色々みてみたのですが、分からないことがあったので質問させてください
・HTTP_VIAに生IPが混入されることがある
・HTTP_FORWARDEDにも生IPが混入されることがある
・HTTP_CLIENT_IPでは、たまに生IPが16進数で仕舞われてることがある
とゆーような記述をどっかでみたのですが、本当なのでしょうか?
また、本当ならば対策を講じなければいけない頻度でそーゆーことがあるのでしょうか?
(ちなみにがんばって10コ串を拾ってきて診断サイトで見てきたのですがその中には該当例がありませんでした)
あと、"テメェみたいなトーシロにゃ思いつかないだろうがこんなとこにも注意しとけ"とか有りましたら御教授お願いします
0513nobodyさん
02/11/04 14:42ID:ULCphpkLcgiプログラムって、秀丸以外に書き込めないの???
ノートパッドじゃあかんの???
0514511
02/11/04 14:53ID:???回答どうもありがとうございます
ちょっとスクリプトに手を加えてファイルにそーゆーのを吐き出すよーにしてみました
しばらく様子をみようか…と思ったのですが致命的な欠陥が…(ぉ
>>513
別に平気なんじゃないかと思うのですがでければEUCコードとかも使えるエディタでやったほうがイイのではないかと思われ
うちはPerlEditorなるものを使っておりますがなんか挙動が変でつ、機能自体はあんまし問題は無いのでつが
色々と串について調べてたら行き着いたサイトなんですが
tp://www8.big.or.jp/~000/CyberSyndrome/evc.html
このサイトの診断を見て、プロクシ関連の情報、のとこの下に表示されてるのが
環境変数名なのかとフツーに思って書いていて、イザ動かしてみたら動かず…
試しに串さして環境変数を全部吐き出させてみたところ
これらの変数名が含まれてないことが発覚( ´Д⊂
どうすればいいのか、調べてみてもなんか全然引っかかってきません(汗
連続ですみませぬがどうか御教授ください…
0516nobodyさん
02/11/04 14:58ID:???されるの? ヘッダとしては、Client-IP: かな。見たことが
無いんだけど、こういうヘッダを付けるプロキシがあるんで
しょうか?
0518nobodyさん
02/11/04 15:35ID:???だからそんなの、サーバ管理者の気分次第でいくらでも変えられるんだってば。
HTTP_FUCK_YOUでもHTTP_2CH_NETでも好きにできるよ。
# 基本的にHTTPなんたらっていう環境変数は当てにならん。
0519うえの
02/11/04 22:11ID:tA0Z4q/O「10日でおぼえるPerl/CGI入門教室」という本で勉強しています。その本にはCDロムが
付録でついていて、その本に紹介されているプログラムが収録されています。私は本の
とうりプログラムを入力してプログラムを実行してみて、うまく行かなかった場合、付
録のCDロムのプログラムを1行ずつコピーして、自分で入力したプログラムにペースト
して実行してみて、入力ミスを探しています。だいたいの時はこれで、入力ミスを見つ
けてうまく行きます。ですが今まで2回ほど、すべての行をこのやり方でやっても、入
力ミスが見つからないことがありました(プログラムはうごかないままです)。一行ず
つコピー&ペーストしてうまく行かないのに、全ての行を一度にコピー&ペーストして
プログラムを実行してみると、うまく行きました。これは、いったいどういう事でしょ
うか?
すみません、何方かどうか宜しくお願いします。
0520☆脱
02/11/04 22:19ID:Xjm9EuR3http://www.i-chubu.ne.jp/~tomomi-h/marion/navi/navi.cgi?links=20311
0521511
02/11/04 22:45ID:???がんがって
>>518
そうは言っても日本人の朝食はパンかゴハンが主流であるわけで
それ以外の朝飯喰ってるヤツなんかあんましいないでしょ
つーわけで、何事にも一般論とゆーのがあるのでは…とゆー
>>519
気がつかないような些細なミスがあるに違いない
えと、あと>>514でした質問なのですが、
今現在Windows2K+ActivePerl5.6+AN-HTTPDとゆー環境でテストしてるのですが
なんか環境依存とゆーかたまにこの環境じゃ吐かない環境変数があるような(;´Д`)
つーわけで吊りつつもーちょっと自分で調べることにします…
0522あい
02/11/04 23:01ID:G/C4foN1何卒お願いします。
0523nobodyさん
02/11/04 23:06ID:???激しく板違い
0524nobodyさん
02/11/04 23:08ID:???マルチは氏ねよ。
0525nobodyさん
02/11/05 10:03ID:???の画像掲示板を設置して使っているのですが、タイトルなどに
半角カナを使われると文字化けしてしまいます。2chユーザーは
やはり半角カナ使用率が高いので、できれば半角カナも表示
できるようにしたいのですが、なにかうまい方法はあるのでしょうか?
0527525じゃないけど
02/11/05 18:39ID:5Ci8Aq1yあ、それでいいんですか。
EUC今まで使ったことがなかったんですが(^^;
なるほどー。
0528nobodyさん
02/11/06 17:50ID:???エラーにして、文字コードの変換は行わないね。
0529うえの
02/11/06 22:25ID:TwygVRhZ分かってきました。
0530nobodyさん
02/11/06 23:52ID:???0532nobodyさん
02/11/07 00:43ID:???0533nobodyさん
02/11/07 00:51ID:Gt0qGrXXSJIS
出力もSJISにしてるわ
0534nobodyさん
02/11/07 01:06ID:???0536age
02/11/07 07:52ID:???別にそんなこといわれてないよ。
半角カナで書き込むと化ける可能性がある、ってのならあるけど。
0538nobodyさん
02/11/07 11:13ID:Y8ygs/b/$testという変数に入ってるhtmlの<table>タグが邪魔なので消去しようと思い、
$test =~ s/<table width=100% border=0 cellspacing=0 cellpadding=15><tr><td>//;
$test =~ s/<\/td><\/tr><\/table>//;←スラッシュをエスケープしてるつもり
とやったけどダメでした。
この場合はどうすればよいのでしょうか?
よろしくお願いします、、、
0539nobodyさん
02/11/07 11:27ID:5h9enSGw<が<になってるとかじゃないよね。
0540nobodyさん
02/11/07 11:38ID:8nsGokx4急に
HTTP 405 - 許可されていないリソースです。
インターネット インフォメーション サービス
とでるようになりました。最近やったことといえば、SP3を
適用したことと、容量がいっぱいだったので、いらないフォルダ
(といっても公開してる部分の要らないIMAGEフォルダやHTML)
を削除したぐらいです。同サーバのASPは問題なく動いていますが、
別のCGIはアドレスを打つと「保存しますか?」とダイアログが出てきます
。原因および対処法わかりますか?
0541538
02/11/07 11:44ID:Y8ygs/b/というかめちゃ適当に書いたのにこれで合ってたとは、、、
ありがとうございました。
0542nobodyさん
02/11/07 14:15ID:X99Axcr/ユーザ設定用の部分でそのCGIのファイル名を入れさせるのってありますよね。
わざわざ $ENV{'SCRIPT_NAME'} 使わないのには何か理由があるんでしょうか。
0543nobodyさん
02/11/07 14:27ID:???$ENV{'SCRIPT_NAME'} が /hoge/index.cgi になるからとかじゃない?
0544nobodyさん
02/11/07 14:30ID:???まあ
$file = $ENV{SCRIPT_NAME};
$file =~s/.*\/([\/]+)$/$1/;
で良いんだけど、余計な処理するくらいなら指定させた方が良いだろ、とか。
0545nobodyさん
02/11/07 14:33ID:???コマンドプロンプトやらで動作チェックするとき$ENV{SCRIPT_NAME}が入らないからとか
0546nobodyさん
02/11/07 14:49ID:???sendmailでメールを送ります。
宛先が存在しないとfromに設定したアドレスに failure notice とかいう
メールが自動で来ますよね。
sendmailで送った直後にアドレスが存在しないかどうか、CGI側で判断するにはどうしたらいいんですか?
例えば、入力されたメールアドレスにただちにsendmailしてみて
正常に送られたらそのアドレスはテキストファイルに書き込むみたいなことをしたのです。
0547nobodyさん
02/11/07 15:16ID:???答え返ってきてるだろが
http://pc.2ch.net/test/read.cgi/php/1034583844/633
0548nobodyさん
02/11/07 15:27ID:???じゃぁ、よくある会員サイトで、
メールアドレスを間違えて入力して会員登録してしまった人が居るとしますよね。
で、定期的に会員にメール配信したりしますよね。
その度にメール配信の管理者へ「こんなメールアドレスないですよメール」が返ってくるって事ですよね?
最悪じゃないですか?
そんな会員管理者で勝手に削除すればいいと思われるかもしれませんが、
例えば会員数が膨大なサイトとかどうするんですか?
0549nobodyさん
02/11/07 15:50ID:???会員数の大きいところはreturn pathが専用のメアドだから、管理者は困らない。
定期的にreturn path をスクリプトでチェックすればいいんじゃないの。
0550nobodyさん
02/11/07 15:53ID:???けどそれはCGIでする事ではありえない。
0551nobodyさん
02/11/07 18:29ID:oUI+pRbtよろしくお願いします。
ttp://www.kent-web.com/chat/robo.html
↑この人工知能型チャットスクリプトを身内のサイト用に使いたいと思っているのですが、
フレーム表示ではなく一画面に発言フォームとログが出るように作り直したいんです。
簡単なHTMLなら書けるし、BBSの背景色を変える程度のCGI改造なら出来るので、
わかるかなーと思ってソースを見てみましたが、さっぱり分かりません。
どこをどう書き直したら、フレーム表示ではなく、一画面表示となるでしょうか?
スクリプトの中の怪しい部分を以下に載せさせてもらいますので、
教えていただければと思います。
0552550
02/11/07 18:29ID:oUI+pRbt#------------------#
# フレームを生成 #
#------------------#
sub frame {
# クッキーを取得
&get_cookie;
# クッキーにリロード時間/行数のない場合は初期値を代入
if ($ck{'retime'} eq "") { $ck{'retime'} = $re_sec; }
if ($ck{'line'} eq "") { $ck{'line'} = $line[1]; }
?
print <<"EOM";
<frameset rows="147,*">
<frame name="form" src="$script?mode=form&retime=$ck{'retime'}&line=$ck{'line'}">
<frame name="log" src="$script?retime=$ck{'retime'}&line=$ck{'line'}">
<noframes>
<body>
フレーム非対応のブラウザの方は利用できません
</body></noframes>
</frameset>
</html>
EOM
exit;
}
0554551
02/11/07 18:30ID:???ここがフレーム表示を決めてるのは間違いないと思うんですが、
普通、フレームってframe srcにHTMLファイルのパスが入りますよね?
このスクリプトだと、
<frame name="form" src="$script?mode=form&retime=$ck{'retime'}&line=$ck{'line'}">
<frame name="log" src="$script?retime=$ck{'retime'}&line=$ck{'line'}">
こうなっています。
src以下が、それぞれ入力フォームとログ表示画面を現しているんじゃないかという事は分かるんですが、
それをどう並べれば一画面表示となるのかが分かりません……
どなたか、お教えいただけないでしょうか???
0555nobodyさん
02/11/07 19:00ID:???フレーム使わないならチャットスクリプトじゃなく一行掲示板みたいなの
探したほうが早いと思うが。
0556nobodyさん
02/11/07 19:10ID:???http://pc.2ch.net/test/read.cgi/php/1028193595/
0557551
02/11/07 19:11ID:wiJfESIxレスありがとうございます。
このroboチャットに入ってる自動応答の人工知能スクリプトを、一画面で使いたいんです。
0558551
02/11/07 19:12ID:???あ、ありがとうございます。
そちらへ移った方が良さそうですね。
すみません、>>551の質問は無視して下さい>all
失礼しました。
0559nobodyさん
02/11/07 21:31ID:???ログの各項目をタブで区切ってるんですが
訪問者が名前とかメールとか発言とかでタブ使うと表示項目がズレちゃうとゆー欠点が有るのです
それを消そうと、タブをスペース4つに置換とか、""に置換とかしたいのですが、できません
$name=~ s/\t/ /g;
$name=~ s/[TAB(のつもり)]/ /g;
とかはやってみたのですが…
すみません、何卒御教授ください
0560nobodyさん
02/11/07 21:44ID:???tr使うとか・・・フォームから受け取るときにタブ全部消すとか・・・あ、消すのは聞いてないか。
0562nobodyさん
02/11/08 02:28ID:???あ,分かった。ログ自体が
>名[TAB]前[TAB]メール[TAB]ほげほげ
ってなってるんですね?
ログに保存する前に置換するべきだと思うんですが。
0563559
02/11/08 08:07ID:???trって正規表現を使わない置換演算子でしたっけ…
とりあえず利用者の 入力してきたタブを消せればよい方向です
>>561
ぇゃ、なんかそれじゃできませんでした(゚∀゚)アヒャ
なぜだろう…
>>562
そう、そういう意味でつ 伝達能力低くてすみません
今現在はそのように入力されるとメール欄に前が、コメント欄にメー(略
とりあえずガッコから帰ってきたら御教授いただいた方法とか試してみます
他のとこでも不具合がポコポコと・゚・(ノД`)・゚・
0564nobodyさん
02/11/08 08:19ID:???s/\t//g;
0565559
02/11/08 15:29ID:???むしろなぜ昨日できてなかったのか…
すみません、馬鹿丸出しですので吊ってきます
御親切にしていただいて嬉しかったっす どうも有り難うございました
>>564
URLエンコードってなんですか(;´Д`)
ぐらいの初心者ぶりを発揮しています
おいおいがんがって勉強していくつもりで…
(´-`).。oO( バグの原因は変なとこで変数を宣言していたことでした )
(´-`).。oO( ソースの書き方がめちゃめちゃダメぽな匂いがプンプンです )
0566nobodyさん
02/11/09 00:43ID:???今までずっと1つのファイルでまとめてたんですけど、覚えきれなくなってきたんで。
0567nobodyさん
02/11/09 12:41ID:???半角英数字以外と数字以外の規制はどうやればいいですか?
0568nobodyさん
02/11/09 13:31ID:XnEMYEgkハッピーマンデー対応にするととてもむずかしいです。
そもそもハッピーマンデーの仕組みがわからないな・・・
よろしくおねがいします。
0570nobodyさん
02/11/09 16:46ID:???初心者です・・・それもかなりの・・・。
ぇぇと、CGIですよね・・・
CGIでなんていうか・・・、掲示板とかゲームとか作っていきますよね・・・。
それで、掲示板にしろゲームにしろつくるときにはまず最初に何からやればいいのでしょうか?
なんか他のとこでまずperlでやるんだったらなんかダウンロードするとか言われたんですけど、よくわかりません。
何をダウンロードしてどこでどのようにつくっていけばいいのでしょうか?
perlとかはどこに打てばいいんでしょうか?
なんかおかしいこと行ってるかもしれませんね・・・私・・・。
すいませんがどなたか教えてくれませんでしょうか?
0571nobodyさん
02/11/09 16:59ID:XnEMYEgkhello world!!
0572nobodyさん
02/11/09 17:04ID:???それをどうやればいいのかなってこと・・・。
ちょっと私の質問はやヴぁかったみたい・・・w
0573nobodyさん
02/11/09 17:06ID:XnEMYEgkprint"Content-type: text/html";
print"hello World!!";
■ このスレッドは過去ログ倉庫に格納されています