△▲ WebProg 初心者の質問 Part4 ▼▽
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/20 12:10ID:???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 進行でお願いします。
0331nobodyさん
03/07/05 12:32ID:TSu/dWMtそうですか。
原則というのは合法的にということですよね?
配布してくれるのを待つことにします。
どうもありがとうございます。
0333nobodyさん
03/07/05 12:37ID:???どうやらCGIを作るのには、perl,php,rubyという言語がよく使われていることがわかりました。
これらの言語の特徴・長所・短所等を教えて下さい。
0337nobodyさん
03/07/05 14:30ID:???どれも大して変わらん
0338299=318
03/07/05 14:42ID:7NeiHO5Nだれかこたえてください・・・
0340319
03/07/05 14:51ID:7NeiHO5Nどのブラウザでも問題なくうごくようにしたいのですが
●submitボタンを1つのフォームに複数入れるのは問題ありますか?
●問題ないなら、どのボタンが押されたかというのは、
cgiではどうやって判断するのでしょうか?
0343nobodyさん
03/07/05 15:06ID:???>if'($in{'je.x'})が真なら英訳、
.xって何?
0344319
03/07/05 15:19ID:???ということは、
<form action="tmp.cgi" method="get">
<input name="a" type="submit" value="SOUSIN">
<input name="b" type="submit" value="SOUSIN">
</form>
というソースのフォームでsubmitされた場合、
どのブラウザでも、
1つ目のボタンが押されたら「tmp.cgi?a=SOUSIN」
2つ目のボタンが押されたら「tmp.cgi?b=SOUSIN」
というURLを要求するということで、正しいですか?
で、perlで%inにクエリーストリングをぶち込んだとして、
if ($in{a}){ print "1個目のボタンが押された。";}
elsif ($in{b}){ print "2個目のボタンが押された。";}
ということで、正しいでしょうか?
IEとネスケで試したらそうだったのですが、
どのブラウザでもとなると心配なので、一応確認させてください。
0347318
03/07/05 15:28ID:7NeiHO5Nhttp://www.hajimeteno.ne.jp/html32/14/12.html
ということで、たぶん>>318で間違ってないとは思うんですけど、
確信が持てないので、あってるかどうか、どなたか教えてください・・
0348319
03/07/05 15:29ID:7NeiHO5NW3C的に、そういうものなのかどうかしりたいので。。。
0349326
03/07/05 15:45ID:7JTmSVUO<input type="hidden" name="hoge" value="$data">
$data = "<table><tr><td>ほげ〜</td></tr></table>";
隠しフィールドに変数を使ってフォームを使いたいのですが。
$dataがhtmlタグを含んでいる場合、
ダグの終わりの>で隠しフィールドが終わってしまい
$data中の最初に出てくる>の残り+">が表に出てしまいコマっています。
この場合
<input type="hidden" name="hoge" value="<table>
<tr><td>ほげ〜</td></tr></table>">←この行がはみ出る。
となってしまうわけです。
何か解決方法はありますでしょうか?
0351nobodyさん
03/07/05 16:04ID:???imageならそれでいい。ただ>>318じゃダメだ。
送信されてくる値は ej.x=座標&ej.y=座標 なわけだが、
この座標は画像の左上を0,0としてクリックした位置。
もし一番左上をクリックされたら送られてくる値はej.x=0&ej.y=0だぞ。
0353nobodyさん
03/07/05 16:36ID:mEgBrIzg$ENV{'HTTP_REFERER'}で取得したアクセス元のURLの最後の/以降
のファイル名(index.htmlなど)を取得したいのですが何かよい方法はありませんか?
0354nobodyさん
03/07/05 16:42ID:???そんな値の受け渡しをすることがうまくないでしょ。
valueにセットできるってことは文字列として用意しておけるわけだし、
hiddenでフラグなどを渡して判定させてそのタグを代入させたり
すればいいだけじゃないの。
0356nobodyさん
03/07/05 16:56ID:mEgBrIzgすいません。正規表現が苦手でしてご教授願います。
下の正規表現はどうなんでしょうか?
$addr =~ /[\/(\w+)^[\/]]/;
0357nobodyさん
03/07/05 17:05ID:???cgiを設置し、ブラウザで実行すると
Error message:
Can't locate ./jcode.pl in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-
multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0
/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at
/home/〜/ファイル名.cgi line 11.
ファイルの11行目は
require './jcode.pl';
jcode.plは644にしています。
apacheの設定の問題でしょうか。
0360nobodyさん
03/07/05 17:25ID:mEgBrIzgサーバー名に複数の.が存在するせいか
ファイル名の取得がうまくいかなかったので、
ドメイン部を空白に置換することで取得することができました。
レスどうもありがとうございます。
0361nobodyさん
03/07/05 17:35ID:???ttp://pc2.2ch.net/test/read.cgi/php/1056078605/l50 とか
ttp://pc2.2ch.net/test/read.cgi/php/1056078605/10-20 とか
こういう呼び出し方でdatファイルを柔軟に読めるのはどういう仕組み
になっているんでしょうか? 普通のやり方だと
ttp://www.megabbs.com/cgi-bin/readres.cgi?bo=gikoneko&vi=979832150
みたいにGETで引数を渡すしかないと思うのですが。
0362nobodyさん
03/07/05 17:42ID:???レスありがとうございます。
同じディレクトリにあるのですが上手くいきません。
違うcgiを設置しても初めのrequireでエラーがでるので、
サーバーの設定かもしれないです。
自宅サーバーの板に行ってきます。
マルチするなって叱られそうですが。
0363357
03/07/05 17:43ID:???0365361
03/07/05 18:00ID:???なるほど。ありがとうございました。ずーっと謎だったんです。
それでもう一つ質問なんですが、その$ENV{'PATH_INFO'}を使ってる掲示板
って2ちゃんねる以外にあんまりない気がしますが、それはなにか理由が
あるんでしょうか? 鯖の負荷とか脆弱性とか。
0366nobodyさん
03/07/05 18:21ID:???単にあんまりメジャーじゃない方法だからだと思う。使いどころが難しいし。
2ちゃんねるだって、いつぞやの閉鎖危機の時に少しでも回線負荷を減らす(HTMLドキュメント
やログのサイズを減らす)目的で、緊急避難的に導入されたのが最初だったと思う。
0368nobodyさん
03/07/05 18:29ID:???>質問者へ
・もう少し試行錯誤(机上であれこれ考えるのではなく実際に色々動かしてみること)して自分で習得しよう
・自分の期待している結果を明記しよう(これを書いていない人が多数います。よって、質問内容が意味不明)
・できるならデータ処理の過程も書いておくといいかも
・言語特有の問題ならば、言語を明記しよう
0372318
03/07/05 19:32ID:???>送信されてくる値は ej.x=座標&ej.y=座標 なわけだが、
>この座標は画像の左上を0,0としてクリックした位置。
>もし一番左上をクリックされたら送られてくる値はej.x=0&ej.y=0だぞ。
おー、それは考えていなかった。
さんくすです。
じゃ、if defined($in{ej.x})でオッケーですね。どうもです。
0373361
03/07/05 19:51ID:H4mrq76Tレスありがとうございます。大体分かりました。
自分も機会があったらその方式を使いたいなと思ったので、
ちょっと突っ込んだ質問をさせていただきました。
369さんの言ってることはよく分かりませんが・・・。
0374nobodyさん
03/07/05 19:53ID:???0376あぼーん
NGNG0377あぼーん
NGNG0378nobodyさん
03/07/05 21:29ID:???popは、配列しか相手にしないらしい。
単なるスカラーコンテキストでは駄目らしい。
なので、
(split |/|, $url)[-1];
でどうだ。
0379
03/07/05 21:53ID:HxQB4jGAある特定のメールアドレスに送ったメールのログをとり、
掲示板風に公開するスクリプトってないでしょうか。
これはメーリングリストではなくて、みんなには発信しない。
メールソフトで書いたものをそのまま掲示板の表示にしたいので。
例えば携帯で書いたものをそのアドレスに送れば、
掲示板表示できるような。よろしくです。
0380あぼーん
NGNG0382nobodyさん
03/07/05 22:04ID:???スレ違い&既出。
自分でやるなら.forwardでcgiにリダイレクト。
0384
03/07/05 22:23ID:HxQB4jGA早速ありがとうございます。
すみません…初心者なので,よくわかりません。
どこのすれで質問した方がよろしいでしょうか?
あと既出は探す方法はありますでしょうか。
>POPクライアント搭載してリクエストがあればそれを起動し新着情報をCGI側のデータにマージする。
サーバをいじれないとダメですか?
>自分でやるなら.forwardでcgiにリダイレクト。
転送設定にcgiのアドレスを設定すればOKでしょうか。
すみません…。
0385nobodyさん
03/07/05 22:29ID:???0386384
03/07/05 22:31ID:HxQB4jGA要するに、メールのデータをCGIの
XXX.logデータに書き込めればいいと言うことでしょうか?
それはサーバによっては簡単でしょうか?
0387あぼーん
NGNG0388384
03/07/05 22:34ID:HxQB4jGAやっぱり現実的には厳しいでしょうか?
携帯の知人が携帯に掲示板を呼び出すのは重たいので、
送るだけだとうれしいといっているのですが…。
これができると今までにない掲示板が出来ると思ったんですが…。
0389nobodyさん
03/07/05 22:35ID:aHsJafIj細かい修正↓
(split q|/|, $url)[-1];
>>382
多分、CGIって単語の使い方間違ってますよ。
>>384
俺は>>381じゃないけど、POPクライアントを自分で書くならサーバーをいじる
必要はない。CGIスクリプトなんか書かなくても自分でメーラー(要するにPOPクライアント)
のようなものを作って、新着のメールが見つかればFTPでデータをサーバーにアップロード
するような仕組みを作ればにたようなものは実現可能。
.forwardでリダイレクトするのなら、リダイレクト先にPerlなんかで書かれたスクリプトを指定
する必要あり。この場合CGIは関係してこない。
スクリプトにはメールの全文が渡るので、それを適当に読み取って掲示板のデータに変換
すればよい。
0390384
03/07/05 22:36ID:HxQB4jGAおおっ!MHonArc早速調べてみます。
0391384
03/07/05 22:41ID:HxQB4jGAむ、む、むずかしいです…。
メーラーとはレンタルサーバの
ブラウザメールのようなものでしょうか?
だとすると完全にCGIから離れてしまいますね。(スレ違い)
そのほうがサーバにとってもいいかもしれませんが、
未知の領域なもので…。
0392389
03/07/05 22:42ID:aHsJafIj色々ごちゃごちゃ書いてしまったけど、MHonArcの存在を忘れてた。
多分>>390さんが求めてるものそのままだと思う。
namazuのMLだけど、↓こんな感じになります。
http://www.namazu.org/ml/namazu-devel-ja/index.html
0393384
03/07/05 22:44ID:HxQB4jGAありがとうございます。
0394389
03/07/05 22:44ID:aHsJafIjPOPクライアントを書くのは結構面倒かも。モジュール使う手もあるけど、
初心者だと厳しい気がする。
普通は.forwardを使うかなぁ。サーバーがいじれるなら、スプールを直接
覗くのが一番手っ取り早いけど。
0395nobodyさん
03/07/05 22:46ID:???0396384
03/07/05 23:00ID:HxQB4jGAあるのですか?
もしあればそのスクリプトがほしいです。
0397nobodyさん
03/07/05 23:09ID:???こんなCGI探してますスレッド ver.9
http://pc2.2ch.net/test/read.cgi/php/1051456859/648
こっちで探してくれ。さっき見かけたけどどこでだったかは忘れた。
0398384
03/07/05 23:13ID:HxQB4jGAわかりました。ありがとうございます。
0399あぼーん
NGNG0400nobodyさん
03/07/05 23:21ID:???0401あぼーん
NGNG0402nobodyさん
03/07/05 23:52ID:???0403382
03/07/05 23:54ID:???そうなん?
0404あぼーん
NGNG0405nobodyさん
03/07/06 01:11ID:???0406nobodyさん
03/07/06 11:53ID:o+D1+xYEHPにうpろーだーCGIを組み込みたいんですけどうまくいきません。 鯖はXREAのS31 ソフトはFFFTPです。パーミッションもちゃんと弄りました
0407あぼーん
NGNG0408あぼーん
NGNG0411nobodyさん
03/07/06 12:35ID:o+D1+xYEで設置したページはこれです→ttp://auau.s35.xrea.com/ezmup もち表示できません。トップは→ttp://auau.s35.xrea.com/
ここの解説ページを見て設置しました。まずIndex.htmをホームページビルダー6.5でうpしました。
次にpublic_html(フォルダ)にezmupをぶち込み FFFTPで解説どおりにパーミッション設定をしました。
0412nobodyさん
03/07/06 12:49ID:???+-- 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+xYE0414あぼーん
NGNG0416nobodyさん
03/07/06 12:55ID:o+D1+xYE0417nobodyさん
03/07/06 12:58ID:xIV38i+Nエラーが出ると言いながらエラーメッセージ書かないのはアホのすることです。
0419nobodyさん
03/07/06 13:03ID:???0420nobodyさん
03/07/06 13:11ID:???CGI設置について質問
http://pc2.2ch.net/test/read.cgi/php/1054216089/
↑こんなのまだ残ってんだけど、設置モノはそっちに振らない?
0421nobodyさん
03/07/06 13:18ID:DtJTYCHd0422nobodyさん
03/07/06 13:25ID:???腹立つほどわかりやすいエラーが出てるんだが。
Error Message: No such file or directory
Error Number: 2
消えろ。
0423nobodyさん
03/07/06 13:26ID:???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任意の行を読むにはどうすれば良いのですか?
$hoge=<HOGE>だと前方から1行読むだけですし、
@hoge=<HOGE>だと全部読んじゃいますし。
0429nobodyさん
03/07/06 15:08ID:???@hoge=<HOGE>
$hoge[@hoge - n)
する。
0430nobodyさん
03/07/06 15:15ID:???「任意の行」ってのは一行?それとも数行のこと?
掲示板ならどっちもありえるが。
まあ、一行あたりのだいたいのバイト数が予測できるなら、
seekで読み始める位置ずらせば全部読むよりましになる。
■ このスレッドは過去ログ倉庫に格納されています