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

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

■ このスレッドは過去ログ倉庫に格納されています
0001ななし ◆E6qQ.htN7o 03/01/03 02:56ID:H5ub4PWW
CGIの運用に関する質問スレッドです。

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

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

過去ログ・関連スレッドは >>2-5 あたりに
0083超シロウト03/01/18 23:47ID:ovwKqnQ9
ほんと申し訳ないのですが、
public_htmlと同じ断層にフォルダを作った時、そのパスは
どのように書いたら良いんですか?
.../.../.../フォルダ/
これでいいのかな?
0084nobodyさん03/01/18 23:53ID:???
>>83
相対パスで良いなら./
0085nobodyさん03/01/18 23:54ID:vrB72zE5
>>83
public_htmlを基準にするなら、
../フォルダ
じゃない?
0086nobodyさん03/01/18 23:55ID:???
>>83
相対パスなら./public_htmlまでのパス/../フォルダ/
だと思うけど
0087nobodyさん03/01/18 23:57ID:???
>>86
お帰り下さい。
0088nobodyさん03/01/19 00:02ID:ZcFFkCZZ
おまけ:

. =>ディレクトリ自身へのリンク
.. =>親ディレクトリへのリンク

先頭が/でなければ、それはカレントディレクトリからの相対パスとみなされる。
0089nobodyさん03/01/19 00:04ID:???
>>88
DOS6なら...とか..........とかも可能だったりする。
0090nobodyさん03/01/19 00:06ID:???
ほぉ・・知らんだ。あ。リンクっていうのは、正確には、ハードリンク。
0091nobodyさん03/01/19 00:07ID:???
>>90
つぅことは..を削除したりなんかしたら親御さんがいなくなってしまうのか。
0092nobodyさん03/01/19 00:19ID:???
ディレクトリ、というファイルの実体が削除されるときは、リンクカウンタが0になった時。
なので、..を消しただけでは消えないはず。

だけど、rmとかの普通のコマンドは、消すことを許可しない、から、普通には消せない
0093nobodyさん03/01/19 00:47ID:???
>>82
print `betu.cgi`;
0094nobodyさん03/01/19 01:17ID:???
>>81
index.cgi
0095nobodyさん03/01/19 06:53ID:???
>82
SSIではなく、ちゃんとスクリプト内に組み込みなさい。
普通SSIの使える拡張子は限られてるだろ。
0096nobodyさん03/01/22 22:36ID:/vlxGamR
webpowerのディレクトリゲイト、下記(サポ板)の質問にもあるように
携帯(J-PHONE)からアクセスすると認証後に飛べないようなんですが
どうしたら良いのでしょうか。
ttp://rank.nu/~wpis/bbs/support/bbs.cgi?mode=view;Code=154
上記で丁度同様の質問が出ていたのですが12月から回答がついてないみたいで…
0097nobodyさん03/01/23 05:02ID:???
ブラウザの履歴を調べる方法はないですか?
window.historyで「進む」「戻る」の実行はできますが、ページを移動せずに
そのURLが知りたいんです。
0098nobodyさん03/01/23 11:11ID:???
>>97
ブラウザがその情報を渡してくれなければどうしようもないだろ。
0099nobodyさん03/01/25 01:03ID:???
質問なのであげます。

apeboard+ で何行も改行するにはどうしたらいいのでしょうか。








こんなふうに。

スキン内のスタイルシートの制限は外したのですが…。
0100nobodyさん03/01/25 10:17ID:???
>>99
曽根。
0101nobodyさん03/01/25 10:32ID:A7yEoEyG
ファイルを書き込み中に、そのファイルを読み込むプロセスが発生したとしても、
ファイルの読み込みの成否はともかくとして、ファイルの書き込みは成功して、ファイル自体が壊れることはないのでしょうか?
0102nobodyさん03/01/25 10:38ID:???
>>101
データ書き込み中に読み込みなら書き込みは成功するはずです。

どっちにしろflockは必須と考えた方が幸せです。
010310103/01/25 10:51ID:A7yEoEyG
ありがとうございます。
ファイルの読み込みが、次に行うかもしれない書き込みに影響しないのであれば、
ファイルの読み込み自体はflockの手順を介さなくても平気なんですね
0104nobodyさん03/01/25 10:52ID:???
>>103
必須の意味を考えながら腕立て200回。
010510103/01/25 11:05ID:A7yEoEyG
わっ、そうですね‥
102の末尾に
そうでなければ、介すべき、仕様が明確に決まってなければ、介すべきといった感じなのでしょうか??
という具合ですかね
010610103/01/25 11:19ID:A7yEoEyG
じゃなっくっっーーてェーー
103だ103。
0107ここは?03/01/25 12:01ID:P9onD8CE
http://homepage3.nifty.com/digikei/ten.html
(*~ー゜)ノ ・・・・・心温まるの〜
0108nobodyさん03/01/25 12:29ID:???
書き込みが成功したとしても、後から読み込んだプロセスが(中途半端な)上書きをして
データがごっそり抜けることになる。
図入りで説明してるページも多いから調べてみそ。
0109nobodyさん03/01/25 12:59ID:2kNMQnUp
今PealでBBS作ってるんですが、
ログを保存するのに、1件につき1ファイルが良いのか
1つのファイルに詰め込んでいく方が良いのか・・・。
後者だとすれば何件くらいを目安にすれば良いのやら。。
と、悩んでます。

一体皆さんはどういう感じでつくっているのでしょう?
お奨めなやり方などがあれば教えていただけると嬉しいのですが。
おながいします。
0110nobodyさん03/01/25 13:01ID:???
>>109
>1件につき1ファイル
追加、編集、削除が容易だがどうやって検索するかが問題になってくる。まぁ、簡単と言えば簡単。

>1つのファイルに詰め込んでいく
ファイルをだだ読みすればいいので検索性は良い。しかし追加、編集、削除が面倒。まぁ、簡単と言えば簡単。

どっちにもメリットデメリットがあるのでお好きな方を。と。
011110903/01/25 13:10ID:???
>>110
了解しました。
しばらくは両方使ってみて
自分の好みの方にしてみます。
ありがとでした!
0112nobodyさん03/01/25 16:14ID:???
flockなんか使ってる香具師いるの?
0113nobodyさん03/01/25 16:15ID:???
>>112
(・Д・)?
0114nobodyさん03/01/25 17:20ID:J+PAIJA/
1ファイル1000個くらい詰めた方が効率がよろしい。ので

1ファイルに詰め込むんじゃなくて、1000個づつに分割したらどうかね
0115nobodyさん03/01/25 17:51ID:???
>>114
検索はしやすそうだけど
編集、削除はやっぱり面倒じゃないか?
追加は>>で追記してけば問題なさげ。

1ファイル1投稿だと排他あまり考えなくていいし
最悪トンでも1メッセージだけ。
検索しないなら1ファイルに1投稿が確実。(検索もできなくはない
編集、削除しないなら1ファイルへ数件詰め込めば検索楽。
0116nobodyさん03/01/25 18:02ID:???
>>112
しょっちゅう使っていますがなにか?
0117nobodyさん03/01/25 18:51ID:???
>>116
flockってファイルを開いてからロックするから同時に開けちゃうでしょ?
それでもイィ!!の?
0118nobodyさん03/01/25 18:54ID:???
>>117
無いよりは激しくまし。

と、言うかロックの時点でロックに成功したプロセス以外は待ち状態になるんでは?
ほら、スレッドみたいに。
011911603/01/25 20:13ID:???
>>117
>>118の言うとおり後からflockを呼んだプロセスはロックが解除されるまで待ち状態になる(排他ロックの場合)。
俺はCで使っているけど、Perlもこのシステムコールを呼んでいるだろうから同じでしょ。
0120nobodyさん03/01/25 20:17ID:???
>>118
無いよりはマシなのは当たり前だけど、ロックにflock使うのはどうかと思う。
ファイルを開いてからflockするまでの間に、別プロセスによって開かれる場合が(十分に)あるから。
プロセスIDとtempfile使ってうまくやるべき。
012111603/01/25 20:18ID:???
>>120
そのファイルが様々なプログラム(flockを呼ばないものもということ)から書き込まれるものでなければ問題ないと思うけど。
0122nobodyさん03/01/25 20:19ID:???
実際flock使ったロック方法では負荷テストすると同時書き込みが起こるよ。
0123nobodyさん03/01/25 20:20ID:???
>>121
いやいや、「思う」ではダメよん。こっちは実験してるんだから。
flockを呼ぶプログラムを複数同時起動すると>>122が起こる。これマジ
0124nobodyさん03/01/25 20:20ID:???
>>122
追加書き込みの際、きちんとファイルポインタをファイルの末尾にもってゆく処理をしている?ロックを解除する前にバッファをフラッシュしている?
0125nobodyさん03/01/25 20:21ID:???
>>123
俺もテストしたけど。
何回やっても成功したよ。
環境はLinux(2.4.18)
0126nobodyさん03/01/25 20:22ID:???
つーかそんな信用できないものをシステムコールとして実装するだろうか・・・
0127nobodyさん03/01/25 20:29ID:???
うーん。ということはflockで特に問題ないのか。
追加の時はともかく上書きの時にflockは使えないと思っていたのですが。。
認識違いのようですね。たぶん実験の時は他の部分がバグっていたのでしょう。
すいませんでした。
0128nobodyさん03/01/25 20:30ID:???
>>127
ただしNFS上では使えない。。。
0129nobodyさん03/01/25 20:57ID:???
>>123
OSも書かずに調子乗ってるバカ。

>>125
正常な技術者。
0130nobodyさん03/01/25 21:48ID:Qs+kaqdw
CGIの勉強をしたいのですけど、やっぱりサーバー建てる必要ありますか?
0131nobodyさん03/01/25 21:52ID:???
>>130
ローカルで小さなhttpサーバ立てれば十分です。
0132nobodyさん03/01/25 22:24ID:Qs+kaqdw
実際に使うとしたらやっぱり立てる必要はありますか?
お金を使わないで使う方法はどんなものがありますか?
0133nobodyさん03/01/25 22:26ID:???
>>132
戦う前から負けている。
0134nobodyさん03/01/25 22:29ID:Qs+kaqdw
できればCでCGIしたいんですけど
無料レンタルサーバで、使えるところないですかね?
0135nobodyさん03/01/25 22:29ID:???
>>134
そのレベルを語るにはまだ早い。
0136nobodyさん03/01/25 22:30ID:???
>>132
フリーのウェブサーバーソフトを使えば?

>>134
板違いな質問・・・・
トクトクならgccが使える。
0137nobodyさん03/01/25 22:32ID:Qs+kaqdw
とくとくまじですか?
ちょっと検索してみます。
サンクス
0138nobodyさん03/01/25 22:35ID:???
>>137
自分のマシンにSunOSが入ってないと無意味だぞ。
0139nobodyさん03/01/25 22:36ID:???
>>138
なんでだよ(笑)
telnet使ってサーバー上でコンパイルすればいいじゃない。
それとトクトクはLinux

iswebと勘違いしたとか?
0140nobodyさん03/01/25 22:42ID:Qs+kaqdw
iswebでもgccつかえるのですか?
0141nobodyさん03/01/25 22:43ID:2edfK8fF
IISで画像掲示板(cgi)を表示させるとDLLHOST.EXEがCPU100%
になる”こと”がある。
プロセスはその時2個あるので殺すと普通になる。何で?
0142nobodyさん03/01/25 22:44ID:???





























g
0143nobodyさん03/01/25 22:46ID:???
>>140
ローカルでコンパイルしてアップロードしろってことでしょ
0144nobodyさん03/01/26 06:26ID:Hn+ukPj1
テキストファイルを読み込んでHTMLを吐き出すcgiの場合、
テキストファイルの中身を一行づつHTMLに吐き出すのと、
テキストファイルの中身を一旦配列変数に入れてから
まとめてHTMLにして吐き出すのとではどちらがいいんでしょう。
0145nobodyさん03/01/26 06:46ID:hfzgm8Bu
★http://jbbs.shitaraba.com/travel/832/★
    ◆みんなの情報局◆
0146nobodyさん03/01/26 09:25ID:???
>144
ケースバイケース。
0147nobodyさん03/01/26 09:29ID:???
>>144
「どちらがいいか」って漠然と言われても……
使うメモリが少なくてすむ前者のほうがいいんでない?
0148w-inds慶太03/01/26 09:58ID:8J93RXm8
>>144
w-indsの慶太どぇす。
147のいうように、前者のほうがメモリへの負担が少ないでしょう。
ただ、後者のほうがメンテナンスしやすそう。
0149nobodyさん03/01/26 10:02ID:???
while (read(IN, my $buf, 8192)) {
 print $buf;
}
0150nobodyさん03/01/26 10:38ID:???
print while (<IN>); # 1行ずつ

@hoge = <IN>; # 配列経由
print @hoge;

コード自体は大差なし
読み込みから表示までの間にどんな処理をするかで使い分けれ
0151nobodyさん03/01/26 15:45ID:???
シーケンシャルな処理なら前者
ランダムアクセスな処理なら後者
0152nobodyさん03/01/27 00:36ID:zeV2mDZO
WinXP、Perl/CGI環境でgzip圧縮転送の動作テストをしたいんですが
Winにgzipを導入してPerlで動かすってことは可能なのでしょうか。
また、可能だとすれば、どのようにすればいいのでしょうか。
参考サイトでも構いませんので、教えてください。
0153nobodyさん03/01/27 00:47ID:???
>>152
「Winにgzipを導入して」の意味がさっぱり分からんのだが、
system・パイプではダメ?
0154nobodyさん03/01/27 00:49ID:???
>>152
ほい。
ttp://www.gzip.org/
0155nobodyさん03/01/27 00:50ID:???
>>152
参照元
ttp://najo.cc.sakura.ne.jp/~alimika/satomican/doc/natsumican.html
015614403/01/27 15:35ID:???
>>147 >>148
言葉足らずですみません。
はじめ後者でやって、メモリの負担のことを配慮にいれて
前者の方法に切り替えたんですが、HTMLが表示されるのが
遅くなったようなので、どうなってるんだろうと思った
のです。
メモリ重視なら前者、速度重視なら後者ということですね。
015714403/01/27 15:40ID:???
>>149-151
すみません。お礼言い忘れました。
ありがとうございます。
0158nobodyさん03/01/28 09:31ID:ysKV21Dy
初参加です。質問させてください。よろしくお願いします。
今チャット作ってるんですが、チャットマスターの発言は参加者には見えるけど
参加者の発言は発言者本人とチャットマスターにしか見えないようにするには
どうすればいいのでしょうか。
もうだいぶ探していますがどーしても分かりません。
ご存知の方、教えてあげてください。よろしくお願いします。
0159nobodyさん03/01/28 09:51ID:???
参加者ごとにログファイルをつくるとか・・・・
ログファイルをひとつにする場合は読み出すときにIPアドレスなどから出力してよいものを選択するとか・・・・

CGIではやらない方がよいと思うけど。
0160nobodyさん03/01/28 13:42ID:aPuGCgnw
>>159さんありがとうございます!
まだまだ分からないことだらけな当方ですが、
ログファイルを使用してのチャット作りに挑戦してみます。

ところでみなさんどうやって勉強してはるのですか?
とても詳しいですけど。これからの参考にさせて頂ければと思います。
0161nobodyさん03/01/28 14:11ID:???
>>160
> ログファイルを使用してのチャット作りに

使用しないでどうやってCGIチャットを作るの?(^_^;)
0162!16103/01/28 18:29ID:???
>>161
mod_perl環境でグローバル変数にログをためとくとか。
0163nobodyさん03/01/28 20:48ID:???
あるHPにアクセスした時、
403Forbidden
You don't have permission to access /○○○/ on this server.
って、出たんだけどー
これって、そのHPに入ることを拒否されてるって事?

どうやったら、入れるの?
0164nobodyさん03/01/28 21:26ID:???
>>163
どういうレベルで拒否されたかはわからないけど、とりあえずアクセスできない。
0165nobodyさん03/01/28 23:03ID:???
>>163
それは指定したURLへのアクセスが禁止されてるってことだから、
そのサイトのちゃんとした入り口から入れば大丈夫なはず。
(このエラーはGoogleの検索結果やブックマークなどの飛び先が
消滅することで出るパターンが多い)
0166nobodyさん03/01/29 20:07ID:AuAKLt9R
CGIにてFORMにて入力したファイルを表示するCGIをPerlで作っています。
ローカルにあるファイルだと、無事open()できるのですが、
外にあるファイル(http:// で始まるhtmlなど)をうまく扱えません。
公開されているHTMLやTXTなどをCGIにて表示させたいのですが、
どうすればいいのでしょうか?

教えてください
0167nobodyさん03/01/29 20:16ID:???
>>166
open()の説明によると、外にあるファイルは扱えないことになっている。
自分でソケット張って取りにいくのが普通かな。fsockopenとかLWPとか。
0168nobodyさん03/01/29 21:58ID:???
>>166
外部なら自分で取りに行かなくてもブラウザに送ったHTMLの中で
開かせればいいんじゃないの?
0169nobodyさん03/01/29 21:59ID:???
>>166
そんな君にはPHP
fopenでローカルファイルを開くように外部ファイルを開ける。
0170nobodyさん03/01/29 22:07ID:???
>>169
それようのオプション付けてコンパイルしてないと無効だけどな。
0171nobodyさん03/01/30 15:07ID:7OFGIowB
age
0172nobodyさん03/01/31 10:53ID:lEAaXrUa
http://www.kent-web.com/bbs/joyful.html?

↑この掲示板を使っているのですが、
掲示板の一時停止はどのようにすればいいですか?
cgiを上書きUPしても書き込みされたものには影響がないですか?
0173nobodyさん03/01/31 10:54ID:???
>>172
まぁ死ね。
0174nobodyさん03/01/31 10:55ID:lEAaXrUa
>>173
そんなこといわないで、教えてください。
0175nobodyさん03/01/31 11:55ID:lEAaXrUa
お願いします。。。
0176nobodyさん03/01/31 17:30ID:???
>>172
まぁパーミッションを変更しる。
0177nobodyさん03/01/31 17:41ID:lEAaXrUa
>>176
ありがとう(TT)
0178nobodyさん03/01/31 17:41ID:54d1aEzb






http://dx1.kakiko.com/sonota/335/3352/index.html




0179nobodyさん03/01/31 19:29ID:Ee0DVLll
メールアドレスを晒すのが嫌なのでformmailを設置したところ、
学校のunix鯖ではCGI上からsendmailとqmailが使えないみたいなので、
にゃぁぁぁぁぁぁぁ?さんのsendmail.cgiなるものを設置しました。
SOCKETでsmtpと通信するスクリプトらしいのですが、これも動く気配が無い。
動かないと分かれば諦めがつきます。鯖上でSOCKET関数が使えるかどうかは、どこでわかるのでしょうか?
0180nobodyさん03/01/31 19:33ID:???
>>179
適当なところにコネクション張ってみ?
018117903/01/31 20:14ID:Ee0DVLll
>>180
ttp://ash.jp/perl/socket_http.htm
ここのページ見てhttp.plで $host = 'yahoo.com';として
%perl http.pl http://yahoo.com/
とかやったらyahooのソースが見れたのですが、ブラウザ上からhttp.plを呼び出すと。
Error500 malformed header from script. Bad header=HTTP/1.1 200 となります。
0182nobodyさん03/01/31 20:17ID:???
>>181
そら、リモートの80番にアクセスしようとする奴拒否するサーバは少ないわさ。

後、ヘッダが変とか出てるので通信以前に死んでる予感も。
■ このスレッドは過去ログ倉庫に格納されています