トップページ⇒php
990コメント300KB

CGIだけど、なんか質問ある? Part 10

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/03/26 22:47ID:44KxXtaW
CGIの運用に関する質問スレッドです。

※CGIは特定の言語に依存するものではありません。

※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
  ↓
【Perl】初心者コーナー Part21
http://pc2.2ch.net/test/read.cgi/php/1047980851/l50

過去ログ・関連スレッドは >>2-5 あたりに
0175nobodyさん03/04/10 10:13ID:9A9ivQFe
>>174
誰かタスケテ。
0176nobodyさん03/04/10 10:16ID:9A9ivQFe
>>173
別ページへ飛ばして、location にアドを書き込む?
そうするとそのページのurl しか ref に残らない?

それでもいいけど、飛ばすために書き換える段階でコケテマス。
form でアドレス渡したり大変そうだし、飛ばす先のページも
cgiで書いとかなきゃいけないよね(これが大変なので、
ime.nuへただ乗りしようと言う算段なのだ。個人サイトだから
年に何回アクセスがあるか数えられるほどだから許せる?)。
0177nobodyさん03/04/10 10:19ID:???
>>174
みちのく落とす気無いのでとりあえず grep 使えば〜?
0178nobodyさん03/04/10 10:20ID:9A9ivQFe
>>176
でも、このやり方の方が本体をあまりいじらずに
済むなぁ……。

連続カキコ、スマンソン。
0179nobodyさん03/04/10 10:25ID:9A9ivQFe
>>177
フォームで受け取ったレス内容は$comment に格納される
んだけど、途中messageになったり、
aタグいれるときには$1ってローカル変数? に
いったん入ったりして、ニワカ改造者にはわかりにくいんすよね。

grepしなおししてるうちに訳がわからなくなるのよ。
一遍全部処理の流れを紙に書くとかしないと????

しかもその場所でアドレスを正規表現でチェックしてたりするので
(なら見つけてるじゃんと突っ込まれる? 自信ないの)。

「不可視ON」ってコメント入ってる場所<みちのく使いの方。
0180nobodyさん03/04/10 10:43ID:hn2nL/9a
http://www2.leverage.jp/start/
0181nobodyさん03/04/10 10:46ID:???
grep href * | grep '=~' | grep ...
と、思い付いたキーワードをどんどん追加してきゃ、かなり絞り込めるんと違う?
0182nobodyさん 03/04/10 10:49ID:???
>>181
それ以前に正規表現の勉強したほうがいいんじゃないか?
0183nobodyさん03/04/10 10:50ID:???
>>182
え?それは俺(181)に言ってるのかな…
0184nobodyさん 03/04/10 10:54ID:???
>>183
レス間違えた・・・
0185nobodyさん03/04/10 11:26ID:???
>>174
ageんなヴォケ!
0186nobodyさん03/04/10 12:18ID:JDxUoo5t
保守age
0187nobodyさん03/04/11 14:59ID:oWKH4H98
フォームで入力した値をsendmailを使ってメールで送信するスクリプトを使ってるのですが、
受信したメールの、一行の文字列が約2000バイト近くになると一部文字化けして、
以降約2000バイト毎に一部文字化けがはいっていくのですが、
一行に収められるテキスト量に限界があるんでしょうか?

sendmailでメールを送信する直前にメール本文をprintでブラウザに表示させて確認しても
問題はないようなので、送信時に文字化けがおこってる様なのですが。

#使ってるスクリプトはperlで、ヘッダのエンコードの指定等もちゃんとやっていて
#一行のテキスト量が上記の容量にならなければ問題は起こってません。
#JISコードで7bitを指定してます
0188nobodyさん03/04/11 15:10ID:???
>>187
ブラウザ上で確認しただけで満足せずに、テキストに落とすとかしてくれ。
文字化けってどう確認してんの?使ってるMUAが腐ってるとかは?
ここらに問題が無けりゃ、CGI の話じゃないのでは?鯖の管理人に聞いてくれ。
0189nobodyさん03/04/11 15:17ID:???
>>187
CRLFを含めて1000バイトまでです。(これはメールサーバの制限)
読むクライアントは80字までしかサポートしていない可能性もあります。
いずれにしてもそんな長すぎるのは非常識です。
0190nobodyさん03/04/11 15:28ID:???
>>189
げ、知らなかった。ありがとん。
探してみたら、RFC 2821の4章にありますた。
0191nobodyさん03/04/11 15:30ID:???
今時1000バイトじゃ何もできん。
0192nobodyさん03/04/11 15:33ID:???
>>191
なんで?
019319103/04/11 15:34ID:???
思いっきり勘違いした。
"一行が"1000バイトまでね。おかしいと思ったよ。。。
019419103/04/11 15:35ID:???
添付ファイルの内容を暗号化したものが数文字で改行されているのはそのため?
0195nobodyさん03/04/11 15:59ID:???
>>188
書き忘れてましたがファイルに出力等もやりましたが問題なかったです

>>189
やっぱりメールサーバの制限だったんですね、
非常識だとは思うんですが、自分がメールを受けるので
それでよしとしてました
テキストに落とし込んで添付ファイルとしてうけとることにします。

こういう仕様はなかなか何を調べればよいのかわからなくて
190で出てるRFCなるものを調べるとよいのですか?

さておきありがとうございました。
0196nobodyさん03/04/11 16:07ID:???
>>195
変な突っ込み入れたお詫びに、ドゾ
http://www.google.co.jp/search?num=50&lr=lang_ja&q=RFC%202821%20%93%FA%96%7B%8C%EA%96%F3
一番上から辿れる。
0197nobodyさん03/04/11 22:06ID:???
http://www.kent-web.com/count/dayx.html?

を使いたいのですが、借りたHPスペースでは
CGIを使う場合は例えばhttp://cgi-bin.abc.com/~aaa/というのが
与えられました。

 こういう場合はどうやって設置を行えばいいのでしょうか?
参考ページなどありましたらお願いします。
0198nobodyさん03/04/11 22:31ID:???
>>187
関係ないが、古いjcode.plにバグがあって、
一度に2,048byte以上処理しようとすると文字化けする現象があったような気がする。

記憶違いかな?
0199nobodyさん03/04/12 08:55ID:khJ44NHi
「wwwsech」で、検索結果をたくさん表示させたいんですが、どこをどういじくったらいいですか?
0200nobodyさん03/04/12 10:23ID:???
http://pc2.2ch.net/test/read.cgi/php/1047806915/221

>199
マルチするような屑は帰れ!
0201nobodyさん03/04/13 12:07ID:cbDOB3ut
>>200
屑はてめぇだ! カス!
0202nobodyさん03/04/13 17:00ID:???
CGIかPerlのどちらで質問していいんかわかりませんからいちおうこちらでやります。
ちがっていたらごめんなさい。
CGI-Perlで日記かいてます。
ログファイルに書き込む時、">>log.dat"っていうふうに追記でやってるんですけど
いちど全部読み込んで追記してあらためて書き出すほうがいいんですかね。
いちおう書くのは俺ひとりで読むのは友だち数人ていどなんで
ログファイルが飛ぶってことを心配しなくていいですよね。
0203nobodyさん03/04/13 17:07ID:???
>>202
>いちおう書くのは俺ひとりで読むのは友だち数人ていどなんで
>ログファイルが飛ぶってことを心配しなくていいですよね。

俺の言えることはお前が糞プログラマだってことだ。
0204nobodyさん03/04/13 17:17ID:???
>>203
>俺の言えることはお前が糞プログラマだってことだ。
そうです。
だからきいてるんだけど。
0205nobodyさん03/04/13 17:17ID:???
>>204
けんか腰だな。やる気か?
0206nobodyさん03/04/13 18:38ID:???
>>202
飛ぶ(消滅する)ことは無いかもしれないけど、同時に書き込みが発生して壊れたり、
不完全なものが読まれたりするかもしれない。
0207nobodyさん03/04/13 19:31ID:???
>>206
ありがとうございました
0208nobodyさん03/04/13 20:32ID:???
>>206
>同時に書き込みが発生して壊れたり
書き込むのは一人なんだから自分が送信ボタン連打したりしなければ大丈夫なのであ?
0209nobodyさん03/04/14 00:42ID:???
>>208
書き込みと表示のための読み込みが重なることを考えないと
0210nobodyさん03/04/14 01:27ID:???
>>209
>>208では>不完全なものが読まれたりするかもしれない
については言及していないのであ?
0211nobodyさん03/04/14 01:42ID:???
>>210
うむ。

> 不完全なものが読まれ
る可能性を無くすためには、

ちゃんとロックを使って、書き込んでいる途中では
だれも読み込むことが出来ないようにしないとまずいね。

> いちど全部読み込んで追記してあらためて書き出す
ようなことは、ファイルの最後にデータを追加したい場合に限っては
必要無いんじゃないかな。
0212nobodyさん03/04/14 02:21ID:???
追記でかまわないでしょうね
むしろ上書きのほうがちゃんと処理しないと危険だし
0213nobodyさん03/04/14 06:16ID:???
>>211
>だれも読み込むことが出来ないようにしないとまずいね。

Readは共有ロックで良かろう。
データが崩れてもリロードすればいい話。


>>212
事実関係の裏付けも含めて論理的に説明してくれ。
0214nobodyさん03/04/14 07:44ID:???
くずれているとはんだんできないようなくずれかたもあるかと。
0215nobodyさん03/04/14 08:38ID:qRV7URan
質問させてさせて下さい。
The roomのランキングスクリプトを利用しているのですが
総合カテゴリーを作成したいのですがうまくいきませんでした。
なにか良いアドバイスを頂けませんでしょうか。。
0216nobodyさん03/04/14 08:52ID:???
>>215
作者に聞きなさい。
その際、何がどううまくいかなかったのか、をちゃんと述べること。
0217nobodyさん03/04/14 09:44ID:qRV7URan
216さんご解答ありがとう御座います。
作者様にこの件に付きましてお尋ねしたのですが
ご返答の方が頂けず。。。もし同じスクリプトを使用している方が
おりましたらとおもい今回の書込みさせて頂きました。
まだ私はCGIを勉強し始めた初心者で皆様のお知恵を拝借したく。。
何卒よろしくお願い致します。
0218nobodyさん03/04/14 09:48ID:???
>>217

↓読んでねーだろ?
>その際、何がどううまくいかなかったのか、をちゃんと述べること。
0219nobodyさん03/04/14 10:07ID:qRV7URan
216さんご解答ありがとう御座います。
作者様に何度か詳しく訪ねてみたのですがご解答の方が
頂けなく。。そこで皆様にお知恵を拝借させて頂きたく書込みさせて頂きました。
CGIをまだ勉強し始めた程度で改造の仕方等が明確に出来ません。
どうかご助力頂きたく存じ上げます。
0220nobodyさん03/04/14 10:13ID:2hUYWHgK
         パンパン  パンパン  パンパン  パンパン  パンパン  パンパン 
      / ̄ ̄\/ ̄ ̄\/ ̄ ̄\/ ̄ ̄\/ ̄ ̄\/ ̄ ̄\/ ̄ ̄\
      | ・ U  | ・ U  | ・ U  | ・ U  | ・ U  | ・ U  | ・ U  |
      | |ι    | |ι    | |ι       | |ι      | |ι     | |ι       |
/ ̄ ̄ ̄ 匚    匚    匚      匚    匚    匚      匚      ヽ
| ・ U    \    \    \      \    \    \      \      ) ))
| |ι         \  ノ \  ノ \  ノ   \  ノ \  ノ \  ノ   \  ノ
U||  ̄ ̄ ||||   ||   ||   ||    ||   ||     ||
AVと玩具買うならここでつよ
http://lovetec-jp.com/
0221nobodyさん03/04/14 10:50ID:???
>>213
では君は上書きをどうやるか書いてみてくれ
0222nobodyさん03/04/14 10:56ID:???
>>219
なるほど、俺らに詳しく述べる必要はねーってことか。
チャンチャン
022320203/04/14 19:59ID:???
みなさんありがとうございます。
俺の場合追記でかまわないみたいですね。
書き込んでいる途中でだれも読み込むことが出来ないようにするため
「Readは共有ロックで良かろう。」これをするんですね。
どうやってこれをするのかわかりませんが
検索したらいっぱいヒットしたのでできるとおもいます。
ほんとうにありがとうございました。
まだ議論が続いているみたいなので
参考にします。
0224nobodyさん03/04/14 20:10ID:ZEuZsw6w
cでcgiを書き始めたのですが、
例えば、<input type="chekbox" name"�@" ...>
�@の部分を動的に設定する方法を教えてください。
0225nobodyさん03/04/14 20:24ID:???
>>224

printf("<input type=\"checkbox\" name=\"%s\" ...>",value); /* valueはchar *かchar [N] */
022622503/04/14 20:26ID:???
CでCGIプログラムを書くときは、隣接する文字列リテラルはひとつに連結されるということを覚えておくといいよ。
0227nobodyさん03/04/14 20:27ID:???
>/* valueはchar *かchar [N] */


char *value;

value = NULL;

printf("<input type=\"checkbox\" name=\"%s\" ...>",value); /* valueはchar *かchar [N] */
0228nobodyさん03/04/14 20:38ID:???
>>227
馬鹿ですか?
0229nobodyさん03/04/14 20:42ID:???
#ifdef NULL
#undef NULL
#endif
#define NULL "safe"
0230nobodyさん03/04/14 20:49ID:ZEuZsw6w
>>227
ちょっと聞き方間違えました。
HTMLの質問になってしまうんですが、HTMLでそれを
動的に(変数に入れてみたいなでもいい)ヤルことできますか?
0231nobodyさん03/04/14 23:08ID:???
>>230
できる。そういうロジックを書け。探せば何かあるかも知れんが。
0232nobodyさん03/04/15 23:40ID:h6mkATP2
アクセスカウンター作って、みんなに無料でレンタルするのって、5MBの容量のcgiサーバーで
大丈夫でつか?たぶん無理っぽい予感
0233nobodyさん03/04/15 23:43ID:???
>>232
それはあなたの想像力が足りないから。
0234nobodyさん03/04/15 23:54ID:???
>>232
無理です。レンタルカウンタには最低でも2GBは必要です。
023523203/04/16 00:01ID:uR91FW4B
やっぱりっすか。ウンコーー
cgi自体を提供することは大丈夫ですよね?
やってしまえばそいつらが勝手に自分のサーバーに設置してくれるということで。
0236nobodyさん03/04/16 00:12ID:???
>>235
微妙。提供するには最低でもPentium4 2.0GHz以上とGeForece3相当のグラフィックカードが必要です。
Oracleも必要ですので、購入してください。
023723203/04/16 00:22ID:g3p2EJXO
まじで?グァァァァァいじめだな。

てことは例えば秘密屋っていうサイトは数十ギガバイトのサーバーを使っているってことですか?
すげぇなぁ。

提供についてはもうちょっと悩んでみます。
0238nobodyさん03/04/16 00:36ID:???
Pentium4 2.0GHz以上とGeForece3相当のグラフィックカードが無かった頃は
無料レンタル屋って無かったよな〜。
023923203/04/16 00:41ID:g3p2EJXO
もうひとついいっすか?

提供するのに、何でそこまで早くなければいけないのですか?
プログラムをアゲルだけだから、遅くてもいいのではないのですか?
まじで初心者質問すみません
0240nobodyさん03/04/16 00:41ID:???
無理やりレジストリや/procをいじって、必要スペックに見せかけてた頃が懐かしい。
一応動きはしたが、ありゃひどかったな。メンテ要員が24時間体制で見張ってないと
いつ落ちるかわかったもんじゃない。
0241nobodyさん03/04/16 00:42ID:???
>>239
自分でよく考えてごらん。分からなかったらまだ提供するレベルに達していないってことだ
0242nobodyさん03/04/16 01:23ID:yhKtC7fc
>>239
提供する側のpcの性能がcgiに自動的に埋め込まれるので
速いマシンじゃないと提供された側が迷惑するよ。
2.0GHzとまではいかないが、1.5GHzは絶対必須。
0243nobodyさん03/04/16 01:40ID:???
>>242
そんな程度のマシンでもまともに動かせるほど軽くなったのか。
0244nobodyさん03/04/16 06:09ID:???
>>243
いや、omoikaneシステムのおかげだよ。
0245秘密屋03/04/16 14:12ID:j9DCcfuo
>>237
ちなみにウチのサーバーは
Pen�V933×2
RAM1GB
HD40G×2(一台はbackup用)
てなトコです。
0246nobodyさん03/04/17 00:47ID:???
こんにちは。
「ゆいちゃっと2000」というCGIを使用させて頂いている者です。
このCGIを使い続けたいのですが、IE6では、クッキーに関するフォーマットの問題から(?)正しく情報(ハンドルネーム等)を表示ことが出来ないようなのです。
スクリプトを自分で修正しようとしたものの、どうにも理解できず。
よろしければヒント等頂けないでしょうか…。

スクリプトは以下の場所で公開されています。
ttp://www.ibport.ne.jp/~yui/cgiwork/yuichat/index.html
0247nobodyさん03/04/17 03:12ID:???
>246
自分でどこまで調べたの?
>IE6では、クッキーに関するフォーマットの問題から(?)
って判断した理由は?

全部他人に面倒見てもらう気なの?
0248山崎渉03/04/17 12:00ID:???
(^^)
0249nobodyさん03/04/18 23:17ID:???
>>246
KENT氏のを見ればわかると思いますよ。
0250nobodyさん?03/04/19 12:07ID:???
セッションについて質問なんですが、
http://member.nifty.ne.jp/hippo2000/perltips/CGI/persistent.html
には、
>特定のセッションを参照するように状態識別文字列はURLまたはフォーム使われます。
って書いてあるけど、これって結局URLにQUERY_STRING付けるか、フォームのhidden
フィールドを使うってこと?
0251nobodyさん03/04/19 12:08ID:???
>>250
後cookie使う奴とかもあるけどな。まぁ、一般的。
0252山崎渉03/04/20 06:00ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0253nobodyさん03/04/20 23:16ID:???
叩かれ覚悟で質問です。
yy-bbsを使っているんですが、書き込みをすると
Write Error : ./past/1.dat
とエラーがでます。修正方法を教えてください。
0254nobodyさん03/04/20 23:22ID:???
( ゚д゚)、ペッ なめとんのか!
025525303/04/20 23:30ID:???
失礼しました。
今まで書き込めていたんですが、急にこんなエラーが出たもので…
どうやらここは自分が書き込むような領域ではなかったようです。
申し訳ありませんでした。逝って来ます。
0256nobodyさん03/04/21 01:17ID:???
つうかまず作者に聞いてくれ。
0257nobodyさん03/04/21 16:02ID:???
よく掲示板などで、前もってIDとパスワードが入力されていると、
次にID入れると自動でパスワードが"*****"表示されますよね。
それってどういう仕組みで実現されているんですか?
不思議で夜も眠れません。
諸先輩方にぜひとも教えていただきたいと思います。
0258nobodyさん03/04/21 16:04ID:???
>>257
一般的にはcookieを使うことが多い
0259nobodyさん03/04/21 16:05ID:Xfd3cX7/
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0260nobodyさん03/04/21 16:45ID:???
IEのオートコンプリートじゃないの?
0261nobodyさん03/04/21 23:16ID:???
>>260
それはサーバーサイドからだと操れないだろ。。
0262nobodyさん 03/04/21 23:28ID:???

<input type="password" name="ayaya">
0263nobodyさん03/04/22 00:39ID:HIsIiXvD
ほんとにくだらない質問なんですがcgiのカウンタってあぼーんしやすいんですか?
今日自分のページにひょんな理由から4000人も来てしまったので、一日で
自分が確認したかぎり10回近くカウンタがあぼーんされてしまいました。
phpのカウンタに変えたほうが安全なのでしょうか?
0264nobodyさん03/04/22 00:52ID:???
>263
連打するとすぐ壊れる。
鯖が脆いとすぐ壊れる。
作り方が下手だとすぐ壊れる。

排他処理スレに行ってらっしゃい。
0265nobodyさん03/04/22 01:03ID:???
>>263
PHPもCGIなのだが?
PerlのカウンターからPHPのカウンターに変えようか?って事か?
なぜ、PerlよりPHPの方が安全と思うのか謎だな。おい。

ちゃんとしたカウンター設置しろ。
0266nobodyさん03/04/22 06:24ID:???
>>265
flockがシステムコールたたきじゃないだけうれしいが。
0267nobodyさん03/04/22 06:24ID:JaL9nDaC
WInでActivePerlつかってるんですが、たとえばこんなプログラム作るでしょそして

# hello.cgi -- ダミー版
print "Content-type: text/html\n\n";

read(STDIN,$str,$ENV{"Content_LENGTH"});

print<<EOF;
<body bgcolor="silver"text="navy">
<h1>CGI TEST</H1>
length:$ENV{Content_LENGTH"}<p>
date:$str<p>
__EOF__

これを実行すると本当は$ENV{"CONTENT_LENGHT"}のところが数字に変わるはずなんですが、結局このように表示されます。
なぜだかわかりません。だれか教えていただけませんか?
# hello.cgi -- ダミー版 print "Content-type: text/html\n\n"; read(STDIN,$str,$ENV{"Content_LENGTH"}); print<
CGI TEST
length:$ENV{Content_LENGTH"}
date:$str

__EOF__
0268nobodyさん03/04/22 06:25ID:???
>>267
大文字小文字は区別されます。
0269nobodyさん03/04/22 06:25ID:???
>>267
httpサーバの設定がおかしいというかなされていない。
0270nobodyさん03/04/22 07:46ID:???
>>267
EOFと__EOF__は違う
0271nobodyさん03/04/22 10:31ID:???
>>267
サーバーの設定がされてないだけだね。
だからCGIとしては実行されず、単にソースが表示されてるだけ。

Apacheとかのサーバソフトは入れてる?
PerlだけじゃローカルでCGIは動かせないよ。

まあ、このスクリプト自体、実行しても「ヒアドキュメントの終端がねえぞゴルァ」って
怒られるわけだが……
0272nobodyさん03/04/22 12:26ID:???
ちょっと混乱してしまったので質問させてください。

自分で鯖を立てて、(Apache/1.3.27 (Win32) PHP/4.3.1 mod_gzip/1.3.26.1a)
とある2chブラウザ対応のPerl掲示板を設置したんですが、
datファイルがShift_JIS+CRLFになってしまいます。

実際はLFでないと、かちゅ〜しゃなどは読み込んでくれないらしいのですが、
LFで改行させるにはどうしたらいいのでしょうか?
スクリプトはShift_JIS+CRLFで書かれており、
dat書き込みの際の改行は"\n"が使われています。
0273nobodyさん03/04/22 13:01ID:???
>>272
datファイルがCR+LFになってるだけでしょ
0274nobodyさん03/04/22 13:07ID:???
>>272
0x0A
■ このスレッドは過去ログ倉庫に格納されています