トップページ⇒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 あたりに
0352nobodyさん03/02/13 15:26ID:???
>>351
その方向で合ってるよ。
ちなみに SMTP のポート番号は通常 25。
詳しくは RFC 2821 な。
ttp://www.puni.net/~mimori/rfc/menu.html
0353nobodyさん03/02/13 16:42ID:???
>>350
ならば「誰が」を省略するなよ。紛らわしい。
0354nobodyさん03/02/13 17:41ID:???
読み手の読解力が無いだけでしょ
0355nobodyさん03/02/13 20:59ID:???
>>353
禿同
>>354
どっちにもとれるだろ。読解力ないの?
0356nobodyさん03/02/13 21:20ID:???
>>355の中の人も大変だな。
0357nobodyさん03/02/13 21:25ID:???
>>355
文脈から推測する力も無いのか・・・
哀れだ
0358nobodyさん03/02/13 21:32ID:???
プログラムの前にまず国語からはじめような。
0359nobodyさん03/02/14 03:36ID:???
>>357
文脈から推測してもどちらとも取れるが。
0360nobodyさん03/02/14 03:36ID:???
>>346
IO::Socket便利だよ。

でもPerlの方が重い予感。
専鯖ならともかく、共有鯖だったらやんないでね。
0361nobodyさん03/02/14 03:37ID:???
「勘違いしてるぞ。」が「勘違いするぞ。」ならば分かるが。
0362344=34603/02/15 04:08ID:???
>>360
さらなる情報ありがとうです。後日調べたいと思います。

>専鯖ならともかく、共有鯖だったらやんないでね。
明記の通り専用サーバですのでガンガンメール送ってみたいと思います。
ってほど会員増えないと思いますけど。
ちなみに戦闘力調べたら、1分で250通前後でした。
しかしながら4種類のメールに対して複数送っているので、
実際はそれ以下か・・・・・(´・ω・`)ショボーン
0363nobodyさん03/02/15 07:53ID:???
>>359,>>361
代弁ありがとう。
0364nobodyさん03/02/15 09:31ID:???
下らない論争で随分消費してますね(´ё`)
0365nobodyさん03/02/15 11:10ID:???
>>364-365
その筆頭。
0366nobodyさん03/02/15 13:04ID:WKdky/xD
read.cgiって何ですか?
0367nobodyさん03/02/15 14:20ID:PUb1GMYC
掲示板を作っています。
書き込みをユーザーが削除できる機能を作っていますが上手く行きません。
sub delete{
local($no,$name,$email,$dai,$comment,$date,$ip,$host,$pw);
if($in{'no'} eq '' || $in{'pwd'} eq ''){&error("パスワードまたは削除Noが記入漏れです");}

open(IN,"$logfile")||&error("ファイルを開けませんでした");
flock(IN,2);
@data = <IN>;
close(IN);
$flag=0;
@new=();
foreach(@data){
($no,$name,$email,$dai,$comment,$date,$ip,$host,$pwd) = split(/<>/);
if($in{'no'} == $no){$flag=1; $PWD=$pwd;}
else{push(@new,$_);}
}
if($flag == 0){&error("該当する記事がありません");}
if($PWD eq ''){&error("その記事にはパスワードが設定されていません");}
$match = ("$in{'pwd'} = $PWD");
if($match ne 'yes'){&error("パスワードが違います");}
open(OUT,">$logfile")||&error("削除に失敗しました");
flock(OUT,2);
print OUT @new;
close(OUT);
}
何処が悪いかご指摘をお願いします…
0368nobodyさん03/02/15 14:24ID:???
>>367
正直、読めというのか。そのインデントも減った暮れもないコードを。

どこがうまく行ってないかくらい自分でもわかるだろ。その辺を分析してエッセンスだけを提示してくれよ。
0369nobodyさん03/02/15 15:47ID:???
$match = ("$in{'pwd'} = $PWD");
if($match ne 'yes'){&error("パスワードが違います");}


if ( $in{'pwd'} ne $PWD ) { &error( "パスワードが違います" ); }
0370nobodyさん03/02/15 21:49ID:???
まあまあ。インデントはHTMLの都合上、省略されたりしてうまく表示できないわけだから
しょうがないよ。
でも「上手くいきません」は勘弁な。どう上手くいかないのかを必ず書くこと。
こういう動作を期待していたが、いざ実行してみるとこんな動作をしてしまった、みたいに
書ければとてもいい。
0371nobodyさん03/02/15 22:02ID:???
いやもう、必ず「パスワードが違います」と言われちゃうんだろ?
>>369を参考にな。
0372nobodyさん03/02/15 22:23ID:???
おまえら優しすぎ。
0373nobodyさん03/02/15 22:46ID:bgMyjtsw
CGI(perl)が動かん。OS Win2000。DOS窓なら動くってのにブラウザではびくともしない。けっ
ActivePerlをインストールしてHttpdを入れた。Httpdはドキュメントルートと実行プログラムの位置とかなら設定したけど、他のごちゃごちゃしたところとかはいじってない。
プロパイダはYahoo!BBを使ってる

heloo World!っていうのを表示する簡単なcgiで、ソースは、
#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "<HTML><BODY>\n";
print "<H2>Hello! WORLD</H2>\n";
print "</BODY></HTML>\n";
なんだが。これをブラウザでローカルテストするとHTTP 500 - 内部サーバー エラー になるんですが(´ー`)? 一体原因はどこよ?
0374nobodyさん03/02/15 22:49ID:/6YfHvht
/usr/local/bin/perlにPerlが置いてないとか
"Content-Type"とか
0375nobodyさん03/02/15 23:07ID:???
その"Httpd"の名前を具体的に書けよ
0376nobodyさん03/02/15 23:09ID:???
500か
じゃあウェブサーバーの問題ではなさそうだな。

多分>>374のどれか。たとえばActivePerlは標準では\usr\local\binにはインストールされない。
0377nobodyさん03/02/15 23:24ID:???
>>374
「Content-Type」の大文字小文字は問われません。

>>373
CGIでPerlを呼ぶ設定にしてある?
037837303/02/15 23:41ID:bgMyjtsw
>>374
perlの位置はC:\Perl\bin\perl.exe から C:\usr\local\bin\perl.exe に直した。
それと同時にHttpdの設定も変更したけど意味無し

>>375
AN HTTPD Daemon Version 1.42

>>377
>>373以外にやることありますかね(´ー`)?
0379nobodyさん03/02/15 23:55ID:???
>>373

拡張子CGIファイルでPerlを実行するように設定しておけば
一行目に関係なく動く(かもしれない。)

そうしていないなら一行目の
#!/usr/local/bin/perl

を#!C:\usr\local\bin\perl

にすればうごく(かもしれない)
0380飛石3連休 ◆8772606082 03/02/16 00:00ID:???
ANHTTPDの設定でPerlへのパスがあってれば、
スクリプト内部の #!/usr/local/bin/perl
をチェックしない設定がないかい?
CGIファイルの拡張子は?
0381飛石3連休 ◆8772606082 03/02/16 00:02ID:???
追記
CGIをチェックする
という設定を使えばエラーがどこで出てるかわかると記憶があるが。
0382nobodyさん03/02/16 00:10ID:???
もちろん一般パスで使う設定にしてあるよね?
038337303/02/16 00:49ID:51g/G1ig
>>379
動かん

>>380
設定の位置はなんとなく分かった・・でも動かん。
拡張子は.cgi
.plにしても動かんよ?

>>381
検査結果:
Error 500
CGI エラー - CGIを実行できません : だそうだ

>>382
してあるよ?

自分としては、いろいろやってみてできなかったし、YahooBB関係じゃないかと思うのだが・・
それともやっぱりソースとか設定とかが原因ですか(´ー`)?
0384nobodyさん03/02/16 00:54ID:???
バージョンは正確にいうと何だ?
最後のアルファベットも含めて。
0385nobodyさん03/02/16 00:56ID:???
そういえば最近AnHTTPdってCGIがうまく動かないというバグがあったね
0386nobodyさん03/02/16 00:56ID:???
>>373
ローカルで動かそうとしてんじゃないの?なんでYahooBBが。

AN HTTPD と ActivePerl の組み合わせなら kent のとこでも参考に
ttp://www.kent-web.com/www/index.html
0387nobodyさん03/02/16 01:00ID:???
kentだって、プ
0388nobodyさん03/02/16 01:13ID:51g/G1ig
>>384
1.42g

>>386
知り合いが何かそう言ってたんだよ!知るか。

とりあえず今から386のサイトに飛んできます
0389nobodyさん03/02/16 01:29ID:51g/G1ig
逝ってきた。が、やはり動かん
細かいとことかでもいいんで何かあれば言ってください。お願いします
0390nobodyさん03/02/16 01:35ID:???
386のサイト
http://homepage1.nifty.com/monden/cpu/386.html

ちなみに、ActivePerl+httpdを設定無しで
例のhelioWorldを動作させたがきちんと表示されたよ。
両方とも再インストールでどう?
0391nobodyさん03/02/16 01:47ID:51g/G1ig
今日はもう気力が無いのでまた明日で
0392モモコ03/02/16 03:35ID:???
英語用のアンケートCGI探してます。
レンタルCGIでお願いします。
どなたかご存知ですか?

0393nobodyさん03/02/16 06:28ID:???
>>392
スレ違い。
0394nobodyさん03/02/16 10:01ID:0jPHodHR
byte表示を�`バイト表示にしたいんですがどうすればいいでつか?
たぶん$size / 1024を使うとは思うんですが書き方がわかりません
0395nobodyさん03/02/16 10:12ID:???
>>394
>たぶん$size / 1024を使うとは思うんですが書き方がわかりません

答えでてるじゃん。
0396nobodyさん03/02/16 10:30ID:0jPHodHR
$kzyte=ってかくんでしょうが細かいとこがよくわかりません。。。
0397nobodyさん03/02/16 14:39ID:???
>>396
Perlだとして、

print ($size/1024), "イ�`バイト";
039837303/02/16 15:30ID:51g/G1ig
win2000の再インストールをしてき増
0399nobodyさん03/02/16 15:45ID:???
>>398
まだ出来ないのか。がんがれよ

AN HTTPD でどうしてもできないなら Apache のほう使うのもいいかもね
設定のしかたが難しい印象があるかもしれんが、解説ページを1つ紹介しとく
ttp://www2j.biglobe.ne.jp/~apollo/server/server.html
0400nobodyさん03/02/16 15:49ID:PVMDa3kD
あふぇ
0401nobodyさん03/02/16 15:54ID:HkwUW3eX
http://f-cc.com/~momonga/
040237303/02/16 17:16ID:51g/G1ig
さて、再インストールも終わったところで399の解説ページでも見てくるかな
040337303/02/16 17:44ID:51g/G1ig
まあその前にもう一度ActivePearlを入れなおしてみようとしているわけなんだが、
インストールする位置はどこがいい?
標準ではc:\perl\になってるわけだが、これでもいいのか(´ー`)?
0404nobodyさん03/02/16 17:44ID:???
>>403
どこでもいいよ。
0405nobodyさん03/02/16 17:54ID:???
>>403
貴様漏れの紹介したページ読んでないですか?
たしかに>>404の言うとおりどこでもいいんだけど、ローカルでテストしたあとは
サーバーにアップロードするんでしょ?そのときいちいちスクリプトの一行目の
Perlのパスを書き換えないでいいように、サーバーの設定とそろえておくほうがいい。
そのへんのフォローも書いてるから>>399のサイトを読みながらインストールしてみ
040637303/02/16 18:08ID:51g/G1ig
成功した!皆さんほんとにありがとう!
再インストールして良かったよ。疲れたけど

>>405
どもどもすみませぬ。399のとこにはお世話になりますた。
非常に感謝しておりますです。はい。

これからたくさんやりたいことがあるので、
いろいろと勉強してがんばりたいです。それじゃ。
0407nobodyさん03/02/16 19:12ID:y0NHKpEd
>>1なんで最後に〜.cgiってつけなくちゃ駄目なんですか?
0408nobodyさん03/02/16 19:42ID:???
>>407
拡張子がcgiなら取りあえず実行してくれ。

って言う設定になってるからですよ。httpサーバが。
0409nobodyさん03/02/16 20:44ID:???
>>407
サーバの設定をいじれば.unkoでも.chinkoでもできる
0410nobodyさん03/02/18 00:15ID:FF7juywa
ageとく。
0411nobodyさん03/02/19 03:48ID:???
>>407
httpd.conf の中にありまふ
.cgi で検索してると出てくるよ
AddHandler cgi-script .cgi
て具合に
0412nobodyさん03/02/19 04:11ID:vr421/dJ
メールフォームで、SSLページから受信した内容を、
PGPなんかで暗号化してメールを受信出来るようなCGIとか
ありませんかねぇ。。

SSLからそのまま平文メールだと意味無いんで・・・・・

フリー&シェアウェア&市販、どれでもいいんですが、
自鯖で使えるやつを探してます。


0413nobodyさん03/02/19 04:32ID:oWKZ/weY
>>412
他のスレと勘違いしてねぇか?

こんなCGI探してますスレッド Ver8
http://pc2.2ch.net/test/read.cgi/php/1041564353/
0414nobodyさん03/02/19 04:42ID:???
Webサーバ=Apacheと決めつけている厨房がいるスレはここですか?
0415 ◆s/jp/vus/g 03/02/19 04:44ID:???
SSL mailform
↓暗号
SMTP
↓非暗号=マズー
POP3

ここで聞く
http://www.kikakuya.com/service/eEgg79/option_pgp.html
0416 ◆9Vl0N4X/ag 03/02/19 04:51ID:???
俺ってやさしすぎ・・・かな
http://www.gnupg.org/
http://hp.vector.co.jp/authors/VA019487/
0417 ◆nBdXIOeCFk 03/02/19 15:55ID:iFOkWU9W
とりあいずCGIファイル(カウンタ)を作ってみたんですが、
そのファイルを開くと、
「ファイルを開くアプリケーションを選んでください」
になってしまいます、どのアプリケーションで開けば良いのでしょうか?

0418nobodyさん03/02/19 16:14ID:???
>>417
向こうのスレの質問を取り消してきなさいな。
マルチと言われますよ。
0419nobodyさん03/02/19 17:10ID:???
>>418
どっちにしろどこに行っても結果は同じ機がする。
0420nobodyさん03/02/19 19:14ID:???
>>413
スマソ。スレ間違いでした。逝ってきます!
0421nobodyさん03/02/19 19:45ID:???
「ずるぽんあぷろだ」の
formの部分を他のwebページに貼って
そこから投稿しようとしたんですけどできませんでした。
おそらく外部からの投稿を禁止してるんだと思います。
どの辺を弄ればよいのかご教授いただけないでしょうか?
0422nobodyさん03/02/19 19:46ID:dIKdV7ST
あげ忘れましたすいません。
0423 ◆s/jp/vus/g 03/02/19 19:48ID:???
そのcgi知らないけど、$ENV{'HTTP_REFERER'} 辺りを削る。
0424nobodyさん03/02/19 19:56ID:???
>>423
ありがとうございます。
$ENV{'HTTP_REFERER'}
↑これを探してなかったんで質問させていただいたんですが、
今、もう一度検索しなおしてみたところ似たような部分がありましたので
解決できそうです。
ありがとうございました。
0425417 ◆nBdXIOeCFk 03/02/19 22:05ID:qxP6cynE
http://tohoho.wakusei.ne.jp/wwwcgi6.htm

このHP見ましたが英語でわかりません、

住民の方詳しくお願いします。

WIN98です
0426nobodyさん03/02/19 22:08ID:???
>>425
出て行け。迷惑だ。
0427nobodyさん03/02/19 22:12ID:???
>>425
中学校に入ると、英語を習うので、そうしたら読んでみるといいでしょう。
今すぐ読みたいなら、お母さんに英語教室に通わせてもらうと良いでしょう。
0428常時sage ◆s/jp/vus/g 03/02/19 22:20ID:???
>>425 にオススメ => http://www.eccjr.co.jp/
0429nobodyさん03/02/19 22:39ID:???
ハードディスクにあるjpgやpngの画像ファイルの縦と横の長さをサーバーサイドで取得するにはどうすればいいのでしょうか?
0430nobodyさん03/02/19 22:47ID:???
>>429
GDとか使うか自分で解析するか。
画像サイズって大抵ヘッダにあるから簡単なファイル操作で取得出来るよ。
043143003/02/19 23:03ID:???
>>430
GDとかヘッダで検索してみてわからなかったらまたお願いします。
0432まちがえました42903/02/19 23:04ID:???
でした。
0433nobodyさん03/02/20 00:02ID:???
>>430
おい、>>429は、
鯖から接続してきたクライアントのハードディスクの中身を抜こうとしてるんじゃないのか?
それができる前提で質問をしてないか?
0434nobodyさん03/02/20 00:17ID:???
>>433
そうなの?サーバのHDDもしくはファイルアップロードで画像をアップロードさせる前提だと思ったよ。

まぁ、いずれにしても俺のアドバイスがクラッキングに役立つとも思えんけど。
0435417 ◆nBdXIOeCFk 03/02/20 00:58ID:ESnUqnD0
結局みんな詳しくは判らないのね、、、

0436nobodyさん03/02/20 01:03ID:???
>>435
うん。だから、きみが、がんばって、ほんやくして、ぼくたちに おしえてよ。
0437nobodyさん03/02/20 01:15ID:???
>>435
これ買って勉強してください。
http://www.amazon.co.jp/exec/obidos/ASIN/4839904308/ref%3Dbr%5Flf%5Fb%5F7/250-8992305-8523460
0438nobodyさん03/02/21 02:57ID:+apCT8OA
「$msgが半角スペースと全角スペースじゃなかったら$msgをprint」というのを

print "$comment\n\n" if($comment ne (" " || " "));

と書いたんですが、
どうやら、ここが原因で動かないようになってしまいました。
真夜中ですがどなたかいらっしゃいましたら、ご教授して頂けないでしょうか?
0439nobodyさん03/02/21 02:59ID:???
× $msg
○ $comment

ですた。
0440nobodyさん03/02/21 03:06ID:???
寝る前なんで適当に。
(' ' || ' ') が先に評価されて、それと$commentが比較されるからじゃないかな。
$commentと' '、$commentと' 'のそれぞれを比較して || しましょう。
0441nobodyさん03/02/21 03:07ID:p5R52YmN
>>438
これだと、if文で最初に評価されるのは、(" " || " ") この部分になるのでは?

if ($comment ne " " && $comment ne " ")

これでどうよ?
・・・間違ってるかもしれんけど。
044244103/02/21 03:08ID:???
>>440
あら・・・かぶった・・・
スマソ
044343803/02/21 03:19ID:???
直しまりました。ありが�dですた。
寝る前にこんな単純すぎるミスの質問で申し訳ないです。
おやすみなさい。
0444nobodyさん03/02/21 17:39ID:???
ちょいと教えてください。
CGIから他のサーバにあるhtmlをゲットしようとしているんですけど、
例えば ttp://pc.watch.impress.co.jp/docs/2003/0221/kaigai01.htm ならば
pc.watch.impress.co.jpにソケット繋いで GET /docs/2003/0221/kaigai01.htm HTTP/1.0 で
取得できるんですが、同じようにしても取得できないサーバがあるんです。

その取得できないサーバはDDNSを使っているのですけど、これが原因でしょうか?
0445nobodyさん03/02/21 20:18ID:???
>>444
例えば2ちゃんねるってHost:ヘッダ要素がないと取得出来なかったりするけど。
HTTP1.1で必須なんだっけか?忘れたけど。
044644403/02/21 20:41ID:???
>>445
おかげさまで取得できるようになりました。
404が返ってきていたので原因は別にあると思っていたんですけど、
試しにHTTP/1.1にしてみたらできました。
0447nobodyさん03/02/23 22:39ID:BpzQ/pnE
Windowsで、メールを送信するプログラムのローカルテスト環境を作ることってできますか?
0448nobodyさん03/02/23 22:53ID:???
すみませんが、調べてもどうしても判らなかったので教えて下さい。

全角のアルファベットを全て半角に置き換える場合、どのようにしたら
よいのでしょうか。

$zenkaku =~ s/A/A/g;

とやれば一文字だけはできますが、これを複数に適用する記述が
判らないのです。素人質問だとは思いますが、どなたかご回答を
お願いします。
0449nobodyさん03/02/23 22:55ID:???
>>447
http://www.google.com/search?q=Windows+%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB+%E3%83%A1%E3%83%BC%E3%83%AB+%E9%80%81%E4%BF%A1+&hl=ja&lr=lang_ja
0450nobodyさん03/02/23 22:59ID:???
>>448
Perlでの話なら
http://www.din.or.jp/~ohzaki/perl.htm#JP_Z2H
045144803/02/24 00:03ID:???
>>450
どうもです!お陰さまであっさり解決できました。
■ このスレッドは過去ログ倉庫に格納されています