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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん04/10/10 00:04:06ID:???
CGIの運用に関する質問スレッドです。

※ CGIはウェブサーバ上でユーザプログラムを動作させるための仕組みであり、
Perl等特定の言語に依存するものではありません。

Perlのコーディングに関する質問は、専用スレでお願いします:
[Perlコーディング初心者質問スレ Part 38]
http://pc5.2ch.net/test/read.cgi/php/1097158988/

CGIとPerlの区別がわからない、という人はとりあえずこちらへ:
[△▲ WebProg 初心者の質問 Part10 ▼▽]
http://pc5.2ch.net/test/read.cgi/php/1095633323/

過去ログ・関連スレッドは>>2-10あたりに
0847nobodyさん2005/07/05(火) 19:04:17ID:???
>>846
上から

ラン
スー
ミキ
0848nobodyさん2005/07/05(火) 20:48:32ID:???
ブー
フー
ウー

だろ
0849nobodyさん2005/07/05(火) 20:55:04ID:???
まる
さんかく
刺客
08508462005/07/05(火) 21:12:38ID:106kfqfl
il||li _| ̄|● il||li
0851nobodyさん2005/07/05(火) 21:16:13ID:???
とん吉
ちん平
かん太
0852nobodyさん2005/07/05(火) 22:19:15ID:???
>>846
戻ってペルー
マイスクール
ポスト ゴレスクール
0853nobodyさん2005/07/05(火) 22:56:29ID:???
マジレスしにくい雰囲気…
なのでやめとくか
0854nobodyさん2005/07/06(水) 19:32:38ID:???
>>846
じゅん
長作
三波春夫
0855nobodyさん2005/07/06(水) 20:39:27ID:???
>>850
ガンガッテ!
0856nobodyさん2005/07/06(水) 21:59:00ID:???
>>846
じゃじゃ丸
ピッコロ
ポロリ
0857nobodyさん2005/07/06(水) 23:43:36ID:???
>>831
スタイルシート使えばできるよ
0858nobodyさん2005/07/07(木) 19:50:19ID:???
すいませんが、
日記のcgiで画像を本文中に何枚も添付できる
ものを知りませんか?
本文の前か後に貼り付けられるものしか見つけられませんでした。
0859nobodyさん2005/07/07(木) 20:04:41ID:???
>>858
【CGI】こんなCGI探してますver.17
http://pc8.2ch.net/test/read.cgi/hp/1116923112/
0860nobodyさん2005/07/07(木) 20:21:16ID:???
>859
ありがとうございました。
0861nobodyさん2005/07/08(金) 15:25:25ID:lbS4j959
Perlでディレクトリ内のファイルの一覧を表示する方法ってありますか?
リストなどがない状態で。

いちおう、書籍などは見てみたんですが載ってなくて・・・。
文が下手でスミマセン。
0862nobodyさん2005/07/08(金) 16:33:11ID:???
>>861
readdirじゃダメなん?
0863nobodyさん2005/07/08(金) 18:24:31ID:???
>アナル演算子
>この演算子はディレクトリの一覧を取得します。

らしいです。

@dir = <*>;
print @dir;
0864nobodyさん2005/07/08(金) 21:22:37ID:???
チャットや掲示板をPerlで記述するのになぜ、CGIの知識が
必要となるのでしょうか?
Perlプログラミングは少しだけわかるけど、CGIが入ってきたら
さっぱりわからなくなる。
どうすればよいのやら。
0865nobodyさん2005/07/08(金) 21:36:58ID:???
>>864
単純に答えるとCGIで起動されるから。それに「Perl自体も少しだけ」じゃちょっときつい。
(CGIの吐いた)htmlからまた起動することを意識したり、HTTPの仕組みを少し噛めばいいと思う。
0866nobodyさん2005/07/08(金) 23:41:15ID:???
>>864
CGIを知ろうと思うと、HTTPの仕組みを理解しなければならない
のでしょうか?
HTTPって通信プロトコルだった気がするのですが、CGIに
関係するのですか?
Perl/CGI関係の本を読むと大抵、htmlの知識があればいいと
書いてあるけど、結局、HTTPを理解しないとダメなのでしょうか?

CGI=html=HTTPの関係があるから。ということでしょうか?
0867nobodyさん2005/07/09(土) 00:31:07ID:???
>>866
[ブラウザ] ← HTTP → [Web サーバ] ← CGI → [Perl 等で書かれたプログラム]

Web サーバはブラウザから HTTP で受け取った要求を CGI の規格に沿うよう
「通訳」した上でプログラムに渡す。プログラムは CGI の規格に従った形で
Web サーバに返事を返し、Web サーバがそれを改めて HTTP に仕立て直して
ブラウザに返事する。これが基本的な流れ。

プログラムを作る人間にとって CGI を学ぶという事は、Web サーバとの喋り方
を学ぶという事。しかし本当に話をしたい相手はブラウザなので、「ブラウザが
どう要求したら Web サーバでどう訳されてプログラムにどんな形で届く」
「プログラムでどう出力したら Web サーバでどう訳されてブラウザにどんな
形で届く」という内容を把握する必要がある。故に HTTPの知識が必要だし、
フォームを介してデータを送りたいなら、そのフォームを作る為に HTML の
知識が必要。
0868nobodyさん2005/07/09(土) 02:16:36ID:lvdg0I28
テーブルの中にCGIを設置することって出来ますか?
0869nobodyさん2005/07/09(土) 02:20:23ID:???
お前は CGI のことを何も分かっていないので質問が意味不明になっている。
もっとバカに優しいスレを自分で探して訊き直しなさい。
0870nobodyさん2005/07/09(土) 02:25:41ID:lvdg0I28
すいませんテーブルじゃありませんでした。
0871nobodyさん2005/07/09(土) 09:13:56ID:???
質問です。
じぶんでサーバーに入れて、すでに持っているメールアドレス
の設定を入力して使うWebMailのCGIについて
語っているスレッドはどこかにないですか?
0872nobodyさん2005/07/09(土) 10:01:08ID:???
>>871
>>859
0873教えてください!2005/07/09(土) 11:25:56ID:???
以前利用していたメールフォームを使いたいのですが、以前プログラムを作った者が
いなくなったこと、レンタルサーバを替えたことにより、どう書き換えてよいか
わからない部分が一箇所あり、困っています。
こちらの板で質問するのが適当かどうかもわららないのですが、
何卒教えていただけないでしょうか。

現在のファイル構造
[www]
└[htdocs]
├index.html
└[mail]
└mail.html ←フォームが記述されているファイル
└[cgi-bin]
├[data]
├mailform.cgi ←修正しているcgiファイル
├jcode.pl
└mimew.pl

上記mailform.cgi というファイルの中に、

-------------------------
#tmpファイル
$tmp_file = "/home2/kaisyaweb/cgi-bin/data/tmp$$.dat";
-------------------------
という部分がありますが、これが現在の環境の場合、どう
記述したらよいかわからないのです。
この為、入力画面⇒確認画面の後、
「ファイルがオープンできませんでした。($tmp_file)」
という画面になってしまいます。

どうぞよろしくお願いします。
0874nobodyさん2005/07/09(土) 13:14:23ID:???
>>873
$tmp_file = "./data/tmp$$.dat";
0875教えてください!2005/07/09(土) 13:53:22ID:???
874さん、ありがとうございます!できました!
本当に感謝いたします。また何かありましたらどうぞよろしくお願いします。
0876nobodyさん2005/07/09(土) 22:39:18ID:???
>>872
探しているのでは有りません
機能比較・開発などについて情報交換しているところはないですか。
見つけるだけならGoogleでいくらでも見つかります。
0877nobodyさん2005/07/09(土) 22:57:02ID:???
http//---------.cgi?○○

で○○の文字を保存されていくように↓つくったんだが
エラーがでるっぺよ なんで〜?

#!/usr/local/bin/perl

$mes=$ENV{'QUERY_STRING'};
chomp($mes);
open(FILE,">>s.dat")||die("Error!");

flock(FILE,2);
print FILE $mes."";
flock(FILE,8);

close(FILE);
0878nobodyさん2005/07/09(土) 23:10:32ID:???
>>877
エラーログ読め
08798772005/07/09(土) 23:22:23ID:???
あ〜 直ったわ
0880nobodyさん2005/07/10(日) 23:51:35ID:???
最近、下手の横好きでPerlやらCGIに凝ってます。

改めて思います
なんて俺は、アフォなんだろうかと。

本読んでもさっぱりわからん。
0881nobodyさん2005/07/11(月) 03:09:25ID:???
じゃぁ別なことに時間使ったら?
0882nobodyさん2005/07/11(月) 03:21:46ID:???
>>880
無理しなくていいんですよ(^^)
アフォなのもあなたの個性なのですよ。
0883nobodyさん2005/07/11(月) 22:29:48ID:???
しかし、絶対にチャットとか掲示板とか作成したいのです。

絶対に、Perlでプログラミングしたいのです。
0884nobodyさん2005/07/11(月) 22:37:18ID:???
本読んでも分からないんじゃねぇ。。。
0885nobodyさん2005/07/14(木) 01:40:35ID:???
まあ、やってみてから本読むとわかるようになる、かも
0886nobodyさん2005/07/14(木) 09:27:27ID:???
>>883
勉強するなら日本語から始めようよ。
0887nobodyさん2005/07/14(木) 10:18:35ID:???
>>883
これでも嫁
Perl の絵本
ttp://www.amazon.co.jp/exec/obidos/ASIN/4798109029/
パソコンプログラミング入門以前
ttp://www.amazon.co.jp/exec/obidos/ASIN/4839907234/
[CGI・Perl]All About
http://allabout.co.jp/career/cgiperl/
Perl入門
http://lll.physics.gifu-u.ac.jp/~tasaka/perl/
「Perl」関連ページ - www.hyuki.com
http://www.hyuki.com/catlink/5065726C.html
0888nobodyさん2005/07/15(金) 00:56:00ID:???
perl勉強中のものです。
簡単なシュミレータを作ってウェブで公開したいと思っているのですが
一時間に一回程度のペースでクライアントのアクセスにかかわらず
更新させるよい方法が思いつかないのです、どなたか詳しい方ご教授お願いします。
0889nobodyさん2005/07/15(金) 02:31:27ID:???
>>888
A. cron や at を使う … CGI と関係無いのでお使いの OS の板・スレで
 尋ねて下さい。

B. 常駐プログラムを書いて走らせっ放しにする … CGI と関係無いので
 実際に書いて行き詰まったら Perl のスレで尋ねて下さい。

C. 最終アクセス時刻を記録しておき、任意のタイミングで更新するコード
 を組み込む … 実際に書いて行き詰まったら Perl のスレで尋ねて下さい。

D. 更新プログラムに定期的にアクセスする。
0890nobodyさん2005/07/15(金) 03:54:56ID:???
アクセスがあった時点で、前回より1時間以上経過していたら更新する。
0891nobodyさん2005/07/15(金) 20:57:19ID:???
>>890
全開より500時間経過していたらちょっと寒いことになります
0892nobodyさん2005/07/17(日) 02:02:44ID:???
>>887
大変、ありがとうございます。
Webからも情報集めて、猛勉強します。
0893nobodyさん2005/07/17(日) 17:04:15ID:???
初心者でわからないことだらけなのですが1つ質問させてください。
以下のコードを実行した場合「VK」が表示されます、
私が意図した結果は「新規」という文字を表示してほしいのですがどうしたらよろしいのでしょうか?
Perl v5.8.7

------------------------------------------------------
use encoding 'sjis';

my $url = '%90V%8BK';
$url =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('c', hex($1))/eg;
print $url;
------------------------------------------------------
0894nobodyさん2005/07/17(日) 17:28:26ID:???
use encoding 'sjis';
0895nobodyさん2005/07/17(日) 18:00:16ID:???
use encoding 'sjis';
を削除したら、ちゃんとした結果が出力されたのですが
なぜこのようなになるのかがわかりません。
ソース中にはsjisで文字が書かれているので削除しないほうがいいのではないのですか?
0896nobodyさん2005/07/18(月) 02:21:14ID:???
うまい解決方法が思いつかないので質問します。

どれかのボタンを選ばせる問題をだしプレイヤーがボタンを押すとvalueである文字列が画面に表示される。
問題が全部終わったところでCGIへ送信、というのをつくりたいのです。
一問づつ送信すれば問題ないのですができれば最後の処理の段階以外はクライアント側にやらせたいのですが
どうやるのが適当か、ご教授お願いします。
0897nobodyさん2005/07/18(月) 02:46:13ID:???
>>896
クライアント側でやりたいのなら、クライアント側で動作する物を使うしか無いんじゃないの?
JavaScript、Flash etc.
0898nobodyさん2005/07/18(月) 02:53:49ID:???
>>897
一応JavaScriptは先ほどから眺めていたのですが、連携の仕方がわからないので相談してみました。
Flashは綺麗に表現できそうですが他の部分を考えると無理っぽいです。
0899nobodyさん2005/07/18(月) 07:38:12ID:???
>>898
<form name=f1 method=get action="test.html">
問1
<input type=button value="問1の選択肢1" onclick="f1.answer1.value=this.value">
<input type=button value="問1の選択肢2" onclick="f1.answer1.value=this.value">
<input type=text name=answer1 readonly>
・問題繰り返し
<input type=submit></form>
-------------
・getにして自分自身のhtmlをactionにしておけばクエリが確認できる。
・これ以上のことはJavaScriptのチュートリアルサイトとかで。
・書いてから気付いたけどラジオボタンだけでできるじゃん。
0900nobodyさん2005/07/18(月) 08:12:58ID:???
>>895
use encodingしたいならPerl5.8以降でのUnicodeについて勉強したほうが良い
それとコードをコピペで使うんなら、使われている関数の意味くらい調べよう

他のスレで激しく既出のサイト
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
ttp://www.pure.ne.jp/~learner/program/Perl_unicode.html

use strict;
use encoding 'shiftjis';
use Encode qw/decode/;
my $url = '%90V%8BK';
$url =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('U', hex($1))/eg;
$url = decode('shiftjis', $url);
print $url;

$ENV{'QUERY_STRING'}などから受け取ってURLデコードだけをするのならば
pack("H2", $1 )を薦める
0901nobodyさん2005/07/18(月) 08:31:51ID:???
chr(hex($1))のが良くね?
0902nobodyさん2005/07/18(月) 16:27:35ID:???
if($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
}
else {
$query = $ENV{'QUERY_STRING'};
}
(1)MethodがPOSTであれ、GETであれ、上述のコードを記述すれば、htmlフォームが
  変数$queryに読み込まれる。
(2)読み込まれたフォームデータをループ関数foreachとかwhileでハッシュに読み込む。
(3)フォーム入力をハッシュに展開して出力する。

CGI.pmモジュールを使えば、htmlフォームとPerlコードを自前で出力でき、かつ
POSTでもGETでも対応できる。コードも短くて便利である。

私が理解している内容は間違ってますか?ご教授ください
よろしくお願いします。
0903nobodyさん2005/07/18(月) 20:14:51ID:???
1割くらいおkじゃね
フォームデコードだけならCGI::Liteとかあるし

CGI.pmから受ける恩恵は他のモジュールとの連携にある。。。と思ってる

てかそれくらいpod見るなり自分で調べたりまず使ってみれ
0904nobodyさん2005/07/19(火) 01:25:14ID:???
ということは、podを読めば(日本語の翻訳)、もっと詳しく
CGIのことがわかるようになるのでしょうか?
0905nobodyさん2005/07/19(火) 07:02:40ID:???
>>904
>てかそれくらいpod見るなり自分で調べたりまず使ってみれ
0906nobodyさん2005/07/20(水) 15:31:56ID:???
2chのdatを読み込んで、保存したいのですが、
どのようにすればよろしいのでしょうか?
0907nobodyさん2005/07/20(水) 15:54:28ID:???
ライブスレッドなら

http://pc8.2ch.net/test/read.cgi/php/1097334246/

http://pc8.2ch.net/php/dat/1097334246.dat

を保存すれば良いだけ。
dat 落ちしてるのを何とかしたいのなら ● 買って

monazilla.org (w
http://www.monazilla.org/document/index.html

ここ見て実装。
どちらにしても2chブラウザのログ漁った方が早いと思うけど。
09089062005/07/20(水) 15:58:56ID:???
>>907
サンクス。そんなところに置いてあるとは思っても居なかった。

専ブラでしかアクセスできないのかと思ってたよ。
0909nobodyさん2005/07/20(水) 20:18:28ID:???
質問です。
05年07月20日などの年月日をセレクトボックスで1桁づつに
わけてCSVにデータ送ろうとしたんだけど
自分の中では1セル?に収めたかったんだけど
表示させるCGIのテーブルで1桁しか表示されず横に思いっきりズレて困ってます。

1桁づつselect文使ってます。
どうやってまとめればいいんでしょうか?教えてください <(_ _)>
0910nobodyさん2005/07/20(水) 20:30:49ID:???
まず質問文をまとめてください。
0911nobodyさん2005/07/24(日) 19:01:41ID:???
文字列から特定の文章だけを抜き出したいのですが、
例えば、「<!---はじめ--->〜<!---おわり--->」の文章を抜き出したい場合、
どの様にすれば良いのでしょうか。

知識の欠落故か色々調べてみたのですがわからず…
初心者ですがどうぞよろしくおながいします。m(__)m
0912nobodyさん2005/07/24(日) 19:05:12ID:???
>>911
それはCGIなのか?
使用している言語の正規表現を調べてみよう。
0913nobodyさん2005/07/24(日) 21:19:49ID:???
>>912
わかり辛い文章でごめんなさい。
「特定の文字にはさまれた文字列を抜き出す」処理をしたいのです。
例えば、<!---はじめ--->から<!---おわり--->にはさまれた文字列、
と言うことです。

正規表現?がわからないのですが、
<!---はじめ--->(.+)<!---おわり---> みたいな感じでしょうか?
よろしくお願いします。m(__)m
0914nobodyさん2005/07/24(日) 21:29:18ID:???
だからスレ違いだって
0915nobodyさん2005/07/24(日) 23:58:09ID:???
>>914
それは失礼しましたっっ
もう少し自力で調べて頑張ってみます。
0916nobodyさん2005/08/16(火) 15:13:51ID:bVvKafpL
qmailのsendmailを利用してメールを送るCGIを作成しているのですが
sendmail -t < meil.txt
みたいな感じでメールを送ると勝手にForm:を付けてしまうので付けさせなくする方法があったら教えて下さい
CGI側でFormを生成したいです
0917nobodyさん2005/08/16(火) 17:15:03ID:???
print "<Form>";
とか?
0918nobodyさん2005/08/16(火) 17:43:25ID:???
みんな言語書けよー(´_ゝ`)
0919nobodyさん2005/08/16(火) 17:58:54ID:???
>>916
sendmailの話だから、言語は関係無いと思うが。。
ttp://www.linux.or.jp/JM/html/sendmail/man8/sendmail.8.html
そこの説明にあるように、-t を付けた場合は To: Cc: Bcc: が設定される。
from(つーかenvelope from)を指定する場合は -f を使う。
付けないつーのは無し。エラーメールに使われたりするし、相手の鯖によっちゃ受け取ってもくれない。
0920nobodyさん2005/08/16(火) 18:15:55ID:???
>>916からSPAM業者の匂いがぷんぷんするのは俺だけ?
0921nobodyさん2005/08/17(水) 01:25:36ID:9wq4p4Cf
どなたかAI-BOのスクリプト分けてもらえませんか
09229212005/08/17(水) 01:41:09ID:???
すみません、間違えました
0923nobodyさん2005/08/17(水) 15:28:43ID:W1CGnhYd
http://webscan.jp/
ここの(ココ以外にもあるけど)Web上で、サイトのキャプチャ画像を生成する方法って
どうやってやっているんですか?
外部のサイトソースを取得するのは出来ても、それをレンダリングエンジンに渡して
キャプチャ…って orz
0924nobodyさん2005/08/17(水) 15:41:23ID:???
>>923
・Image Magic
・GD
09259232005/08/17(水) 16:21:59ID:W1CGnhYd
画像化するのはGDライブラリとかでいけるのは分かるのですが、その元画像は
いったいどうやって取得しているのでしょうか?
0926nobodyさん2005/08/17(水) 16:24:03ID:???
>>923
html2jpg
09279232005/08/17(水) 16:43:43ID:???
>>926
ありがとうございます!試してみます。
09289232005/08/17(水) 17:08:38ID:???
無事出来ました。感謝。
0929nobodyさん2005/08/17(水) 17:37:15ID:???
>>920
だとしてもFROMとFORMの違いもわからん奴は恐くねぇなぁw
0930nobodyさん2005/08/17(水) 17:42:14ID:???
>>929
中学生決定だな








&nsbp;  .
0931nobodyさん2005/08/17(水) 17:42:50ID:???
>>930
ぷっ
0932nobodyさん2005/08/17(水) 22:57:27ID:???
すいません、全くの初心者なんですが、ArsenoXTと言う登録型用語集について質問したいことがあります。
…なんですが、ここで質問してよろしいでしょうか?他に適切な板があるのでしょうか?
0933nobodyさん2005/08/17(水) 23:03:43ID:???
配布元にサポート掲示板があるからそこに聞いた方がいいかも知れんね
0934nobodyさん2005/08/17(水) 23:16:59ID:???
そこ、一年くらい前から一切動いて無くて…スレ汚しスイマセン。
0935nobodyさん2005/08/18(木) 07:48:54ID:???
初心者板が無いものでここで質問させてください。
ぶちゃけ初心者が初めて言語を覚えるならPerlとPHPどちらが身につきやすいですか?
0936nobodyさん2005/08/18(木) 09:16:41ID:???
これから覚(おぼ)えるならPHP
0937nobodyさん2005/08/18(木) 14:06:17ID:???
貧弱な環境でも手軽に使いたいならPerl
0938nobodyさん2005/08/18(木) 14:24:07ID:???
Perlって終りそうだね^^;
0939nobodyさん2005/08/18(木) 17:21:41ID:xSbRCUiK
掲示板で書き込み禁止ワードを設定したいんですけど、
ネットに載ってたプログラム例が下記の2行だけでした。

$word = "あほ|ばか";
$value =~ s/($word)//gs;

これを書き加えてもうまくいきません。
これにプラスして何か書かなければいけないのでしょうか。
$valueって何なのでしょうか。
0940nobodyさん2005/08/18(木) 17:45:58ID:???
恐らく書き込まれた内容を入れておくんでしょうね
0941nobodyさん2005/08/18(木) 19:25:24ID:???
>>939
マッチした数が入る。
ifなど条件で使うためでは?
if ($value) print 'NGワードを削除しました。';
0942nobodyさん2005/08/18(木) 21:29:43ID:???
>>939
それは$valueという変数の中から特定のキーワードを削除するPerlの処理。
つまり$valueをそのCGIスクリプトで使われている適切な変数名に書き換える必要がある。
要するにPerlコーディングスレか改造スレ行きだな。

ほんと次スレはCommon Gateway Interfaceにしよう。
0943nobodyさん2005/08/23(火) 11:39:26ID:VkPwkJgd
質問です。携帯からのFLASHを投稿できて、携帯からみれる掲示板はありませんか?
0944nobodyさん2005/08/23(火) 12:00:46ID:???
>>943
【CGI】こんなCGI探してますver.18
http://pc8.2ch.net/test/read.cgi/hp/1123833110/
0945nobodyさん2005/08/23(火) 12:37:07ID:VkPwkJgd
>>944
d
0946nobodyさん2005/08/23(火) 12:50:53ID:jskS7WB1
質問です.
カウンターを制作しているのですが,counter.datにカウント数を記録するのに
「count=32」といったように「count=カウント数」といったように記録したいのですが,

#!/usr/bin/perl

# カウントファイルから読み込み
open(IN, "counter.txt");
$count = <IN>;
close(IN);

# カウント増加
$count++;

# カウントファイルに書き込み
open(OUT, "> counter.txt");
#print READ "count=";
print OUT $count;
close(OUT);

と,プログラムを書きました.読み込みの時,どのようにプログラムを書けば
記録されたcount=32から数字の部分だけを取り出せるのでしょうか.

よろしくお願いします
レス数が900を超えています。1000を超えると表示できなくなるよ。