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

△▲ WebProg 初心者の質問 Part4 ▼▽

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/06/20 12:10ID:???
2ちゃんねるは初めて。
WebProg 板は初めて。
質問したいけど、どうしたら良いか分からない。

そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。

質問する前に、まずはここを読んでね。

2ch 総合ガイド
http://www.2ch.net/guide/
記念カキコ専用スレ
http://pc.2ch.net/test/read.cgi/php/982575577/
前スレ
http://pc2.2ch.net/test/read.cgi/php/1045091733/
http://pc2.2ch.net/php/kako/1037/10372/1037222063.html
http://pc.2ch.net/php/kako/1030/10301/1030151932.html

お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。
0412nobodyさん03/07/06 12:49ID:???
>>411
+-- ezmup / ezmup.cgi [700]
| ezmuplog.cgi [600]
| jcode.pl [644]
| cgi-lib.pl [644]
|
+---- img [705] /
|
+---- lock [707] /
0413nobodyさん03/07/06 12:51ID:o+D1+xYE
>>421 パーミッションをそれに変えてみます
0414あぼーんNGNG
あぼーん
0415nobodyさん03/07/06 12:55ID:???
>>412
なぁ、CGIが700なのにplをowner以外に公開する意味はあるのか?
0416nobodyさん03/07/06 12:55ID:o+D1+xYE
>>412 変更したけど相変わらずERROR出ます。
0417nobodyさん03/07/06 12:58ID:xIV38i+N
>>416
エラーが出ると言いながらエラーメッセージ書かないのはアホのすることです。
0418nobodyさん03/07/06 13:02ID:???
>>415
ああ、ほんとだw
0419nobodyさん03/07/06 13:03ID:???
ttp://auau.s35.xrea.com/ezmup でアクセスしてるんじゃねーだろーな・・・
0420nobodyさん03/07/06 13:11ID:???
この板ってさ、ほとんどスレ落ちないじゃん。

CGI設置について質問
http://pc2.2ch.net/test/read.cgi/php/1054216089/

↑こんなのまだ残ってんだけど、設置モノはそっちに振らない?
0421nobodyさん03/07/06 13:18ID:DtJTYCHd
>>419ちがいまふ http://auau.s35.xrea.com/ezmup/ezmup.cgi でアクセスしてます。
0422nobodyさん03/07/06 13:25ID:???
>>421
腹立つほどわかりやすいエラーが出てるんだが。

Error Message: No such file or directory
Error Number: 2



消えろ。
0423nobodyさん03/07/06 13:26ID:???
This message usually indicates there is a problem with the script itself. Often this indicates either that th
e #! line of the script is incorrect, or the script was uploaded in binary mode instead of ascii mode. Check
to make sure that the script does not have control-M's at the end of every line. That will prevent it from
An easy fix that takes care of this most of the time is to put '#!/.../perl --' instead of '#!/.../perl' on the first
line of the script.
If you are not the owner of this script, please forward this error and the URL that caused it to the script owner.
That is often the component in the URL right after /cgiwrap/.



思いっきり説明してあるじゃん・・・。
0424nobodyさん03/07/06 13:27ID:lvk82yLy
perlで掲示板を作っているのですが、ファイルの後方から
任意の行を読むにはどうすれば良いのですか?

$hoge=<HOGE>だと前方から1行読むだけですし、
@hoge=<HOGE>だと全部読んじゃいますし。
0425nobodyさん03/07/06 13:31ID:???
>>424
ストリームの性質上、スマートな解は無いかと。
0426nobodyさん03/07/06 14:00ID:???
>>425
そうですか…。
@hoge=<HOGE>でなんとかするのが無難ですかね。
0427nobodyさん03/07/06 14:12ID:???
>>426
whileで行数が一緒だったときそれを読むってのは?
0428nobodyさん03/07/06 15:07ID:???
>>427
それしかないよね。
あと、行数を数えて、「行数-n」行がどうたらこうたらとか
0429nobodyさん03/07/06 15:08ID:???
どうせ大した量じゃないんだから

@hoge=<HOGE>
$hoge[@hoge - n)

する。
0430nobodyさん03/07/06 15:15ID:???
>>426
「任意の行」ってのは一行?それとも数行のこと?
掲示板ならどっちもありえるが。
まあ、一行あたりのだいたいのバイト数が予測できるなら、
seekで読み始める位置ずらせば全部読むよりましになる。
0431nobodyさん03/07/06 15:18ID:???
>>430
>バイト数が予測できるなら
掲示板に関しては無理でしょう。\n読み逃した場合すべてがパーに。


って言うか保存時に最新記事が一番上に来るように保存しろと。
0432nobodyさん03/07/06 15:24ID:???
>>431
配列に入れたあと先頭の要素をshiftすれば良いのでは。
まあ、読み主体で考えると前から追加するのがスマートだね。
0433nobodyさん03/07/06 15:39ID:???
こんなに書き込みが…。
皆さん、ありがとうございます。
教えられた方法をもとにいろいろ試してみます。

>>430
数行のことです。言葉が足りませんでした。
追加書き込みしてたので、後ろから50行とか40行とか
読む方法を探していたんです。
0434nobodyさん03/07/06 17:57ID:???
>>433
http://www.din.or.jp/~ohzaki/perl.htm#File_Tail

こういう方法もある。

というかこれ、俺が書いたコードなんだがこんなところに載ってたのか。
なんかバグ直してあるし。

>>426>>429
掲示板のログって数MBになることも珍しくないから、規模によっては致命的な
負荷になると思う。

昔、$line++ while(<HOGE>);して行数数えて、もっかいゼロにseekして
読み直す方法を良く使ってた。
今は、ログに書き込むときに先頭が新しくなるように書き込むようにしてる。
0435nobodyさん03/07/06 18:41ID:???
>>434
でも、結局のところスマートな方法じゃないんでしょ?
0436あぼーんNGNG
あぼーん
0437nobodyさん03/07/07 00:14ID:???
書き込みは1回だけど、読み込みは理論上無制限なわけだから、
書き込むときに「読みやすいデータ構造」にしておくのが理想だわな。
0438nobodyさん03/07/07 11:24ID:???
>>436
とうとう脱がないとやっていけないくらい使い込んじゃったのか。

とうとう脱いだにワラタ
0439nobodyさん03/07/07 12:01ID:2fgNaco2
一般プロバイダに設置する日記システムを探してみたのですが、
以下のものは利用できないのでしょうか?

たぶんプロバイダの登録サイトの /cgi/ とかのフォルダ以下に
*.cgiファイルを設置するなどの方法でいいのではないかとおもっております。
何かの入門書で読んだ記憶があるので。

このサイトは、ツッコミ可能なWeb日記システム"tDiary"の公式サイトです。
http://www.tdiary.org/

日経Linux 2003年6...とあるので最近のものにはちがいないとわかりました。

動作環境
>・・・・・・CGIが実行できるWebサーバであれば、たいていは動くと思われます。
http://www.tdiary.org/20021110.html

プロバイダ(YBB!など?)やwebホスティングサイト(tripodとか?)のサーバー上に設置する
分には、上記のページ内の細かな条件はほぼ無視して考えてよいのでしょうか?
たぶん自前の回線でサーバーを設置する場合の条件を指しているの
かと思いましたが、いまいち区別すべき点がわかりません。
プロバイダのOS(?)とか言われてもよくわかりませんです。

この掲示板の「パソコン初心者板総合質問スレッドVol.417 」というところから、こちらの専門の場所に質問を移させていただきました。

上のリンク先のプログラムは初心者ながら、
どちかといえばかなり難しい種類のシステムであまり初心者向きでは
ないと自覚はしております。とりあえず例としてですけれども。
多機能のものの方が、不足になることはないとおもうので
いいのではないかとおもっています。
0440nobodyさん03/07/07 12:06ID:???
>>439
せめて自分でやってみてから質問してみてはいかがでしょうか?
ここは無料サポートセンターとは違いますよ。
0441nobodyさん03/07/07 12:58ID:0RPZS0uj
>>439
>>440
ご助言ありがとうございました。
Web制作 の
31: Webサイト制作初心者用スレ vol.60 (749)
に移動させていただきます。
sageます。
0442nobodyさん03/07/07 13:04ID:???
>>441
あくまで自分でやってみるという選択肢はないんだな・・・。

全然sageてないし。
0443nobodyさん03/07/07 18:14ID:rbHTk8WY
えと、質問です。
BBS(YY-Board)でSSIを動作させたくて、
CGIのHTMLヘッダ部分にSSIを埋め込んだのですが動作しません。
一応、htaccessに
AddType text/x-server-parsed-html .html .shtml .cgi
としてみたのですが同じです。
なにかまだやる事はあるのでしょうか?
それともCGIではSSI実行は不可能なのでしょうか?

よろしくお願いします。
0444nobodyさん03/07/07 18:29ID:???
>>443
> それともCGIではSSI実行は不可能なのでしょうか?

結論から言うとできる。スペースの管理者に聞け
それよりも SSI で実現しようとしている事を CGI でやればいいと思うが?
0445あぼーんNGNG
あぼーん
044644303/07/07 18:39ID:???
>>444
レスどうも。できますか。
ちなみに書き忘れましたが鯖はxreaです。
BBS以外のページでは動いているから動作自体は可能です。

>それよりも SSI で実現しようとしている事を CGI でやればいいと思うが?
SSIはexec cgiでCGIを呼び出す格好なんで、
おっしゃるとおり始めはCGIに呼び出し先のCGIを埋め込めばいいと思ったのですが、
どこに埋め込めばいいのかわからなくて。。
HTML出力部分に直接記述してもできないだろうし。
044744403/07/07 18:50ID:???
>>446
require すれば?exec cgi でやってる事なんなのか解らんけど
0448nobodyさん03/07/07 18:54ID:???
>>446
ここは作る人間が来るスレですよ。
044944303/07/07 18:59ID:???
>>447
おぉ、こんな便利なコマンド(?)あったんですね。
自分のCGI音痴にもほどがあるなぁ。
呼び出しCGIはCSS切り替えスクリプト(Cookieでlink relを判別するモノ)です。

ただこれではXML宣言の前に<link>タグが来ちゃって(・A・)マズーですね。
もうちょい勉強してみます。ありがとうございました!
045044403/07/07 19:01ID:???
思ったんだが、俺、perl として断定して答えてしまった…。
0451nobodyさん03/07/07 19:18ID:lnG7WYW8
いわゆる掲示板や検索・リンクシステムなどに代表される
データファイルを読み込んで展開するCGIに関してですが…

配列を読み込み表示する際に、
「foreach」を使うべきか「while」を使うべきかで悩んでます。

一般的にはforeachを用いた物が多いようですが、
使用した感じではwhileの方が簡単に感じます。
処理効率や他部分への取り回しの良さなどを考慮して、
どちらが良いと思われるのでしょうか?
0452nobodyさん03/07/07 19:29ID:2JuGMJAv
ggiっていうのか?
自分でBBSつくりたいんだけど、どうやって作んの?
どんな言語使うの?
0453nobodyさん03/07/07 19:37ID:???
>>451
perl だよな?
・while (式の内容を評価し、真である限りループ)
・foreach (配列の要素を順次取り出し、無くなるまでループ)
0454nobodyさん03/07/07 19:38ID:???
>>453
while(@a)
0455nobodyさん03/07/07 19:50ID:???
おや、豊地ですか…
質問スレなんだからちゃんと答えろよクズども
0456nobodyさん03/07/07 19:51ID:???
>>455
誰だよおまえ?
045745503/07/07 19:59ID:2JuGMJAv
すまなかった
俺は>>452です
とっとと答えろ
0458あぼーんNGNG
あぼーん
0459nobodyさん03/07/07 20:20ID:???
>>457
cgiの間違いだろ?
bbsを作りたいならまず調べ方を覚えろ
使える言語はサーバー側に聞け
0460あぼーんNGNG
あぼーん
046145103/07/07 20:28ID:lnG7WYW8
>>453
perlです。
foreachとwhileのどちらでもかまわないのですが、
自分の中でどちらかに統一したいと思ってます。
一般的にはforeachの方が多い様ですが、
なぜなのか?根拠の様な物がほしいのです。
0462nobodyさん03/07/07 20:28ID:xUqxL1RG
>>457
言語はPerlかPHP辺りで。
作り方は入門本でも探してお好きにどうぞ。
BBSを例にした入門本もあるから、適当に探してちょ。

で、掲示板で質問するときに答えを急かせるのは嫌われるって事を
覚えとこうね。
期待通りの答えが返ってくるって保証なんてないんだし。
態度がでかいと放置される確率が高くなるだけ。
0463↑03/07/07 20:29ID:???
死ねよ
0464あぼーんNGNG
あぼーん
0465nobodyさん03/07/07 20:29ID:???
>>459
死ねよ
0466nobodyさん03/07/07 20:31ID:???
なんスかそのperlって。
PHP?俺がいつもやってるのはP2Pって全然関係ないですね(タハッ☆
もう少し詳しく説明してみろや
まず何が必要なんだ
0467nobodyさん03/07/07 20:34ID:???
>>466
perlってのはBBSなどでよく使用されている言語の一つ
PHPってのは最近注目の言語

P2Pってのは通信の方式みたいな物だから関係ありません

まずは調べる知識が必要かと。
ここで聞くよりか作り方が書いてあるページ探した方が早いと思いますし。
0468nobodyさん03/07/07 20:43ID:???
>>466
まずヒントから自力で調べる行動力が必要だが、人に頼るしかできないようなら
まずプログラミングは不可能。
諦めれ。
0469nobodyさん03/07/07 20:45ID:???
451 はプログラミング云々より人間性に問題ありとみたので、以後放置よろしく
0470nobodyさん03/07/07 20:47ID:???
>>469
すまん。451 じゃなくて、452 の誤り。
0471nobodyさん03/07/07 21:41ID:???
おまいら、釣られてんじゃないの?
0472nobodyさん03/07/07 21:53ID:???
ggiって何だろうと思ってぐぐっちまったよ……_| ̄|○
0473nobodyさん03/07/07 22:05ID:???
>>469
すまん。452 じゃなくて、469 の誤り。
0474nobodyさん03/07/07 22:09ID:???
452 名前:nobodyさん 投稿日:03/07/07 (月) 19:29 ID:2JuGMJAv
ggiっていうのか?
自分でBBSつくりたいんだけど、どうやって作んの?
どんな言語使うの?

455 名前:nobodyさん sage 投稿日:03/07/07 (月) 19:50 ID:???
おや、豊地ですか…
質問スレなんだからちゃんと答えろよクズども

457 名前:455 投稿日:03/07/07 (月) 19:59 ID:2JuGMJAv
すまなかった
俺は>>452です
とっとと答えろ

466 名前:nobodyさん sage 投稿日:03/07/07 (月) 20:31 ID:???
なんスかそのperlって。
PHP?俺がいつもやってるのはP2Pって全然関係ないですね(タハッ☆
もう少し詳しく説明してみろや
まず何が必要なんだ


確かに、人間やめた方がいいな。コイツは
0475nobodyさん03/07/07 22:10ID:???
>>474
はいはい、君も邪魔。



はい、次の方どうぞ。
0476nobodyさん03/07/07 22:11ID:???
>>475
はいはい、君も邪魔。



はい、次の方どうぞ。
0477nobodyさん03/07/07 23:10ID:???
では質問させていただきます。

BBSを作っているのですが、ログの追加の仕方についての質問です。
Tcupのように、最新の書き込みほど上にくるBBSです。
最初は以下のようにしていました。
@log = <IN>;unshift(@log,"$in{'name'}<>$in{'comment'}\n"); (略) print OUT @log;
ですが、これではログファイルの内容を全て読み込んでしまうので、効率が悪いと知りました。

なので今は、以下のようにしています。
open LOG , "+<log.txt";
push @logs , $_ while <LOG>;
seek LOG , 0 , 0;
truncate LOG , tell;
print LOG "$in{'name'}<>$in{'comment'}\n";
print LOG while $_ = shift @logs;
close LOG;

なんかあまり変わってない気もするのですが…(汗)

上記の方法より速度が速いor負荷が少ない方法でログファイルに追加書き込みするのは
どのようなやり方が一番いいのでしょうか?
0478nobodyさん03/07/07 23:13ID:???
>>477
前方に追加書き込みは結局のところすべてのファイルをなめる羽目になります。
0479nobodyさん03/07/07 23:23ID:???
>>477
それでもいいんでない?
BBSって読み込みのほうがはるかに処理回数が多いから、そっちで楽&低負荷に
なるようにしたほうがいいよ。
2ちゃんも負荷が高いときにまっさきに止めるのはread.cgiのほうだしね。

書き込みでいちばん速いのは open(FH, ">>log.txt") で読まずに追加書き込みだと
思うけど、読むときに面倒。(最新レスだけ表示したくても全部読まないといけない)
0480nobodyさん03/07/08 02:10ID:e6TauIaE
すみません、質問させていただきたいです。
CGIProxyを設置しようと思ったんですが、ローカルで動かすと、ちゃんと動作して、2chも閲覧できるんですが、いざアップロードしてみると、内部サーバエラー500で作動しないです、、、
パーミッションや、Perlソフトの位置は設定しました。
考える原因としては、どのようなものが挙げられるでしょうか?
サーバーの問題なのでしょうか?

ぜひ、ご解答をお願いいたしたいです、、、
0481nobodyさん03/07/08 02:40ID:???
htaccessの設定とか
0482nobodyさん03/07/08 02:42ID:e6TauIaE
>>481
ほかのcgiは正常に動くんです、、、
掲示板とかカウンタとか、、、
0483nobodyさん03/07/08 03:55ID:???
>>480
そのスクリプトおよびサイトを晒すのが良いと思われ。
ほんとにパーミッションはOK?ディレクトリその他関係するところもOK?
0484nobodyさん03/07/08 04:54ID:???
各ファイルへのpathとか
0485nobodyさん03/07/08 05:57ID:???
>>480
この手の質問でさんざん繰り返されたことをまた書くけど……

>パーミッションや、Perlソフトの位置は設定しました。

こんなこと言っちゃ本当に悪いけど、これは「全く信用できない」んだよ。
初心者の「ちゃんとやった」は絶対に信用してはならないこれ常識。

じゃあどうするか。具体的な指定値を書いてほしい。
パーミッションなら755とか、アップ位置なら /public_html/cgi-bin/ だとか。
CGIはサーバーによっても挙動が違うから、問題なければサーバー名も。
とにかく「あなた固有の情報」をもっと提示してね。書きたくないのは分かるけど、
ヒントは多いほどいいから。
0486nobodyさん03/07/08 06:18ID:???
>>485
どっちにしろ、何をどうしたか書かずに出来ました。とか言う奴の実力なんてたかが知れてるだろう。
0487nobodyさん03/07/08 08:09ID:???
CGIProxyという単語を見て ソケット使えないんじゃないの?と思ったのは私だけ?
0488nobodyさん03/07/08 10:44ID:???
>>487
おとっつぁん、それはまだ言わない約束よ
0489nobodyさん03/07/08 15:46ID:e6TauIaE
レスありがとうございます。。。
パーミッションは755や777を試したんですが上手く動きません、、
アップ位置は特に指定されてないのですが、/public_html/cgi-bin/へ入れました、、、
サーバー名はe-jts(http://e-jts.com/index.html)です、、、
ソケットって何でしょう?、、、もしかしたら使えないかもしれないです、、、
0490nobodyさん03/07/08 16:09ID:e6TauIaE
初心者で恥ずかしいです、、、
0491nobodyさん03/07/08 16:13ID:gTwwLH9/
RedHatLinux7.1のデフォルトでついてくるパッケージだけで
Apache(httpサーバ) + PHP(Apacheのモジュール) + PostgreSQL(DB)
てな構成は実現できる?。
やっぱソースからインスコしなくちゃだめ?
0492nobodyさん03/07/08 16:16ID:???
>>491
そんなんパッケージの内容みりゃいいだろ。
0493あぼーんNGNG
あぼーん
0494nobodyさん03/07/08 16:41ID:gTwwLH9/
>>492
見て出来ると書いてあっても出来ねぇ事あるんだもん。
あれはダメこれじゃダメとか言ってさぁ。
いいよインスコしてみっから。
0495nobodyさん03/07/08 16:58ID:???
>>494
>いいよインスコしてみっから。

普通、一番最初にそうするだろ。何横着してんだ。
0496nobodyさん03/07/08 18:13ID:tUbXNAKE
質問です。PHPとMySQLを利用してサイト作ってるんですが
PHPのプログラムから直接テーブルやカラムを増やしたりすることは可能ですか?
いろいろHP見て回ったんですがこの件に触れているところがなかったので・・・
意見よろしくお願いします。
0497nobodyさん03/07/08 18:35ID:tUbXNAKE
あ!スレみすったかも・・・
0498nobodyさん03/07/08 18:42ID:???
>>496
権限があれば可能じゃないのかな?
0499nobodyさん03/07/08 20:37ID:???
>>496
すまん!この質問はPHPのスレでもう一度聞きます。
0500nobodyさん03/07/08 22:07ID:???
質問させてください。
cronが使えない環境(無料鯖)でPerlスクリプトを定期的に起動させたいのですが、
よい方法はないでしょうか?

cgiを組み込んだhtmlファイルを「はてなアンテナ」の巡回ロボットに踏ませて起動する
という方法を使ってる人がいるみたいですが、うまくいかず・・・。
↑もしこのやり方しかないならば、これでもう少し頑張ってみたいと思うのですが。
0501nobodyさん03/07/08 22:08ID:???
>>500
まず何がしたいか言う。
0502nobodyさん03/07/08 23:36ID:???
>>500
完璧に「定期的」ではないが、
アクセスがそれなりにあるサイトなら、

もし毎日午前9時に実行させたいとして
トップページにSSIなり<img src="hoge.cgi">なりで、
「午前9時の最初のアクセスのときに、bar.cgiを起動させる」というCGIを
設置する、ということもできる。
0503nobodyさん03/07/08 23:38ID:???
>>502
まぁ、処理結果はそれを要求されるまで必要とされないんだから、初回のリクエスト時に生成すれば良し。

>>502の場合9時台に誰も来なかった場合はどうするんだろう?って事だけれど。
0504nobodyさん03/07/09 00:03ID:???
質問です

レンタルサーバで使いたいPerlModuleがなかったとき
自分のスペースにアップロードして使うことはできますか?
050550203/07/09 00:16ID:???
>>503
そう、だからアクセスがそれなりにあるサイトじゃないと、
9:00になるかもしれないし、9:05かもしれないし、10:34に
なっちゃうかもしれない。
0506nobodyさん03/07/09 00:19ID:???
>>504
インストールできるなら、すればよし。

でも、HTML:Templateって、
ファイルをおくだけで使えるjから、
自分とこはtelnet(SSH)解放されてないけど、重宝してます。
そういう、ファイルおくだけで使えるモジュールって他にもあるの?

・・・と自分も質問してみる
0507nobodyさん03/07/09 00:22ID:???
>>506
そのHTML::Templateなんですが、同じフォルダにおいてもダメなんです。
ソースに何か追加しないとだめですか?
050850603/07/09 00:39ID:???
>>507

foo.cgi
HTML(←フォルダ。cgiと同じならびに置く)
HTMLフォルダの中にTemplate.pm
ってしてる?
0509nobodyさん03/07/09 00:47ID:???
>>508=神
できました!
サンクスです!
051050003/07/09 07:19ID:???
>>502,>>503
>午前9時の最初のアクセスのときに、bar.cgiを起動させる
>初回のリクエスト時に生成
これはイイ考えです。ありがとうございます。

でも、そのCGIでindex.htmlを書き換える場合ってどうなるのでしょうか。
鯖がindex.htmlをブラウザに送っている最中に、index.htmlを書き換えるCGIが動くんですよね。
また、そのときに第三者がindex.htmlをリクエストしたら?
こういう場合、ブラウザにはちゃんとしたindexが表示されるのでしょうか。
0511nobodyさん03/07/09 10:31ID:juYXp5lr
>>510
index.htmlを送った後にCGIが動く。
書き換え途中にアクセスがあったら書き終わるまで待たされる。
■ このスレッドは過去ログ倉庫に格納されています