1 :
nobodyさん :
02/04/23 20:28 ID:Kp0cZQna
2 :
nobodyさん :02/04/23 20:28 ID:Kp0cZQna
新スレ乙ー。
5
Z80アセンブラでCGIを作ろう!
Win2000とapacheとActivePerlで画像UP板作ってるだけど Upload すると HTTP response code:500/internal server error返しちゃいます。 保存先のD:ドライブに外部からの書き込みPermissionが無いからと思うんだけど どうセキュリティ設定すればいいのか教えてください!
(´-`).。oO(答えが解っても、答えたくない質問が多いのは気のせい?…)
ん?でも普通の掲示板の方は書き込めてるんだ。 ポートに蓋はしてないし、JREの方の問題かな。 気が付いたことがあれば助言ください!
お!9さんこんばんわ! ヒントでも教えてもらえません?
12 :
9 :02/04/23 22:59 ID:???
(´-`).。oO(apache の error.log を見ても解らないのだろうか?…)
>>8 意味不明。セキュリティ設定が問題だとわかってるなら楽勝だろ。
>>9 ヤツラは プログラマ=超能力者 とでも思ってるんじゃないのかね。
15 :
8 :02/04/24 00:43 ID:???
Premature end of script headers: d:/web_files/cgi-bin/fileup.cgi です。 調べてるんだけど、UNIXの改行コードに変えろとかそうじゃないとか まだ特定できません!
16 :
8 :02/04/24 00:47 ID:???
あとディレクトリのPermissionでグループに書き込み許可があると apacheがExecCGIしてくれない、とか書いてあった。 でもWin2000でEveryoneから書き込み拒否しても変わりなし。
17 :
8 :02/04/24 01:03 ID:???
追加 CGI先頭の #!(Perl.exeの場所)が間違ってるとこのエラー、 ってどっかのサイトにあったけど無問題。
18 :
9 :02/04/24 01:20 ID:???
(´-`).。oO(
>>15 そのエラーメッセージで解らないんだろうか?…)
・必須HTTPヘッダ(Content-Type) ・ヘッダの後の改行2つ 出力してる?
20 :
8 :02/04/24 01:24 ID:???
>>15-17 「Content-type なんちゃら」
っていうお決まりのヘッダをちゃんと最初に出力できていないと、
そのエラーになるよん。
1.スクリプトが syntax エラーになっている
2.ヘッダ出力前に、なんかへんな文字を出力している
3.ヘッダ出力前に、エラーで終了している
21 :
9 :02/04/24 01:27 ID:???
(´-`).。oO(ストレートに答え教えると、自分で調べようとしないヤシが増えると思うのは俺だけ?…)
23 :
20 :02/04/24 06:37 ID:???
24 :
nobodyさん :02/04/24 20:35 ID:uXXHa7MS
25 :
9 :02/04/24 20:58 ID:???
>>24 (´-`).。oO(README.TXT は読んだのだろうか?…)
26 :
24 :02/04/24 21:42 ID:uXXHa7MS
>>25 はい読みました。
>WindowsNT での動作確認は行っておりません。
とあったし、MS-DOS用なのでたぶんムリなんだろうとは思いましたが。
ってこれじゃなくて他の方はどんな風にテストされてるのか
教えていただきたいので…
(´-`).。oO(
>>26 win環境でも動く、もしくは替わりになる sendmail を探そう…)
>>26 UNIXでは、sendmailを直接起動できるので、そうしてます。
Windowsではsendmailっつーコマンドはないので、しかたなく
SMTPで送信してます。
30 :
24 :02/04/24 22:07 ID:uXXHa7MS
>>27-29 うわーありがとうございますー!
MS版のsendmail落としてこれからためしますね。
31 :
nobodyさん :02/04/26 11:39 ID:q7Q1Ay6G
あげ
a b c b 5 a b c b 9 a b c b 9 このような形式で保存されているログファイルがありまして、 一番右の数字はカウント数です。 この数字をうまくソートして、 数の多い順に並べ替えるにはどうすれば宜しいのでしょうか?
>>32 perl使わなくてもいいのなら、
sort -n +4 logfile
34 :
32 :02/04/27 10:07 ID:???
>>33 ご回答ありがとうございます。
Perlで実行したいと考えています。
>>32 典型的なSchwartzian Transform
my @data = <LOG>;
@data = map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [$_, (split)[4]] } @data;
36 :
32 :02/04/27 11:18 ID:???
>>33 ちょっとうまく出来ませんでした。
もう少し簡易的な方法はありませんでしょうか?
38 :
32 :02/04/27 11:50 ID:???
>>38 tukaもろPerlのコーディングに関する質問じゃねーか。
>>1 読んだか?
Aさんのコメント数。 Bさんのコメント数。 Cさんのコメント数をソート処理を使わずに foreach を使ってそれぞれ表示する方法ってわかります?
41 :
nobodyさん :02/04/28 10:06 ID:wciqOlMj
ログファイルの読み込み処理で、 ログファイルが無くても自動で生成されるCGIがたまにあるんですけど、 あれは読み込み?書き込み?部分のなにが違うのでしょうか?
>40 これくらいわかれよ、初心者くんよー! foreach('Aさんのコメント数','Bさんのコメント数','Cさんのコメント数'){ print $_,"\n"; }
>41 ログファイルの読み込み処理 なのに自動で作成されるということは、 ファイルが存在しなければ生成してるだけのことでしょ? そういうCGIがたまにあるのならそれを見ればわかるでしょ?
今perlを覚えているんですがカウンタのロックファイルに関する質問です flock関数とsymlink関数とmkdir関数などがありますが、 どれを使ったほうがよいでしょうか?
ふーん。先頭の h を書かないで
ttp:// って書くとリンクされないんだぁ。
あんたただものじゃないね。
(´-`).。oO(
>>46 ブラウザで2ちゃんねる見てるの?…)
あのー、なつみかんや朝日奈アンテナを立てると 更新したい時間中はずっとPC起ち上げてないと駄目なのですか?
ずっとブラウザですが、なにか?
(´-`).。oO(
>>46 ブラウザで2ちゃんねる見てるの?…)
↑これを使ってネタに、、、。
51 :
名無しさん :02/04/29 12:57 ID:GBdoN20z
「CGIBOY」をジオシティーズに 貼り付けることは絶対無理なのですか? 是非ご回答お願いします!
(´-`).。oO(じおしてぃ〜ずはCGI使えないので無理です…)
>52 やはりそうですか…ありがとうございますm(_ _)m
CGIBOYってレンタルのヤツでしょ? あれは別にジオだろうがHOOPSだろうが使えるんじゃない? ただジオの規約でバナー貼り付け禁止とかあるからそういう意味で無理っぽいけど。
55 :
nobodyさん :02/04/30 00:29 ID:WaxxAHRN
以前、テキストエリアから入力された文字列の改行を無効にする方法が 書いてあったと思うのですが、過去ログがdat落ちしてしまって読めません。 どなたか、教えて頂けませんか?
(´-`).。oO(こんなやつ?$FORM{'poo'} =~ s/\cM\n//g; )
57 :
nobodyさん :02/04/30 00:44 ID:WaxxAHRN
58 :
nobodyさん :02/04/30 00:48 ID:WaxxAHRN
$str =~ tr/\x0a\x0d//d;
(´-`).。oO(ごめんよ…でも、頭でなんでこうなるのが理解した方が後の為にいいと思う…)
むしろ s/\n\r//g; ワックスあっハ〜ン ワロタ。
62 :
nobodyさん :02/04/30 11:41 ID:qWxmRhQd
MD5エンコードをするスクリプトってどっかに落ちてない?
あぼーん
%0aってなんでしょうか?見た目のログファイルは空なんですが、読み込むと入ってるんですが、、、。
(´-`).。oO(
>>65 エンコード/デコード勉強して…)
67 :
nobodyさん :02/04/30 23:52 ID:d8JAf0Y1
携帯電話とPCとで使える返信つき掲示板スクリプトが欲しいのですが どこかにオススメがありますか?フリーで。 携帯はi-mode、ezwebなど全キャリア使える物がいいです。 スレ違いだったらスマソ
69 :
hanamogera ◆kkkKkkko :02/05/01 00:30 ID:biMRccvK
70 :
nobodyさん :02/05/01 00:43 ID:7kFV3X0F
名前ドットplと名前ドットpmとの動作の違いを教えてください。
>>70 ファイル名(拡張子)の違いで動作は変わらないと思う。
>>70 requireとuseの動作の違いについてまず調べなされ
73 :
nobodyさん :02/05/01 03:23 ID:Xs4tHxYm
すみません、.htaccessというのは、拡張子をそうしろということですか? それとも、.htaccessがファイル名? その場合の拡張子は? スマソ、参考サイトに載ってない罠。
(´-`).。oO(拡張子? .htaccess が *ファイル名* です) 拡張子なんて言葉、誰が最初に言いだしたか知らんが、マヌケだね…
75 :
nobodyさん :02/05/01 03:28 ID:Xs4tHxYm
じゃあ、ファイル名を.htaccessにだけしておけばいいってことか… スマソ、数分前にはじめたばかりで。 拡張子txtでしかあがんないから。
76 :
nobodyさん :02/05/01 03:32 ID:Xs4tHxYm
ヲ、できたできた、お騒がせスマソ。
77 :
:02/05/01 03:32 ID:???
>>75 Windowsなどでは .htaccess というファイル名では保存できない。
適当な名前のテキストファイルで作成してアスキーで鯖にUPしてから
名前を変更すればいい。
>77 エクスプローラでそのようなファイル名に出来ないだけで、 Windowsでも問題なく.htaccessというファイル名で保存できます。
79 :
nobodyさん :02/05/01 04:19 ID:5EicdhAk
ずるぼんあぷろだ
http://zurubon.starange-x.com/uploader/ を設置しようとしているのですが、
(2001年10月27日版)
どういうわけかMP3のうpを失敗してしまいます。
インターネットエクスプローラー6だと、
「ページを表示できません 〜 検索中のページは現在利用できません」
のメッセージがでます。
jpgならOKなのですが、どういう原因が考えられるでしょうか。
error_logが読めればよいのですが、私の借りているサーバー
(pos.to)では読めないのです。
関連しそうなところでは、
411行目には
mp3 => "audio/(mp3|mpg|mpeg|x-mp3|x-mpg)",
がありますし、
# ファイルサイズ制限(キロバイト単位)
$limitk = 8000;
と十分とっています。
よろしくおねがいします。
80 :
79 :02/05/01 04:20 ID:5EicdhAk
また、他にずるぼんに似たタイプの 設置しやすく使いやすいアップローダーがあれば 紹介してもらえると助かります。 画像ではなく自作音源の交換につかう予定です。 なにとぞよろしくおながいします。
なぜずるぼんあぷろだサポートページで聞かないのですか?
82 :
:02/05/01 09:50 ID:FKLHGJpX
>>82 CGIかもしれませんが、そうでない可能性もあります。
そもそもURIからCGIか否かは判別出来ません。
,-v-、
/ _ノ_ノ:^)
/ _ノ_ノ_ノ /)
/ ノ ノノ//
/ ̄\ / ______ ノ
.r ┤ ト、 (" `ー" 、 ノ
|. \_/ ヽ ``ー-、 ゙ ノ
| __( ̄ | `ヽ''"/'"
| __)_ノゝ ゞ丿
ヽ___) ノ ヽ\_//
( ´∀`)<
>>1 逝って良し!
/ ヽ 丿\
/ 丿~( \
< / ゝ >
ヽ ソ ゞ 丿
_) ノ ヽ (_
(__ヽ) (ゝ__)
85 :
82 :02/05/01 10:34 ID:FKLHGJpX
87 :
nobodyさん :02/05/01 10:47 ID:XcrghMuN
>>85 サーバー側で勝手に決めるのでありました。
88 :
82 :02/05/01 11:15 ID:2jCmopot
>>86-87 な、なるほどそうでしたか・・・サーバ側で・・・
本当にスレ違いでした。失礼しました。
89 :
86 :02/05/01 12:26 ID:???
>>88 え?サーバー側ってなに?
よくわからんが、PATH_INFOだよ。
>>88 まあPerlのコーディングの質問よりはスレ違いじゃないけどな。
91 :
82 :02/05/01 12:52 ID:I1lx35o3
>>89 えっ
すいません、PATH_INFOというのがよく解りません・・・
環境変数でしょうか?
92 :
86 :02/05/01 13:05 ID:???
93 :
82 :02/05/01 14:02 ID:XEPMEynt
>>92 あっ、なるほど! つまり、
xxx.cgi/foo/bar
だったら、環境変数PATH_INFOに/foo/barという文字列が入るという
意味ですね!
やっと理解しました。ありがとうございました!
>>82 うおおおお!奇跡!俺もちょうどそれ質問しようと思ってたんだYO!
あんたは天使!
95 :
nobodyさん :02/05/02 05:03 ID:4Q8ZAUDc
97 :
936 :02/05/03 14:00 ID:???
ログファイルを開く毎に1を足していくにはどうすればいいんでしょうか?
>97 ファイルを読み書きモードオープンして ファイル内の数字を変数に格納して 変数に1を足して ファイルハンドルの位置をファイルの頭に戻して 変数をファイルに書き込んで ファイルを閉じる。
99 :
97 :02/05/03 15:01 ID:???
>>98 open(IN,"./hoge.txt");
@file=<IN>;
foreach(@file){
@aha=split/<>/;
if ($aha[0] eq "$hoge[2]"){
$aha[19]++;
print "$aha[19]";
}
}
close (IN);
open (OUT,">./hoge.txt");
print OUT "@file";
close (OUT);
こんな感じになりましたが失敗でした。
どこがおかしいのでしょうか?
redflash(%0a <=> $hot){ hprintx "まんこ\q"; %100 // crush.*++100; }
>99 どう失敗したかの説明は? ファイルが空になるのか、カウントがプラスされないのか、CGI自体が実行できないのか。 tu-ka, $aha[19]をインクリメントした後、そのデータは@fileに戻ってないだろ? open(FILE,"+<./hoge.txt"); @file = <FILE>; foreach(@file){ @aha=split/<>/; if ($aha[0] eq "$hoge[2]"){ $aha[19]++; print "$aha[19]"; $_ = join('<>',@aha); last; # 書き換えるのが一つならここで終わらせておこう } } seek(FILE,0,0); truncate(FILE,0); print FILE @file; close (FILE);
102 :
97 :02/05/03 15:28 ID:???
>>101 説明不足でしたすみませえn。
ミスの内容はカウントされなかったことと
上書きができませんでした、、、。
103 :
101 :02/05/03 15:40 ID:???
すみません、質問です。 ほぼ答えを書いたと思ったのに納得してもらえませんでした。 漏れの説明が悪かったのでしょうか? それとも漏れのやり方に問題があるのでしょうか? てゆーか、自分の環境でテストしてみなかった漏れが悪いんですか? どなたかご教授ください。
104 :
97 :02/05/03 15:40 ID:???
1<><><>略 2<><><>略 3<><><>略 ↑のようなログファイルの中身が 1<><><>略 <><><>1<><><>1<><><>1 2<><><>略 3<><><>略 こんな感じになってしまいます。
>104 略してる部分に改行コードがあるんだよきっと。 ログ保存する時は改行コードを取り除くのは基本な。
106 :
97 :02/05/03 15:46 ID:???
>>105 ありがとうございます。
リロードする毎に<><><>1が追加されてしまいます。
1+されていうか、、、。そんな感じです。
107 :
97 :02/05/03 15:48 ID:???
1+されてないというかでした。
ソースとファイルの中身出せ。 もしくはどこかにアプれ。 略さずに。 憶測だけで言うなら、ファイル内に@ahaの要素となるべきものが足りないんだよ。 きっと$aha[16]に\nが入っている。 それで$aha[19]をインクリメントしているから、joinの際に$aha[19]までをjoinしてしまい、 1<><><>略<>\n<><><>1ってなるんだ。 ファイルの中身の扱いを再確認しろ。 本当に19にカウント用の数字が入っているのか?
109 :
97 :02/05/03 16:17 ID:???
okusokuどうりでした。普通に足せました。
ご迷惑をお掛けしました。
>>101 番さんはものすごいソースを私にくれました。
感謝しております。
110 :
110 :02/05/03 18:15 ID:???
質問です。 ログファイルの$hoge[3]にそれぞれ数字がありまして その数の合計を求めるにはどうすれば宜しいのでしょうか? ログファイルは\tで区切ってあります。
ファイル情報を取得するにはどうすれば良いですか?
>>110 「ログファイルの$hoge[3]」って何よ。
「ログファイルは\tで区切ってあります」ってのはレコード区切りが\nでデータ区切りが\tって事か?
わかるように書いてくれ。いや、大体わかっているんだけどな。
113 :
nobodyさん :02/05/03 18:43 ID:G14OVk2t
116 :
110 :02/05/03 18:57 ID:???
h o g e 1 h o g e 2 h o g e 3 ローグハーこんな感じデース♪
>115 すまん。 それを意識して>98を返したつもりだったがかえって長引かせてしまった。
118 :
nobodyさん :02/05/03 21:05 ID:DflXvub4
($dummy,$biscuit)=split(/=/,$ENV{'HTTP_COOKIE'}); @cookie=split(/,/,$biscuit); foreach (@cookie){ ($cookname,$cookvalue)=split(/:/,$_); $cookname=~s/ //; #スペースを除去 $COOKIE{$cookname}=$cookvalue; } これで表示部に$COOKIE{hoge} って書いても読み込みません。 答えてください。 クッキーにはもちろん書き込めています。
>118 ずいぶん偉そうだな。 何がしたいのかもわからんし。とりあえず生姜工卒業してからこい。
120 :
118 :02/05/03 21:52 ID:F1zwfFCR
>>119 分からないならレスしないでください。
まったく鬱陶しい。
俺にもわかんないな。 >118の言いたい事が。(笑) 質問にすらなってないしな。
>>118 $ENV{'HTTP_COOKIE'}
をそのまま表示すると、「,」が%??にエンコードされてるってことはない?
>>118 まともな回答がほしければ最低限使用言語と目的くらい書こうな。
>>122 回答するのもいいが"善意の荒らし"になないようにな。
s/なな/なら/g
125 :
nobodyさん :02/05/03 22:46 ID:19v1h41W
Win98+Apache+ActivePerl フォームのデータをGETでは取得できるのですが POSTでは値を取得できないのです。 my $buf if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buf, $ENV{'CONTENT_LENGTH'}); print $buffer;#取得できない } else {$buffer = $ENV{'QUERY_STRING'};}
126 :
nobodyさん :02/05/03 22:57 ID:apBthE5H
\n\n\n\n〜等と いくつか続いていたら \nに置換したいのですが どうすればよいのでしょうか?
>>125 とりあえず
$ENV{'CONTENT_LENGTH'})
$ENV{'QUERY_METHOD'})
を表示してみるとか。
129 :
125 :02/05/03 23:11 ID:19v1h41W
>>127 $ENV{'CONTENT_LENGTH'}
の方だけ数値が表示されました。
Linuxサーバーで実行した時も同じ現象だったんです。
>>125 print $buffer;#取得できない
↓
print $buf;
にしてみれば?
131 :
125 :02/05/03 23:30 ID:19v1h41W
>>130 あっ、すみませんそれは投稿時のミスです^^;
132 :
127 :02/05/03 23:44 ID:???
>>129 あぁぁぁ、ごめん。
REQUEST_METHOD
だった・・・
で、print "[$buf]"; みたいに [] でくくると、どうなります?
134 :
129 :02/05/04 00:24 ID:KDDclJiB
>>132 レスどうもです。
print "[$buf]";
とすると、
[]
が返されます。
REQUEST_METHOD
ではPOSTが返ってきます。
ifでPOSTの方に入っていますがreadでSTDINから読めていないのですね。
CGIの分類に入りますよね?この記事は。
135 :
127 :02/05/04 00:36 ID:???
>>134 うち(UNIX)で試してみたけど、出るね。
残念ながら、Windowsの問題かも。
あきらめて sysread() を使うか <> で読むしかないかも。
perlの話になってきたので、続きがあればperlスレで。
>>134 WinNT(SP6a) + Apache + ActivePerl ではちゃんとでますよ
CGI.pm使って見れ。 それで表示されなけりゃHTTPDのバグ。 表示されれば100%コーディングミス。 tuka晒したコードが全然参考にならん。 ちゃんとコピー&ペーストしろよ。
どんな html コードから post したのかサパーリ ワ カ リ マ セ ー ン
139 :
129 :02/05/04 02:17 ID:KDDclJiB
<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE>$title</TITLE> </HEAD> <BODY> <CENTER> <FORM action="cgi-bin/test.cgi" id=FORM1 method=post name=FORM1> <INPUT TYPE="hidden" NAME="md" VALUE="1"> <TABLE bgcolor=#b0b0b0 border=0 cellPadding=3 cellSpacing=2> <TBODY> <TR bgcolor=#f0f0f0> <TD nowrap><FONT size=-1>ハンドル</FONT></TD> <TD nowrap><INPUT id=hd name=TXT_ID size="22" maxlength="40"></TD> </TR> <TR bgcolor=#f0f0f0> <TD nowrap><FONT size=-1>メッセージ</FONT></TD> <TD nowrap><INPUT id=ms name=TXT_PASS size="62" maxlength="200"></TD> </TR> </TBODY> </TABLE> <BR> <TABLE bgcolor=#b0b0b0 border=0 cellPadding=3 cellSpacing=2> <TBODY> <TR bgcolor=#f0f0f0> <TD nowrap><INPUT id=submit1 name=submit1 type=submit value=" 投稿 "></TD> <TD nowrap><INPUT id=reset1 name=reset1 type=reset value="リセット"></TD> </TR> </TBODY> </TABLE> </FORM> </CENTER> </BODY> </HTML> このフォームです。
method="POST"
141 :
110 :02/05/04 09:50 ID:oeq3Bzwc
マルチしている馬鹿です。 ログファイルの$hoge[3]にそれぞれ数字がありまして その数の合計を求めるにはどうすれば宜しいのでしょうか? ログファイルは\tで区切ってあります。 答えろや!!
(゚Д゚)ハァ?
最近の若者の国語力はこんな感じなのか。 それとも141は外国人なのか。 どちらにしても頭が悪い人は施設に収容した方がいいと思う。 地球の人口も増え続けていることだし、詩んでください141。
マルチ(;゚∀゚)=3ハァハァ
146 :
145 :02/05/04 13:28 ID:???
148 :
145 :02/05/04 14:26 ID:???
>>147 あぅ・・・まさかオレ、ネタニマジレス・・・
149 :
139 :02/05/04 15:49 ID:HBkDorCd
原因がわかりました!! use CGI; my $cgi = new CGI; これのせいでSTDINからPOSTの場合取得できなかったのです。 自前フォームデータ取得と共存できないということなのでしょうか?
クッキーの読み込みで、 a1 a:aaaa * a2 a:aaa * a3 a:aa * こんな感じで保存されているクッキーがあって、 $COOKIE{a}と書くと aaaaのみ表示されて、 aaaa aaa aa と表示されません。 どうすればいいのでしょうか?
↑最近ネタが多いな。
152 :
150 :02/05/04 17:00 ID:???
154 :
nobodyさん :02/05/04 18:10 ID:BiCGNSgG
ダウンロードプログラムで、 Content-Disposition: attachment; filename="XXXXX" Content-Type: Application/octet-stream をヘッダに設定しています。 NN4,NN6ではうまくいきますが、 IE5,IE6のSSLモードではうまくいきません。 (ダウンロードダイアログでサーバに接続できないエラーになります) どうすればよいですか?
>>154 NN4,NN6のSSLモードではうまくいくの?
156 :
nobodyさん :02/05/04 18:34 ID:BiCGNSgG
157 :
155 :02/05/04 18:37 ID:???
>>156 むぅ、だとすると、すまんがオレにはわからん。
158 :
:02/05/04 18:45 ID:???
ハァ。誘導してる割にはレベルが低いんだなぁ、、、。
159 :
154 :02/05/04 18:50 ID:BiCGNSgG
IE5,IE6のSSLモードでもうまくいく 方はいらっしゃいますか?
あぼーん
161 :
155 :02/05/04 18:54 ID:???
>>158 ハァ。なら煽ってないで教えてくれよ、、、。
(´-`).。oO(
>>159 インターネットオプションの詳細をいぢってしまったとか?)
163 :
nobodyさん :02/05/05 08:35 ID:UV8B0Y8+
遥か昔の旧スレを上げた馬鹿者です。どうか知恵をお貸しください。
THE ROOMさんのアイコンチャットを使っておるのです。
このチャットURLをオートリンクをしてくれるのはいいのですが、フレーム内に取り込んでしまいます。
なんとかtarget=_blank属性をつけたいのですが、無知なりにいろいろ試してみても直らず。
情けない話ですがソースのどの部分を提示してよいやらわかりませんので、
とりあえず配布ページを晒します。
http://dream.lib.net/room/cgi/e_ichat.html 配布元で質問しようにもこれは改造の話になるかと思いまして、
どうかご教示くださいませ。
質問あんだけどさ。 ディレクトリの構成ってどういう意味なの? なんかよくわかんないんだけど。 例を書いて詳しくキボンヌ
166 :
:02/05/05 11:29 ID:???
>>165 質問あんだけどさ。
わかんないんだけどってどういう意味なの?
なんかよくわかんないんだけど。
例を書いて詳しくキボンヌ
167 :
dosv :02/05/05 11:49 ID:12OG6xB2
今Ezweb対応の掲示板を作製しようとしているのですが、CGI側の処理がよくわからないのです。 もし宜しければ教えてください。 <HDML version=3.0 markable=true> <ENTRY name=name key=name> <ACTION type=accept task=go dest=#text> 名前入力 </ENTRY> <ENTRY name=text key=text> <ACTION type=accept task=go dest="xxxx.cgi" method=post postdata="name=$name&text=$text"> 内容入力 </ENTRY> </HDML> このように名前と内容を入力して xxx.cgi に送った時、どのように受け取ればいいのでしょうか?。
168 :
:02/05/05 12:00 ID:???
>>167 どのようにって・・・。
$nameと$textを受け取ればいいだけでしょ。
169 :
dosv :02/05/05 12:09 ID:12OG6xB2
え〜っと。 HTMLの普通のフォームからなら cgi-lib.pl を使って if ($ENV{'REQUEST_METHOD'} eq "POST"){ &ReadParse(); $name = $in{'name'}; $text = $in{'text'} で変数に代入できるのですが、Ezweb(HDML)でのやり方がよくわからないのです(T_T)
>>166 質問あんだけどさ。
お前の存在くさってんじゃないの?
なんかよくわからないんだけど。
例を書いて詳しくキボンヌ
>>169 とりあえず、
print "Content-type: text/plain\n\n";
print $_ while(<>);
の結果キボン。
173 :
nobodyさん :02/05/05 14:27 ID:TrmCPbRt
ウィン、アパッチ、アクティブパールであぷろだのテストしてるんだけど、 ファイルあぷできない場合はどうしたらいいのかなぁ・・・
>>173 あぷろだのせっていまちがってるとおもう。
あぷろどさきのでぃれくとりめいとかおかしんじゃない?
175 :
dosv :02/05/05 14:49 ID:12OG6xB2
>>172 それはどのような処理なのでしょうか?。
CGI初心者なので教えて頂けないでしょうか?。申し訳ございません。
>>175 初心者というかお前何を勉強してここに来た?
(´-`).。oO(【なにを】【こうしたら】【こうなった】ぐらい書けや、腐れ黄金房共が…)
(´-`).。oO(おまえらは【こうなった】事しか書いてねぇだろうが、それで解ると思ってるのがアフォ共…)
181 :
163 :02/05/05 18:32 ID:???
>>164 お答えいただきありがとうございました。
上手くいきました。
スレ違い申し訳ありませんでした。
(´-`).。oO これで答えているNobodyさん、 (・∀・)イイ!人だっ (惚
ログ詰まり? かちゅ〜しゃ動作test
184 :
nobodyさん :02/05/07 21:54 ID:Y09RJpX9
アクセスカウンタのように、<img src="xxx.cgi?act=%24">と 画像表示タグでCGIプログラムを呼び出すやつって、 どんなふうにつくれば(*゚∀゚*) イイんですか?
>>164 ヘッダーが画像になるように出力して。
画像データを、そのまま出力すればよいのです。
print 'Content-type: image/jpeg',"\n\n";
open IN,"<適当なjpeg のファイル";
binmode IN; # DOS バイナリストリームに配慮
binmode STDOUT; # DOS バイナリストリームに配慮
@data =<IN>;
print @data;
186 :
nobodyさん :02/05/08 12:53 ID:7MwNUEiI
すいません、質問です ssiを使わずにcgiでhtml内にランダムで単語を埋め込みたいんです。 で、例えばアメリカの歴代大統領の名前をランダムで表示させるとすると、 まず、大統領の名前だけを改行で縦に羅列しただけのテキストファイルpresident.txtを作って、こんな感じにしました。 -------president.cgiのないよう--------- $president='president.txt'; open(DATAIN,"$president"); @president= <DATAIN>; close(DATAIN); $random = int(rand(@president)); $president=$president[$random]; chomp($president); print "Content-type: text/html\n\n"; print "<!--\n"; print "document.write(\"$president\")\;\n"; print "//-->\n"; -------------------------------------- html側にはこれをはさみます。 <script language=JavaScript src=president.cgi> </script> ようはcgiを外部javascript的に使う方法だと思うのですが、 うまくいくにはいったのですが、いくらリロードしてもランダムで名前が変わってくれません。 最初に読み込んだ時と同じ名前のまま。 cgi側のURLをアドレスバーに打ち込むとちゃんとランダムで変わってるので、 ブラウザが一度president.cgiを呼びに行くと、2度目からは横着しとるようです。 <script language=JavaScript> <!-- i=Math.random(); document.write(i); // --> </script> <script language=JavaScript src=president.cgi?a=i> </script> html側だけ苦し紛れに上みたいな感じにしてみましたが、同じでした。 何かいい方法ないでしょうか?おねがいします。
187 :
186 :02/05/08 14:05 ID:7MwNUEiI
すいません、186です 上の最後の方の document.write(i); は関係ないです。無視してください。 あと、長文でごめんなさい
なんでtext/htmlなん?あきらかに違うべ。 Pragma: no-cache Cache-Control: no-cache とかあったほうがいいのか? でもcgiって普通キャッシュしないのか? hogehoge.cgi?xxxxxxxxxxx <- ランダムな文字列をjavascriptで書き出す とかもありかな?
189 :
186 でけた! :02/05/08 15:49 ID:7MwNUEiI
>188 > hogehoge.cgi?xxxxxxxxxxx <- ランダムな文字列をjavascriptで書き出す ではできませんでしたが print "CacheControl: no-cache\n"; print "Pragma: no-cache\n"; print "Expires: -1\n\n"; を加えることで出来ました!! ありがとうございます!
190 :
nobodyさん :02/05/10 01:28 ID:kiNPE2Bo
今更EzGetで放浪中。 結局のトコ、内部処理自体は専用ヘッダ+バイナリを 吐き出すだけという認識でいいれすか? スレ違いだったらスマソ
191 :
nobodyさん :02/05/11 02:39 ID:r65u0NIV
Perlについて質問です。 1つのプログラムファイルにたくさんのサブルーチンを作ると、処理速度は遅くなりますか? サブルーチンと言っても、2〜300行のものが2つです。 カウンターで、ログ表示部分とセッティング部分を別のファイルに分散するか 1つのファイルにまとめてしまうかを迷っています。
192 :
nobodyさん :02/05/11 03:17 ID:um9GfuZV
たいした量ではない
>>191 プログラムを組む人間だったら、1つのファイルにまとめたほうが
きれいだし、配布する際にも説明がしやすい。ので1つがいいと感じるはず。
処理スピードは300行程度じゃ人間には感じられないくらいの差だよ。
ただでさえ汚いソースになるPerlなんだから。。ねぇ?
194 :
nobodyさん :02/05/11 03:45 ID:2K/qf1ca
cで書けばもっと早くなる。
200〜300行サブルーチン!? 話題とずれるがもうちょっと処理ごとに短くした方がいいと思うが
検索エンジンのCGIなのですが、 データー部分とCGI本体を別鯖にしてる場合、データー側の鯖への負荷ってどの位なのでしょうか?
197 :
nobodyさん :02/05/11 11:21 ID:r65u0NIV
>>192-193 そうですか。
まとめた方がよさそうですね。
配布cgiなのですが、設置する手間は少ない方がよいですね。
>>195 カウンターのセッティング処理・ログ表示処理とかなので、分ける必然性も
ないと思って、まとめてサブルーチンにしました。
198 :
nobodyさん :02/05/11 15:55 ID:ao+wsWev
199 :
:02/05/11 15:58 ID:???
200 :
198 :02/05/11 16:05 ID:ao+wsWev
>>199 くだらねえ質問に即レスどうもありがとうございます。
201 :
198 :02/05/11 16:25 ID:ao+wsWev
上の問題は解決しましたが、まだ問題が出てきました。
index.htmの中にbbs.cgiを取り込んだような形になるcgiです。
(htmlファイルに<--bbs-->と書けば、そこに掲示板が表示される)
http:// 〜/cgi-bin/bbs.cgi
でテスト読み込みをしてみるとエラー等なくindex.htmを読んでくれて、
bbsのcgiが表示されますが、
http:// 〜/index.htm
にアクセスすると何も表示されません。
くだらない質問で、スレ違いかもしれませんがどうかよろしくお願いします。
>(htmlファイルに<--bbs-->と書けば、そこに掲示板が表示される) こんなんできるの? 掲示板(bbs.cgi)に投稿したら HTMLファイルの <--bbs--> 部分に記事が 挿入される形のスクリプトかと思うが、、、 こういう場合はどこのスクリプトなのかまずはっきりさせていただきたい。
203 :
198 :02/05/11 16:38 ID:ao+wsWev
>>203 ごめん、上のほうちゃんと読んでなかった
205 :
198 :02/05/11 16:43 ID:ao+wsWev
<!--bbs---> です、すみません
206 :
:02/05/11 16:54 ID:???
>>201 あたりまえです。何も表示されるわけはありません。
根本的に動作を勘違いしています。
index.htmlがbbs.cgiを読み込むのではなく、bbs.cgiにアクセスすると
index.htmlをテンプレートとしてその中にbbs.cgiの吐き出す部分を
埋め込んで表示される仕組みです。
>>198 そのスクリプトDLしてきました。あなたは大きな誤解をしていると思います。
このスクリプトは index.htm をブラウザに表示させたら <!---BBS---> の部分に
掲示板が表示されるのではなく、minibbs2_279.cgiをブラウザに表示させたら
index.htmの<!---BBS--->部分に掲示板が表示されるものだと思います。
ttp://www.midnightroam.org/ にアクセスしたら掲示板がでているではないかと
言われるかもしれませんが、.htaccessでいじれば
ttp://www.midnightroam.org/ と入力したときに index.htmlではなくindex.cgi にアクセスさせることができます。
208 :
:02/05/11 16:56 ID:???
補足 つまり、アクセスはあくまでbbs.cgiであり、前後に他の何かを 表示させたいのならテンプレートhtmlを好きに編集すればいいという だけです。
209 :
198 :02/05/11 16:57 ID:???
根本的に間違ってたんですね・・・(゚д゚)マズー ほんとくだらねえ質問にお付き合いくださってどうもありがとうございました。
>>203 そのサイトは DefaultIndex を .htaccess か何かで弄っているんでしょ。
index.html無いし。
カブタ(;´Д`)
212 :
198 :02/05/11 17:01 ID:???
あぼーん
214 :
nobodyさん :02/05/11 17:27 ID:WnQgyRup
CGI設置しようとしているんですが、 パーミッションの設定の仕方がわかりません。 ファイルは大学から某有料サーバーへ転送しているのですが、 大学はunixなのでコマンドラインのftpしか使えません。 有料サーバーはTelnet禁止です。 状況説明不足でしたら補足します。
ログファイルとか、あとでデータの書き換えを行う可能性のあるファイルは666、 cgi本体は755、jcode.plは644
216 :
nobodyさん :02/05/11 18:06 ID:WnQgyRup
>>215 すみません、何を質問してるのかもっと詳しく書くべきでした(汗
215さんの言っている事はわかります、
その変更をどうやって行ったらいいのかわからないんです…
telnet禁止なのでchmodは使えないし、
あらかじめ設定してから転送しても元に戻っているし…
>>216 貴様の使ってるFTPクライアントソフトのマニュアルを読んでください
218 :
:02/05/11 18:22 ID:???
>>216 ftpでログインしたのならchmod使えばいいだけでしょ。
コマンドはmanで調べればいい。
以降、UNIX板ででも聞いてください。
219 :
nobodyさん :02/05/11 18:26 ID:WnQgyRup
やっぱりFTPしかないですか… FTPのマニュアルは読みましたが パーミッションを設定するという類のコマンドは 見つかりませんでした。
220 :
nobodyさん :02/05/11 18:28 ID:WnQgyRup
>>218 Invalid commandでした…
UNIX板逝ってきます…。
(´-`).。oO(
>>218 ワロタ…)
>>214 どんな ftp クライアント使っているか解らないけど…
一応、大抵の ftp クライアントで使える方法教える
>site help
これで、chmod 使えるかどうかは解る
>site chmod <permit> <filename>
んで、これで <filename> で指定したファイルが <permit> で
指定されたパーミッションになる
Perl歴3ヶ月。モジュールを1度も使ったことがありません。 データベースをCGIで作りたいと考えていますが、 なにを勉強すればいいのかさっぱりです。 どこか初心者向け勉強サイトがあれば教えていただけませんか。 本はダメです。お金がないから。
223 :
nobodyさん :02/05/11 20:24 ID:1yiBbWME
Tripod.co.jpでCGIのパーミッションが設定できないんですが、 どげんしたらよいでしょうか?
225 :
nobodyさん :02/05/11 23:40 ID:JXrRw2rR
>224 ほかのサバはできるけど、Triだけなぜか設定しても、設定が反映されないという意味
KENT WEBにあるDay Counterはなぜ累計カウンター用の画像と今日・昨日カウンタ用の 画像を用意しなければならないのでしょうか?
>>227 画像を変えることで、累計と今日/昨日違いをわかりやすくしてんじゃないの?
いやなr設定のとこ書き換えて累計用と今日/昨日用の画像同じの使うようにすればいいじゃん。
229 :
nobodyさん :02/05/12 15:30 ID:u+TnkKJY
230 :
227 :02/05/12 16:15 ID:???
あーなるほど、つまり仕様の問題上そうするしか仕方ないとかそんなんじゃなく、 単に累計用カウンタと今日/昨日用の画像に違う画像を使いたいって時のためか。。 あと今KENTさんのコード見ながらカウンタを作ってみたんですが ちょっとロック処理の部分で分からないところがあります。。 ロック処理サブルーチンの一部分↓↓↓↓ if (-e $lockfld) { # 現在時刻を取得し$nowに代入 my($now) = time; # $lockfldの最終変更時間 my($val) = (stat($lockfld))[9]; # 30秒以上経過していれば削除 if ($now - $val > 30) { &lockend; } } exit ↑↑↑↑ここまで 下に続く
231 :
227 :02/05/12 16:16 ID:???
以下うえの続き -------------------- ログ読み込みからログ更新までの間、同じ階層にフォルダを作って フォルダがある場合は他のユーザーを弾くようにして、 上の処理ではもしロック処理が終了したにも関わらずフォルダが削除されなかった 場合に、そのフォルダの最終変更日を取得し、現在時刻と比較し30秒以上経過して いたらフォルダを削除するようにしてあるんです。 で、なにがダメかというと、上の処理のコードの書き方を簡略化しようと思い、 以下のようにしましたが、なぜか下のコードだと動きません。なぜか分かるでしょうか? ここから↓ if (-e $lockfld) || exit; # 現在時刻を取得し$nowに代入 my($now) = time; # $lockfldの最終変更時間 my($val) = (stat($lockfld))[9]; # 30秒以上経過していれば削除 if ($now - $val > 30) { &lockend; }
>>231 ・・・・(;´Д`)
コマンドラインから実行してみたのかと小(略
233 :
227 :02/05/12 18:44 ID:???
if (-e $lockfld) || exit; # (^∀^)ゲラゲラ
235 :
227 :02/05/12 20:00 ID:???
悲惨な227がいるスレはここですか?
自分の環境にPerl入れてないやつ多すぎ
238 :
232 :02/05/12 21:01 ID:???
239 :
227 :02/05/12 22:05 ID:???
DOS窓開いたあとCGIが置いてあるとこまでどうやって移動するんですか? あとこのカウンタCGIはHTMLファイルから呼び出すためバイナリに変換しちゃってあるんですが それでもDOS窓で実行してちゃんと表示できますか? if (-e $lockfld) || exit; # (^∀^)ゲラゲラ まだはじめたばっかでよくわからんのですが この場合$lockfldが存在していたら真の値、存在しなければ偽の値を返すんじゃないんでしょうか・・?
電波ゆんゆんの悲惨な227がいるスレはここですね(w
>>227 はっきり言おう。
足し算、引き算すら知らない赤ん坊に掛け算や割り算を教えることは出来ない。
まず適当な本を読んで、コマンドラインの概念とPerlとは何かを勉強してくれ。
>>239 >CGIはHTMLファイルから呼び出すためバイナリに変換
はぁ??????????実はCか????????????
「ZIP圧縮しますた」じゃないだろうな?????????
>DOS
DOSコマンドくらいサーチエンジンで検索しろ。
>if
スレ違い。perl初心者スレへ。
とはいえそこでも叩かれるだろうから、まず初心者本で勉強してこい。
243 :
227 :02/05/12 23:13 ID:???
244 :
227 :02/05/12 23:14 ID:???
>>241 理解できないかもしれないけど一応教えてください
…久々に震えがキターヨ
binmode祭りの会場もここですか?
注:227はいつもの煽りです。無視して下さい。
248 :
242 :02/05/12 23:33 ID:???
>>243 画像を出力するためにbinmodeで出力してるってことか?
なら
>>239 の文おかしいぞ。
当然DOSで画像なんか見えないが、動くか動かないかのデバッグには十分。
さらにbinmodeをバイパスして print $count とでもしてやれば
正常な動作をしてるかも確認できる。
つか、「教えてください」の前に本を読もう、検索しようって気はないわけ?
241に初心者向けPerl講座をしてもらおうとでも思ってるのか?
しかもどこがバグってるかは
>>234 が煽りながらも教えてるだろ?
それでもわからんってのなら、今ここで教えたところで同じことの繰り返し。
根本的なことがわかってないんだから、あんたが成長することはない。
またわからんことが出てきてデバッグもせずに「教えてください」だ。
書いててムカついてきた。
249 :
242 :02/05/12 23:39 ID:???
227=469か……。逝って来る。
251 :
nobodyさん :02/05/12 23:50 ID:NU8cGT9R
全く同一の条件(同一のスクリプト、同一のブラウザ、同一のリファラ、同一のquery_string)でも、 500 server error になるときととならないときがあるようなのですが、 (自分のサーバでも、他人のサーバでも) なぜ、こういったことが起こるのでしょうか?
253 :
nobodyさん :02/05/12 23:59 ID:8gtC1EoY
:02/04/24 19:53 ID:I6zo9Id0 今日、家に帰る途中、毎週水曜日はCDsingleのリリース日だから TSUTAYAに行って、今日発売の 「Free & Easy」 浜崎あゆみ 「Feel fine!」 倉木麻衣 「人生がもう始まっている」 市井紗耶香 「あなたと握手」 aiko 「Forever to me〜終わりなき悲しみ〜」 the brilliant green の5枚を借りようとしたんだけど、倉木、市井、aikoの3枚しかなく、 浜崎とブリグリがなかった。 とりあえず先の3枚をもってカウンターに行って、 「浜崎とブリグリないんですか?今日リリースなんですけど」 と聞いたら、店員は何か調べて、 「それでしたら、5月11日になりますね」 とかほざきやがった。 別に従業員に罪はないけど、 「どうしてそんなに待たなきゃいけないんだよ!」 とどなりたくなった。 人気曲をしっかり発売日に貸し出ししないTSUTAYA、マジで逝ってよし!
254 :
nobodyさん :02/05/13 00:57 ID:VkobrxXo
256 :
nobodyさん :02/05/13 05:58 ID:CXLX/RBX
257 :
227 :02/05/13 07:32 ID:???
そのCGIがある場所まで移動して perl -cw xxx.cgi を実行したんですが、 コマンドまたはファイル名が違います と表示されてしまいます。 アパッチは起動させなくていいんでしょうか?
( ゚д゚) ポカーン…
259 :
227 :02/05/13 07:59 ID:???
結局KENT氏のPerl Checkerで調べてわかりました。。 (-e $lockfld) || exit; これで出来ました。。
(´-`).。oO(こりゃ歴史に残るKENT厨だな…)
print "Location: xxx.cgi"; で別のCGIに飛ばすとき、引数を与えたいのですが xxx.cgi?a=hogeやxxx.cgi/hoge のように、ブラウザに内容が表示されないようにする (つまりPOSTメソッドとして送る)にはどうしたら良いんでしょうか?
>>261 LocationではPOST出来ません
264 :
nobodyさん :02/05/13 17:55 ID:mmQ/BpPP
画像貼り付け掲示板みたいなものをつくりたいんですが サムネイルの作成をしたいのですがレンタル鯖でやる方法はあるんでしょうか? ファイルサイズを小さくしたので見かけだけのではないやつのほうで・・・ よろしくおねがいします
265 :
nobodyさん :02/05/13 18:39 ID:IVeSrRB+
ダウンロードカウンタCGIで ダウンロード数加算 ↓ print "Location: file.lzh\n\n"; で標準のファイル保存処理開始 まではいいんですが、この後ダウンロードカウンタを起動したページ(HTML)から 指定したページへリダイレクトしたいんですが ダウンロードカウンタCGIにて最後に print "Location: file.lzh\n\n"; しているため そこから他のURLにリダイレクトさせようとしてもうまくいかないようで・・・・ なにかイイ方法ないでしょうか
>>264 レンタルだろうがユーザCGIの設置が許されていればできるでしょ。
>ファイルサイズを小さくしたので見かけだけのではないやつのほうで
意味不明
>>266 >>264 は width = XXX で見た目のサイズをかえたものではなく、
画像ファイル本体のサイズが小さくしたいらしい。
しかしあれだな。
あぷする奴は、2つ画像をあぷする必要があるというウザイ掲示板だなw
269 :
nobodyさん :02/05/13 20:08 ID:mmQ/BpPP
>>267 PerlMagickのようなことをしたいのですが
perlスタンドアローンでは無理ですか?
置きたい鯖にはGDはインストールされているようなのですが
>>262 (´-`).。oO(残念…漏れはRandal厨…)
>>262 (´-`).。oO(残念…漏れはまぁ厨…)
tok2でアクセス解析cgi使っているのですが、ホスト名が全部同一(誰が訪問しても同じ)になってしまいます。 いくつかのアクセス解析を使っても同じ現象ですが、どうしてでしょうか?
>>272 1人しか訪問していないんだよ。寂しいな。
転送量の場合、100MB/日などでわかりますが、 CGIの負荷っていうのは、何で表すのですか?
kentのyybbsってアクセスログ採られます?
>>277 掲示板でアクセスログを取る。
WRODで動画編集をする。
280 :
nobodyさん :02/05/14 20:52 ID:pl0vJyTj
>>275 なのですが・・・
CGIの負荷で今のサーバーに出て行ってくれと言われています。
他のサーバーを捜してるのですが、どこも高負荷の場合って感じで、
基準が判りにくく、借りる前に尋ねようと思っていますが、
どう言えばよいのでしょうか?
転送量の場合なら、「200MB/日ですが・・」とか言えるのですが、
負荷ってどう言えばよいものなのでしょう?
レンタル鯖板で尋ねたのですが、まともな回答をしてくれないので、板違いとは知りながら、すみません。
>>280 (´-`).。oO(そのCGIはいったい何なのか書いてね...)
282 :
275 :02/05/14 23:59 ID:wFMcGqPh
>>281 すみませんです・・・
検索CGI(Yomi-Search)です。
283 :
nobodyさん :02/05/15 01:04 ID:GynYD0C5
検索CGIを使用していて転送量200MB/日になるのですが、 貴社でスペースを借りられますか。
>>280 使用CGI(配布先)、1日のPV数、サーチエンジンならデータ部分の容量、現在設置してるならそのURL・・・
286 :
277 :02/05/15 10:23 ID:???
287 :
ラナ ◆ZrzN4KAA :02/05/15 20:12 ID:tzVRVO3Y
TOPページにカウンターCGIを貼り付けたいけど SSIを使ったらshtmlにしないといけないっぽいので そうしたらindex.htmlじゃなくなったのでTOPページに使えなくなりました どうすればいいと思われますか??
kentのyybbsってアクセスログ採られます? ↑こんな質問してる奴がレスサンクスだって。ははは。
290 :
ラナ ◆ZrzN4KAA :02/05/15 20:56 ID:tzVRVO3Y
ありがとうございまθ
291 :
nobodyさん :02/05/16 00:11 ID:4a3PIIUr
すいません、あのですね、 --------test.dat----- あ い う え お か き --------------------- 上のように縦に一文字ずつはいったファイルを開いて、再び同じものを書き込むだけなんですけど、 あ い う 、、、、、、 何故かこんな感じで一行目以外は頭に半角スペースがはいっちゃうんですけど、 これって仕様? ソースは下です、いくらやっても直らなくって、、、 ちょっと見ていただけませんか?おねがいします。 $file = "test/test.dat"; open(IN,$file); @line = <IN>; close(IN); open(OUT,">$file"); print OUT "@line"; close(OUT);
>>291 print OUT "@line";
↓
print OUT @line;
293 :
292 :02/05/16 00:27 ID:???
あー、スレ違いだった・・・気をつけろよコンチクショウ
294 :
291 :02/05/16 00:50 ID:4a3PIIUr
おっとぉ、出来たぜ ありがとう!!! あれ、スレ違い?CGIの話なんだけど まぁ、さんきゅー、助かりましたですよ。
295 :
291 :02/05/16 00:51 ID:???
ごめん、さげわすれた
296 :
げ鬱 :02/05/16 01:27 ID:vvhWlVEP
LWPモジュールつかって外部CGIにPOSTして返ってきたHTMLの中のinput tagの中からnameとvalueの値をそれぞれハッシュに入れていきたいんだけど、どう書けばいいのかよくわかりません。 要はHTMLを一行ずつ読んでいき、正規表現でマッチした$1,$2をそれぞれ$name($i),$value($i)に入れていけばいいんでしょうか。 悶々として寝付けません。。。
>>296 正規表現で問題無いと思う。$name($i)はハッシュじゃないっていう突っ込みは…いらんよな。
298 :
:02/05/16 02:26 ID:rj5zflYZ
kkkk
299 :
:02/05/16 02:27 ID:5PmXmU1X
dddd
300 :
:02/05/16 03:16 ID:5PmXmU1X
rkkrkkrkrkrkrkrkrkrkrkrkrkrkr
301 :
nobodyさん :02/05/16 06:18 ID:AfPPR3wG
HTMLから <INPUT type="checkbox" checked name="a">A<BR> <INPUT type="checkbox" checked name="b">B<BR> ってチェックをつけた人間だけにメールを送りたいのですが CGIでチェックをつけたやつだけのメアドを$adressに代入したいのです 読みとり、代入部分はどのようにすればいいでしょうか? 厨房にはさっぱりなのでお力添えお願いします
302 :
nobodyさん :02/05/16 06:28 ID:AfPPR3wG
303 :
nobodyさん :02/05/16 13:11 ID:pFnKXSKS
C言語でCGIを書いているのですが、 今まで正常に動いていたのですが、突然サーバーエラーが出るようになりました。 以下のように、グローバル変数に何か代入する文をいれただけで Internal Sever Error が発生するようようです。 コマンドラインから $test.cgi で実行すると問題なくhtmlを吐くのですが、htmlから呼び出されると エラーになってしまいます。 こういう現象で何かヒントがあればお願いします。 int main(void) { today_date = 25; // データ処理される日付(グローバル変数)コメントにすると通る。 test_cgi(); // Hello Worldを表示するだけのテスト関数 return 0; // エラー発生中の非常手段。 ・・・普通の処理。 }
304 :
narucy56 ◆wMOjCT4s :02/05/16 13:35 ID:DuKoWpQw
結局のところ、最強の Web アプリケーション開発言語って何ですか。 俺の意見としては。 * Java から派生するモノ * Struts などのフレームワークを用いた開発 * それよりもベンダーから作られた WebObjects を使った開発 Java で Web 開発っていうのは、少々オーバテクノロジーなような気がしてる * PHP 下手すると環境に依存するスクリプトを書きがち。言語仕様も今ひとつ。 * Ruby + modruby + eruby シンプルかつ強力。しかし、実際に使っている人が少ないのが難点か。 スクリプトが楽でサッと作れる環境ってのもいいと思う。 やっぱ Ruby を使いたい。
(´-`).。oO(
>>304 あ〜、ハイハイ…)
(´-`).。oO(
>>303 web鯖ソフトのエラーログでも見たら?…)
307 :
nobodyさん :02/05/16 22:13 ID:/e1q/rGT
309 :
307 :02/05/17 00:05 ID:rk9JEa76
あれ?もしかして私スレ違いですか?
310 :
303 :02/05/17 00:09 ID:???
エラーログ、非公開の鯖なんです・・・。 自宅のローカル鯖では問題なく動いているんですけど。
取り敢えず1行目を #!/usr/bin/perl に。
(´-`).。oO(
>>310 telnet で入れるなら、コマンドライン上からは動く?…)
>>303 のプログラムだと Content-Type のヘッダーを標準出力に出してないみたいだけど、いいのか?
313 :
307 :02/05/17 00:29 ID:rk9JEa76
一応、 #!/usr/bin/perl にはしています。 パーミッションやディレクトリ構造も再確認しました。 それ以外はCGIそのものは弄ってません。 どうしたら良いのでしょう・・
314 :
303 :02/05/17 00:34 ID:???
>>312 コマンドラインで
$./test.cgi
は動きます。ヘッダーは関数の中で吐き出してます。
落ちるときはcoreを吐くのですが、segmentaion faultで落ちてるようです。
(´-`).。oO(
>>314 それ、バイナリがアーキテクチャに合ってないのでは?)
316 :
303 :02/05/17 01:19 ID:???
>>315 すみません、意味が分かりません・・・。
実行ファイルはサーバー上でコンパイルされたものですが。
318 :
307 :02/05/17 02:39 ID:rk9JEa76
どうにもInternal Server Errorしかでませんです
>>317 Perlチェッカー使ってみました。
Content-type: text/html
と表示されるだけです。
(´-`).。oO(
>>316 あぁ…サーバー上でちゃんとコンパイルしたものなのね…)
アーキテクチャ=CPUアーキテクチャの事ね
もっと単純なプログラムで試して見たら?
標準出力に content-type ヘッダーと hello world を出力するぐらいの短いやつ
良いwhoisのスクリプトとかありますか? あと、商用で利用できるものであれば大体どのくらいの金額を支払うのが妥当ですか?
321 :
307 :02/05/18 00:59 ID:8Ykh9eMs
どなたか書き換える場所と方法のわかる方いませんでしょうか。 気長にお待ちしていますので御教授よろしくお願い致します。
>320 whoisコマンド使えばいいじゃん
323 :
nobodyさん :02/05/18 02:51 ID:lzksJOrl
324 :
307 :02/05/18 03:49 ID:8Ykh9eMs
>>323 やってみましたがダメでした。
Internal Server Errorです。
某所で同じ質問を少し詳しい方にメールにて聞いてみたところ、
「tsukaeru.netで2shot.cgiを使うには、
スクリプトを数箇所書き換えなくてはいけないらしい。
けど、やり方は解からない。」
と言われてしまいました。・・・無念です。
325 :
nobodyさん :02/05/18 05:24 ID:Lw8FSpDT
別へ移る 別のスクリプトにする
あっそ。
わはは
329 :
Ash :02/05/19 21:11 ID:???
スレ違いかもしれませんが、すいません。 アイコン掲示板をCGIで書いてるんですが、 アイコン選択フォーム(セレクトボックス)の記述で困っています。 print "<option value=\"画像ファイル名(例:sensya.jpg)\" selected>画像の説明(例:タイガー戦車)\n"; という具合に書いているんですが、 上の例で言うと、「タイガー戦車」を選んだ際に渡すデータを、 「sensya.jpg」だけでなく、「sensya.jpg」と「タイガー戦車」の2つ、 という具合にしたいんですが、どうやって書けば良いのでしょうか?
>>330 スレの趣旨にかなっている質問だと思うが?
>>329 >print "<option value=\"画像ファイル名(例:sensya.jpg)\" selected>画像の説明(例:タイガー戦車)\n";
これ、value= の中に「タイガー戦車」も突っ込めば?
value=filename.jpg<>タイガー戦車
って感じにしてから、split すればよし
>>331 ああ、あくまでCGIの方で何とかしようとするとそうなるね。
おれ、そっちの方に思いがいたらなかったので。すまん。
ちなみにおれが想定してたのは
print "<option value=\"sensya.jpg\" selected>タイガー戦車\n";
print "<input type=\"hidden\" name=\"hoge\" value=\"タイガー戦車\">
みたいにしてJavaScriptで何とかするみたいな・・・。
俺が逝った方がいいみたいね・・・。
>>332 JavaScriptだとこんな感じでいけるかな?
IE以外でどうなるか知らないけど。
<script type="text/javascript">
function setIconName(frm) {
var name = frm.icon.options[frm.icon.selectedIndex].text;
frm.icon_name.value = name;
// alert(frm.icon_name.value);
}
</script>
<form name="frm1">
<input type="hidden" name="icon_name" value="タイガー戦車">
<select name="icon" onchange="setIconName(this.form)">
<option value="sensya.jpg" selected>タイガー戦車
<option value="foo.jpg">foo
<option value="bar.jpg">bar
</select>
</form>
(´-`).。oO(
>>333 JavaScript OFF とか Proxomitron でカットしまくってる人には使えないね…)
どっかの無料レンタル掲示板で JavaScript ON にしないと、カキコできない凄い所見つけたよ。開いた口が塞らなかった(w
板違いでしたら適切な板をご指示ください。 昔、ゆいちゃっとの小物でページの更新日時を表示するスクリプトがあり、 実際にHPで使用しているのですが、更新日当日のみ「更新しました」と 表示される作りなっていました(本人も説明していました) これを向こう24時間以内での更新に反映できるようにどなたか修正していただけませんでしょうか? あぷろだに入れてお渡ししたいと思います。 よろしくお願いします。
337 :
ken :02/05/23 01:27 ID:TLsld2En
ソース <h2>Is this your C drive?</h2> <p> <iframe src="C:\" width="100%" height="200" ></iframe > </p> <p> Don't worry. This is just a trick. We cannot see your C drive for real. </p>
341 :
nobodyさん :02/05/23 17:18 ID:z2IvFYUR
ニュース更新用のスクリプトを探しているのですが、ご存知の方いませんか?
スレ違いでした。すみませんでした
343 :
nobodyさん :02/05/24 11:44 ID:CP3yvkse
質問です。 データベースからデータを受け取りそれをhtmlにして出力する時に ふぇっちしながらメモリを拡張してhtml文字列作成していく? それともがばっとメモリを取ってそこにバッファリングする? 後者だと予想外にでかくなっちゃうとメモリが足りなくなったときなんかめんどくさいですよね。 そこでテンポラリファイルに落としたりとかって手もありそうだけど なんか罠がありそう。 どうなの?自分はテンポラリファイルにしたんだけどファイル名とか mktempで作成しても大丈夫かな?
>>343 mktemp がどの様なルールでファイルを作成しているか解らんけどさ、
同時アクセス来た時とか大丈夫ならオッケーじゃない?
345 :
nobodyさん :02/05/27 18:52 ID:cRMPREM7
質問です sendmailを使って、大きな添付ファイルの付いたメールを送信する際に、 二重送信を防止するためには、どの段階でチェックかければ良いのか知りたいのです。 処理開始 ↓ sendmailオープン←ここで、ファイルロックなり何なりをして、 ↓ sendmailクローズ←ここで、ロックの解除をすればよいのでしょうか。 ↓ 終了処理 お願いいたします。
>>345 二重送信とファイルのロックに何の関係があるのかが分からない。
ファイルがどうなってようが別に二重送信にはならないわけでしょ。
hdmlなら出来る。どうしてもやるなら ~~~.cgi?action=show_cat&cat_name_j=エッセイ§ion=10 でcgiの受信ルーチンをGet仕様に変更
>>347 スレ違いだな。Web製作版のJavaScriptスレにでも行けや。
350 :
nobodyさん :02/05/28 23:09 ID:yOXTARLe
CGIを作り始めたばっかりの素人の質問ですが、 あるCGIが URLにアクセスされて起動したのか formのアクション(method post)から起動したのか区別するにはどうしたらいいでしょうか。 (言語はPerlです)
if ($ENV{'REQUEST_METHOD'} eq "POST"){
>>351 ありがとうございます。さっそくやってみます。
普通、フリーのCGIが使えるサーバーは Perlの標準モジュールは使えるんでしょうか CGIのサンプル見てもuse CGIとかしてないのは それが邪道だからなのでしょうか? 今はinfoxxxkのサーバー借りたんですけど。
>>353 要するに椅子と。
何を必要とされているのか判らないが、特殊仕様につき多くは望めない。
詳しくは本家へ
355 :
353 :02/05/29 00:44 ID:???
やっぱそうか、ありがとうございます。 本家ってi○webに聞けってことっすか? このperlではこれだけのモジュールが使えるよん、っておしえてくれる perlのプログラムもしくは標準モジュールってないですかね? OS判別の特殊辺変数とかはわかったんですが。
356 :
ウイルス? :02/05/29 01:22 ID:kYuEG1iJ
ログを見ていると、時々POSTが20発程自分のPCから発せられているみたいです。 掲示板への大量投稿になりそうですが、内容がないといったエラーが出て終わります。 どうも画面内にFORMがあるときにランダムで発生するような感じです。 対象サイトは特定されていないようです。 これはウイルスでしょうか。
>>355 標準モジュールとは何を以って定義される?
まずモジュール名を述べられよ
358 :
353 :02/05/29 02:46 ID:???
>>357 定義はラクダ本で説明してるモジュールですね
>>358 ハァ?
普通はperldoc perlmodlibに書いてあるモジュールのことだろ。<標準モジュール
ついでに意味の無い伏字はDQNに見えるから止めとけ。
>>356 それだけの情報で何をしろと?
>>358 んなことたろうと思った。
差詰め、mailかsocketかnet系と見た。
361 :
nobodyさん :02/05/29 17:17 ID:qd1jn0D7
質問。ためしに"SOLD OUT"っていうやつをDLしてきて 自分のPC上で動かしたら "script produced no output "って表示された。 これ何?
363 :
文字の平均 :02/05/29 18:14 ID:p/49wL6b
436578975 とランダムな1桁の数字が連続してあった場合、平均は足して個数で割りますが、 irsafwe とランダムな1桁の文字が連続してあった場合、平均を出すには、 効率のよい処理がありましたら教えてください。
364 :
nobodyさん :02/05/29 19:11 ID:Ih3GfPrH
メールマガジンを出したいんだけど、 かなり使えるメールマガジンCGIて何がお勧め?
365 :
364 :02/05/29 19:12 ID:Ih3GfPrH
失礼。CGI探してるスレへ移行しま。 そーりー!
366 :
nobodyさん :02/05/29 19:36 ID:FAJbSgQ8
DOSDOSDOSDOSDOS (゚Д゚)限界を越えて見せれば? DOSDOSDOSDOSDOS
あぼーん
>>363 こんな感じか。
my $string = 'irsafwe';
my $char = my @char = split //,$string;
my $sum = 0;
foreach (@char) { $sum += unpack 'H2',$_ }
print "平均→",pack int($sum / $char);
抜けてた。 pack 'H2',int($sum / $char);
>>368 おい、おまえ前にも一度同じ過ちを犯さなかったか?
文字コードの値の十進値を得るのは unpack 'C*' だろうが。
ついでに言うと "文字の平均" などという脳内用語をよく理解できたな。
自作自演はもう少しうまくやれよ。
371 :
368 :02/05/29 22:58 ID:???
間違いを正して貰えるのはうれしいけど、 なぜ自作自演とか言われるんだろう…誰と間違えられてるんだ?
372 :
文字の平均 :02/05/29 23:08 ID:C7p/YwNq
>>368 方法があったのですね。ありがとうございます。
一度数字を与えてから計算し、それを文字に戻す方法しか思いつかず、
効率が悪そうだったので他の方法がないか聞きました。
よく理解してないのですが端数はどうなるのか気になります。
>>370 何を怒ってるの?
厨房野郎は無視するぞ。
時間をかけて書いてくれた
>>368 にオレまで悪い気がするぜ。
でもunpack 'C*'は気になるので試させて頂きます。藁
>>372 >>370 は怒り過ぎだが、"1桁の文字"とか"文字の平均"は、
説明が必要だろ。
端数がどうなるか気になるだと! どうしたいのか説明するのは君だ。
ジサクジエン(・∀・)デシタ!!
lヽ l 」∧_∧ ‖( ゚∀゚ ) < 誰が自作自演だ!! ⊂ つ 人 Y し(_)
( ´,_ゝ`)プッ
lヽ l 」∧_∧ ‖( ゚∀゚ ) < 何が( ´,_ゝ`)プッだ!! ⊂ つ 人 Y し(_)
(・∀・)ニヤニヤ…
379 :
nobodyさん :02/05/30 10:30 ID:ANCdXfrn
グループ内で収支の報告ができるcgiってあります? 共有財産のお金の出入りをネット上で管理できるようなもの・・。
381 :
文字の平均 :02/05/30 13:04 ID:JuT8Nhm1
>>373 >>368 >端数がどうなるか気になるだと! どうしたいのか説明するのは君だ。
まったくだよ。
また脳内用語になってしまうのが涙ですが、いわゆる四捨五入が希望です。
382 :
nobody :02/05/30 14:03 ID:CkO0lXEy
C-BOARDの過去ログを消す方法がわかりません。 記事のトータル数を設定しても変化なしです。 どうすればよいのでしょうか?
CGIでj-phoneの絵文字を表示させたいのですが print "$E$\n"; では、やっぱり表示されませんでした。 何か良い方法ありませんか?
386 :
379 :02/05/30 18:58 ID:ANCdXfrn
漏れには作る腕が備わっていないので 誰か心優しきプログラマーの方、作ってください。
>386 いくら出しますか?
388 :
:02/05/30 20:53 ID:dW3H9ZXb
>>1 すばらしいスレですね!
ぱーと1を立てた人は天才!ですね。。。。。
389 :
379 :02/05/30 21:23 ID:ANCdXfrn
1000えん、、、、、、、 こんな漏れは逝ってヨシですか?
いまから仕様書を一時間で書きましょう。 んで、「コンテスト!これができたら天才!」とかスレをたてます。 だれかが何とかしてくれます。(藁
391 :
379 :02/05/30 22:26 ID:ANCdXfrn
よろしくです。ペコリ
>>390 そんな優しいアナタを好きになってもいいですか?
392 :
:02/05/30 23:54 ID:dW3H9ZXb
>>379 要するに入金・出金・残高・項目(名目?)みたいなのがあって、
入金か出金か選んで入力すると、残高が表示されるようなものでOK?
394 :
379 :02/05/31 01:08 ID:3H9Irfe1
そーです。
395 :
379 :02/05/31 01:18 ID:???
早く作って下さい。 一体何をやっているんですか? こっちには時間がないんです。
>396 バレバレなのはみんなわかってるんだからさらっと流せよ… 恥ずかしい…
398 :
nobodyさん :02/05/31 04:08 ID:fmTNT6gi
友人に 「なぁお前プログラムできんだろ あのさー出会い系サイトみたいなCGI作って欲しいんだけど 検索も、登録料の振込みも、メンテも、パスの管理も できるようにして欲しいんだけど、やってくれるよね、よろしく」 とか言われたんですが、自分はCGIなんて触ったこともないんです。 で、変な質問で申し訳無いのですが 1から始めるとしたら、人によるかと思われますが、 どれぐらいの時間がかかるのでしょうか また、DBの管理などで 他の物も覚えなきゃならなかったりするのでしょうか もしくは、上手な断り方は無いでしょうか
なぁお前プログラムできんだろ?? できん!
今だ!400番ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ∧∧ ∧∧ ドドドドドド・・・・ (゚Д゚ ,,) (゚Д゚ ,,) ∧∧ (´´ ⊂_⊂V⊂ ⊂ )⊂(゚Д゚ ,,)_/(´´ Y /⊃ | .L⊃∧∧∪ _⊃(´⌒(´ ドカ ∪∧∧J⊂(x _x⊂ノ(´⌒(´ (´´ ドカ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡ ズザ・・・
>>398 ここに聞く時点であなたはプログラマでなく。
なんちゃってプログラマです。
この板の住人は90%の厨房と10%のせつなさで
できています。あきらめてめざましでも見ときましょう。
402 :
nobodyさん :02/05/31 07:53 ID:M0PK8uW/
別のレンタルサーバに移転したらCGIが動かなくなってしまいました。 ファイルロック用のディレクトリが作れないようです。 mkdir($lockfile, 0755); こうやってます。LINUXのアパッチです。原因にお心当たりのある方、ご助言お願いします。
>>402 ディレクトリを作ろうとしているディレクトリ(意味解るよね?)のパーミッションどうなってるの?
404 :
nobodyさん :02/05/31 08:31 ID:M0PK8uW/
今は777にしてます。通常はもちっと安全にしてますです。 宜しくお願いします。
>>404 ディレクトリに 777 設定すると駄目な鯖があるって聞いた事があるぞ。
406 :
nobodyさん :02/05/31 09:01 ID:uYbpY71A
777OKのサバでしたー。助けてー
>>401 うさぎが迷い込んだら死ぬような板だな。
409 :
398 :02/05/31 09:49 ID:???
>>401 ていうか私はなんちゃってプログラマーでもなく
ただのしがない、今日は学校が祝日な高校生ですので
私の友達で、若くして会社を設立していろいろな事業に
手を出してきて今度は出会い系かなぁでも外注で
作ってもらったら金かかるなぁ、とか考えていた彼が
私がCの本を読んでいたのを思い出したのか
250万かかる仕事を私に押し付けるメールを
夜中の4時に送りつけてきたので、上記の質問をしたのでしたが
やっぱ普通に断ろうと思います
>>406 1.error_log 提供している鯖ならそれを参照
2.telnet ポート開けている鯖ならコマンドラインから、そのperlスクリプトを
起動してエラー確認
>402 相対パスの使えない鯖とかは? 場所によっては特定の関数だけ絶対パス指定しないといけないレン鯖とかあるよ。
412 :
ato :02/05/31 12:19 ID:juLGZYor
413 :
402 :02/05/31 13:21 ID:???
みなさんありがとうございます。 とりあえず411さんご指摘の点を確認してみます。 410さんのは残念ながらどちらも参照できません。
414 :
401 :02/05/31 13:45 ID:???
>>409 (>Д<)カァーッ もったいね。
アパッチとjcode.plてにいれてどっかからBBSのさんぷるダウンロードして
いじればよかろうに。DBはcsvなら生perlで操作できるし。
認証登録はJavaScriptとくみあわせで。
ねたじゃないならがんばれよ。
415 :
- :02/05/31 17:26 ID:???
416 :
ato :02/05/31 18:09 ID:juLGZYor
>>415 やっぱりそうですか・・・
これってクッキーの仕様なんですよね。
417 :
Miku :02/05/31 21:50 ID:Hmv37ygh
Part3より >nobodyさん ありがとうございましたー。 ってことはCGIはどうやってUPするのでしょうか? WEB管理領域からひとつづつファイルをUPしなくちゃいけないのでしょうか? それでも、CGIって動くものなのですか? イラストはUPできたのですがそのほかの動かすためのものと思われるファイルは 拡張子が間違ってる(確かこんな文でした)と出てしまってUPできませんでした。 よい方法があったら教えてください。 よろしくお願いします。
419 :
Miku :02/05/31 23:16 ID:Hmv37ygh
>nobodyさん いろいろありがとうございます。 早速、色々行ってみようと思いますー
420 :
nobodyさん :02/06/01 19:40 ID:nzbM1s7O
clyptコマンドでpassを扱うのと普通に 扱うのではどう違うのでしょうか?私の知識の範囲ではpassを暗号化して 扱うとのことでしたが外からcgi動作がみられるからなのでしょうか??
cryptな。 見られてもパスがバレないように暗号化してる。
422 :
420 :02/06/01 21:59 ID:nzbM1s7O
その「見られる」というのはどの部分をどんな風に見られるのでしょうか? それとそれはだれでもできちゃうのでしょうか?
>422 家の鍵を二重三重にする人いるよな? 家の鍵一つだと心配だからだ。 鍵一つこじ開けるのは誰にでも出来るわけじゃないが、鍵を二重三重にする必要はある。 それだけ大事な物があるんだ。 誰にでも見られるかどうかじゃない。 誰か一人に見られたらそこから広まるかもしれないんだ。
424 :
nicebody :02/06/01 22:45 ID:kZhOwKpM
>>422 どの部分っていうと、やっぱりログとか。
暗号化されてないと、ログ見て一発でわかっちまーうような
425 :
420 :02/06/02 00:01 ID:KPQ1rimm
じゃあclyptさえしておけばばっちりってことでいいんですよね。
+α。その辺は独自開発で決め!もっともrandを失敗していたら話にならんが
427 :
420 :02/06/02 00:07 ID:KPQ1rimm
ありがとうございました。 がんばってみます。 それともしよければ自己チェックのためにそのログかなんかで 覗く方法みたいなものを教えてもらえないでしょうか? 面倒ならいいです。
>427 厨が実践したりすると後が面倒だから嫌。
429 :
nobodyさん :02/06/02 11:25 ID:YzkleNfh
tripod.comにアクセス解析を設置して外部から呼び出して使っているのですが HOST部分が210.0.xxx.xxxのような表示になっているんです。 同じCGIをそのままtripod以外の日本のサーバから呼び出したばあいは abcd.11.co.jpみたいな表示になるんですが、tripodでもこのように表示させたいのです。 どう書きかえればいいんでしょうか。
430 :
:02/06/02 11:35 ID:???
>>429 どんなアクセスかもわからんでどこを書き換えればいいかわかると思うか?
431 :
429 :02/06/02 11:42 ID:YzkleNfh
>>430 すいません、どんなアクセスかとはどういう意味ですか?
訪問者のリファ、OS、ブラウザ、HOSTなどを取得するアクセス解析なのですが。
432 :
:02/06/02 11:51 ID:???
>>431 そういうのをアクセス解析というぐらいは誰でも知ってる。
IPアドレスじゃなくホスト名で表示させるのにCGIがどの方法で
やってるかがわからないと答えようがないってこと。
433 :
429 :02/06/02 11:59 ID: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; } }
>>429 やっと、質問の意味が解った。IPアドレス表記をホスト名表記に
すれにはどうしたらいいですか? という質問だろ?
答え:無理です
理由:
インターネット上のコンピューターにはIPアドレスが割り振られても
【名前】まで付けられているとは限らないからです
436 :
429 :02/06/02 12:21 ID:???
>>435 ガーン・・、そうなんですか。
納得しました。親切に答えて頂いてありがとうございました。
437 :
教えて君 :02/06/02 15:01 ID:Tbi7w50X
時差を調節したいのですが どこをいじればいいでしょうか? ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); $year += 1900; $month = $mon + 1; @dayname = ('日','月','火','水','木','金','土'); このあたりが怪しいと思うのですが見当違いですか? 初心者でスンマセン
localtime(time + 15*60*60);
439 :
教えて君 :02/06/02 15:08 ID:Tbi7w50X
ありがとうございます
無料鯖で使えるtelnet.cgiって今配布されてますか? 今までのが使えなくて困ってます。
馬鹿じゃないですか?
442 :
nobodyさん :02/06/02 20:42 ID: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)を入れています。 初心者の為どうしていいのかわかりません。 易しく教えて頂けませんか?検索しましたが自動発行に関するのは無かったので…
>442 kentで聞け。 特定の一つのCGIに対する挙動の場合は、配布場所に聞くのが一番確実。
質問です パールの機能で、あるプログラムにデータを送信する手段は何ですか? 例えば、ある起動中のプログラム192.168.1.1の4545ポートを空けた やつに自作コマンドを送信したいんだけど。 つまり、パールにソケット関数みたいなものはありますか?
>一番下のCGIの部分 意味不明。アクセスログの部分か?
449 :
nicebody :02/06/02 23:36 ID:A1RKGC+Y
450 :
:02/06/03 02:58 ID:???
451 :
nobodyさん :02/06/03 07:08 ID:yzIL9oyQ
転送量を測るCGIってあるのでしょうか?
ない
453 :
nobodyさん :02/06/03 10:14 ID:L20AUJA0
アプロダとかで転送量制限のあるサーバ向けに自動的に天井をつくってくれるのとかあるぞ。
あぼーん
455 :
nobodyさん :02/06/05 02:26 ID:LLzfz/IZ
アクセス制限CGIで同じメールでの登録が出来ない様にするには どうしたら良いでしょうか?
456 :
:02/06/05 02:32 ID:???
457 :
455 :02/06/05 02:35 ID:LLzfz/IZ
gatex使ってるのですが、同じメールアドレスでも登録出来てしまうので… 改造しようと思ったのですが上手くいかなくて(鬱
>gatex使ってるのですが 自分の知ってるものを誰もが知ってると思うな。
459 :
リトマス試験紙 ◆9S86wbO. :02/06/05 05:03 ID:NJP3VrAW
超初心者の質問で申し訳ないのですが FORMのGETとPOSTってどう違うんですか?
460 :
nobodyさん :02/06/05 05:19 ID:HfJL5Sid
>>gatex使ってるのですが >自分の知ってるものを誰もが知ってると思うな。 知らない奴居るのか?
461 :
456 :02/06/05 06:11 ID:???
>>460 KENTのCOSMO GATE-EXのこと?
>460 ナニソレ?
たぶんCGIの名前なんだろうけど、作者やサイト名も書かないと わからないよ。
……質問になってないレスは放置ιょぅょ
殺伐としてるなあ・・・
>>459 GETはURLの末尾にエンコードされた形でくっついて送られる。
サーバによっては長さに上限があったりするので、長文を送るのには適さない。
またサーバへのアクセスログとして残るので、
アクセスログさえ見ることが出来れば誰がどんな内容を送信したのかがわかるし、
パスワードなんかをGETメソッドで送信するとあっさりばれる。
POSTは標準入力から読むことが出来て上記のようなことがない・・・くらいしか知らんです。
でもGETメソッドはPOSTメソッドよりもレスポンスが早いような気がしないでもない。
(Me(;´Д`)+anhttpd(;´Д`)+ActivePerl5.5(;´Д`))
local(@hoge,$hoge); ↑これってどんいう効果があるんですか?
>>467 変数のスコープがそのブロックおよびそのブロック内のブロックに限定される。
と、説明する気0の回答をしてみる。
>>466 >POSTは標準入力から読むことが出来て上記のようなことがない・・・くらいしか知らんです。
Webサーバがstdinに書き出しているだけであってデータ自体はリクエストの中に含まれます(あたりまえだが)。
アクセスログ見れば結局ばれます。
471 :
467 :02/06/05 13:34 ID:???
>>471 >ログファイルから読み込んだURL
を見せてもらえないと・・・。
473 :
467 :02/06/05 13:44 ID:???
>>473 やっぱちゃんとmyしてください。
どこかの変数と混ざってるような。。。
475 :
467 :02/06/05 13:53 ID:???
476 :
nobodyさん :02/06/05 15:13 ID:86IkqFh+
だずげでぐだざ〜い IEで、SSLのサイトに対して、POSTメソッドを送信すると HTTP400(不正な要求)のエラーになってしまいます。 但し、戻るボタンで戻って2回目以降は正常に動作します。 ネスケでは問題ありません。 どうも、SSLサイトの最初の要求にPOSTするとダメみたいです。 こんなことで3日も悩みつづけてます。誰か助けてください!
477 :
467 :02/06/05 17:08 ID:???
SSLでPOST?パスワードか送ってるんじゃ、、、。
478 :
nobodyさん :02/06/05 17:16 ID:86IkqFh+
>>477 パスワード送ってます。。
補足ですが、サーバー証明書は自前の証明書を使ってます。
479 :
リトマス試験紙 ◆9S86wbO. :02/06/06 01:21 ID:KIpxDlw7
>>466 >>470 親切なレスありがとう。
j-sky板で「J-skyのみCGIが動かない」って聞いたら
誰かがPOSTをGETにしてみって教えてくれたので
どう違うのか気になったので。
ちなみにGETにしても動かない・・・ なんで?
i-modeとEzwebなら動くのに。
480 :
:02/06/06 02:08 ID:???
481 :
455 :02/06/06 05:18 ID:lJdhlkUB
すみません。書きこみ後膀胱炎で救急車に乗って病院送り(恥)だった為放置してしまいました(汗 もう一度質問させて頂きます。 kentwebさん配布CGIのcosmo gatexを使用していますが 同じメールアドレスからの多重登録に困っています。 色々cgiについて勉強したのですが上手く行きません。 力を貸して頂けないでしょうか…
おーぷん炉具ファイル @lo = <IN>; クローズ 略(@lo){ if($メールアドレス eq $登録しようとしたメール){ &error(きさまーーーーーーーーーーーーーーーー!!!!!) } }
483 :
nobody :02/06/06 21:19 ID:8Pq10XEp
>>481 USER_ID登録処理って辺りがヒントだ。
ってそのままか(w
484 :
nobodyさん :02/06/06 22:19 ID:2AVSGszZ
クライアントがCGIの生成データをエクセルでいじりたいとのことなので、 CGIまわり、スクリプトも含めてすべてsjisにしました(それが一番てっとり早かったので)。 perlメモなどでもEUCが一番問題発生しにくいとのことなので 今まで意味もわからずEUCを使ってきましたが、 実際sjisでどんな問題が起こる可能性があるのですか?
485 :
nobodyさん :02/06/06 22:19 ID:0WEL9zsI
use strict;っていうのは使った方がいいのでしょうか?
487 :
nobodyさん :02/06/06 22:28 ID:0WEL9zsI
488 :
:02/06/06 22:30 ID:???
>>481 ユーザが自分で登録できるregist.cgiを併用してのことかな?
regist.cgiの
<input type=hidden name=email value="$FORM{'email'}">
で得られるメールアドレスと
print LOG "$id<><>0<>$memo<><><>$name<>$email<>\n";
で記録されるログのメールアドレスを
>>482 のように処理すればいいんだよ。
490 :
484 :02/06/06 22:48 ID:???
>>489 ゲッ!! ま、まずいっす..
スクリプトだけeucにして、表示とデータファイルだけ
sjisにすれば問題ないでしょうかね..
データ読み込む度にeucに変換して書き出すたびにsjisに変換、
ってあんま美しくないけどしょうがないかなあ
なんにしろ、ありがとうございます
>>489 さん
491 :
481 :02/06/07 06:19 ID:TU5ebGXR
やれるかどうか、やれるとしたらどうやったらいいのか わからないので教えていただけますか? ・ボタンではなく文字列やイメージをクリックしたときに、 CGIスクリプトに対してPostで情報を送りたい →URLに送った内容を出したくないのです ・Javaスクリプトを使いたくない →無効にしている方もいると思うので ・cookieも使いたくない →無効にしている方もいると思うので 可能でしょうか?
>>492 そこまで限定するならやることは一つでしょ
>492 <input type=image>でできないかな?
ひらがながパタ−ンマッチされません。漢字、英数字はOKでしたが ひらがながはいるとだめです。教えてください。
497 :
496 :02/06/07 16:47 ID:???
とおもったらむしろ漢字だけでした。 open NAME_, "$namelog"; $name_ = <NAME_>; close (NAME_); if ($name_ =~ /,$name/) { print $error2; exit(0); } $nameがformから送られてくるもので$namelogが探す一覧です。 漢字以外はマッチしません
名前探すだけならindex使えば?
>>493-495 ありがとうございます。
submitにこだわらなくてもいい、ってことなんでしょうか。
もうちょっと調べてみます。
>>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も日本語はうまくいきませんな。確か。
501 :
500 :02/06/07 21:16 ID:???
あれ? よく考えたら、`,'があるなら、 $str =~ /,\Q$name\E/; で十分?
あぼーん
504 :
nobodyさん :02/06/08 00:38 ID:IssrbWFC
配列のなかでパターンにマッチした要素の要素番号を知ることってできますか?
506 :
nobodyさん :02/06/08 01:05 ID:lYR6rg87
perlです。
508 :
nobodyさん :02/06/08 01:21 ID:lYR6rg87
どうすればよいですか? どう書けばよいですか?
>>504 配列要素に重複がない場合
@hash{@array} = (0..$#array);
@matched = map { $hash{$_} } grep { /PATTERN/ } @array;
print "@matched\n";
こんな感じ?
510 :
nobodyさん :02/06/08 01:35 ID:lYR6rg87
ありがとうございます。 やってみます。
511 :
nobodyさん :02/06/08 17:08 ID:WOT+eMUF
どうして2ちゃんねるはCGIなのに拡張子.cgiじゃないんですか? 教えてください。
>511 .htaccessとかを勉強するとわかるようになる。 ここで教えるには板違いだから、自分でがんばろう。
>>511 > どうして2ちゃんねるはCGIなのに拡張子.cgiじゃないんですか?
とりあえず、2chはCGIではありません。
2chで使用しているCGIスクリプトのことなら、幾つか理由が考えられます。
1.CGIスクリプトではないから
2.パフォーマンスの為に静的なHTMLを吐くCGIスクリプトだから
3.つーかCGIスクリプトと拡張子.cgiの間には何の関係も無いのでCGIスクリプトの拡張子=.cgiと考えることは本当は間違い。
2chの場合は2かな。
>>514 ( ´,_ゝ`)プッ
PATH_INFO も知らないの?(藁
516 :
513 :02/06/08 17:45 ID:???
>>514 あ、なるほど。511の言ってる意味がわかった。
おれも514の2に賛成デス。
517 :
511 :02/06/08 18:01 ID:WOT+eMUF
ありがとうございました。 …よくわかんないや。勉強します。
518 :
代表 :02/06/08 18:27 ID:???
アホばっかりですいません
すみませんが Perlでソケットを使用したプログラムのスケルトン 貼り付けてくれませんか? 接続>送信>切断 おねがいできますか?
>>520 過去ログ漁れ。本スレのどっかに載っているぞ
523 :
nobodyさん :02/06/08 20:13 ID:MlccEoMe
Grepでさがしたが、存在しなかった どの過去ログですか?
>>523 ごめん。perl スレの 12 だ
http://pc.2ch.net/test/read.cgi/php/1019917048/753 スレ読めないないからコピペするね
753 名前:nobodyさん 投稿日:02/05/20 (月) 01:01 ID:???
ソケットのことでついての質問です。
#!/usr/local/bin/perl
use IO::Socket;
use IO::Select;
@servers = ('www.zdnet.co.jp','www.asahi.com',);
print "Content-type: text/html\n\n";
foreach $server (@servers){
$socket = IO::Socket::INET->new(PeerAddr => $server,
PeerPort => 80,
Proto => 'tcp',
);
print $socket "GET /index.html\r\n";
print $socket "Host: $server:80\r\n";
$socket->flush();
print <$socket>;
}
これでページを取得出来るんですが、
ページを全部読み込んでしまいます。
これを一部のみ読み込むにはどうすればいいのでしょうか?
と、、、
print <$socket>;
これを変数にあてはめて表示するにはどうすれば、、、。
525 :
514 :02/06/08 20:21 ID:???
(・∀・)******デシタ
528 :
nobodyさん :02/06/08 21:28 ID:MlccEoMe
530 :
nobodyさん :02/06/09 02:00 ID:5YEPjzCA
サンクス!
サントス!
perlで use IO::Socket; これやりたいのだけど ppmでなんてコマンドうったらええの?
文献は探したよ、でも ホントにそのコマンドでええの?って感じ なんていうか、それ!っ手感じの 文献がみあたりません。
>>833 いや、実際に
use IO::Socket;
ってやってみて問題が起きたかどうか聞いてるんだけど。
ちなみに文献なら prompt$ perldoc [Module, program] でドキュメントが読める。英語だけど。 perldoc ppm とか perldoc IO::Socket とか。
>>535 まだだよ
なにかモジュールいれるのが当然かと思っていたから
では、やってみます。
>>535 これは成功しますた。
ソケットが使えるということでよろしいですか?
#!/www/bin/perl
use IO::Socket;
print "Content-type: text/html\; charset=EUC-JP\n\n";
print "コマネチッ!";
>>536 えーごはわかりません
しかし、Winsock2.0と同じと考えて
よろしいですか?
メソッドも同じようなのばかりだったので
手順はかなりことなる?
英語を読めない人はプログラムをする資格がありません。
____ /∵∴∵∴\ /∵∴∵∴∵∴\ /∵∴∴,(・)(・)∴| |∵∵/ ○ \| |∵ / 三 | 三 | / ̄ ̄ ̄ ̄ ̄ |∵ | __|__ | < うるせー馬鹿! \| \_/ / \_____ \____/
>>539 Winsock2でBerkleyスタイルの関数(bind,listen,...)を使ってたなら
perlのIO::Socketもまあ同じように使えるでしょう。
MSスタイルのWinsockAPI(WSAなんちゃら)のほうはよくわからんです。
でもほんとに英語のドキュメント一切よまずにプログラム作ってんの?
そっちのが信じられん。いやでも読まざるを得ないと思うんだが。
>>542 Win房はひたすら日本語訳を待ちます
しかたなくBSD系の時は英語、否、、単語を読みます
Denger、Safe、Install、Ok これで凌いでいるが何か
確かperlのsockって、もともともwinsockを移植したんじゃなかったけ?
>>543 hogeを忘れていないか?w
Denger、Safe、Install、Ok、hage これ最強 しかし、これでつながらんぞ #!/www/bin/perl use IO::Socket; use IO::Select; ← これ意味わからん @servers = ('www.zdnet.co.jp','www.asahi.com',);なんでふたつなんだ? print "Content-type: text/html\n\n"; ← ほうそれで foreach $server (@servers){ ← なんだ連想か? $socket = IO::Socket::INET->new(PeerAddr => $server, ← なんだ=>って PeerPort => 80, ← 構造体ではないな Proto => 'tcp', ); #######なに?これで接続できるのか? print $socket "GET /index.html\r\n"; これはSend()か print $socket "Host: $server:80\r\n"; なんで2回にわける しかも、\n\nじゃないのか? ##########レシーブにあたる関数がないぞ! $socket->flush(); ← クローズソケットか? print <$socket>; なんだ?
>>545 モジュールどころか構文すら理解していないとは恐れ入った。
>>545 掲示板に頼るな。検索エンジンに頼れ。
どうせここで答えても何かあったらまたすぐ聞きにくるんだろう?
tripodはパーミッション変更できないのですか?
>>546-547 スマソ
うんじゃ少し調べてみる
あした就職試験あるんで寝る
また、手取り足取りおしえてね
552 :
548 :02/06/09 23:04 ID:???
ftpから変更しようとしているのですが、 パーミッションのが変化しません。(FFFTP使用です)
554 :
548 :02/06/10 00:02 ID:???
すいません
>>552 Tripodでは、拡張子が「.cgi」、「.pl」のものを実行権限があると自動的に認識し、実行しますの で、パーミッションの変更の必要は一切ありません。
、だそうな。これが使用者が変える必要が無いことを意味するのか、
鯖の設定でうまくいかない時はあきらめろということかは分からん
556 :
名無しさん@お腹いっぱい。 :02/06/10 11:49 ID:5eebash+
今度、Webサーバー(Linux)を管理する事になりました。 新規ユーザーがアカウント登録をする際に重複アカウントがないか チェックするcgiをつくってほしいという要望なんですが、実際に 公開されているスクリプトとかこの関数を使えばいいとか、何か 情報ください。Perlに関しては全くの初心者です。
558 :
556 :02/06/10 17:50 ID:OTakUXl/
>>557 そうです。Webサーバーのアカウントです。
よくレンタルサーバーでやってるアカウントチェックみたいなやつです。
テキストボックスに希望アカウントを入力してボタンを押すと、
アカウントが空いているか、使用済みか を表示するという
ものをつくりたいんです。
アカウント一覧ファイルを定期的にuniq
560 :
nobody :02/06/11 01:37 ID:al4egrbe
簡単に出来そうな予感
561 :
nobodyさん :02/06/11 06:16 ID:g6WS6tIa
/home以下にディレクトリがあるかどうかでいいような予感
別にDBを用意してどうにか汁。
563 :
556 :02/06/11 09:25 ID:AI8qzrkT
アドバイスありがとうございます。 昨日「すぐわかるperl」という本を買ってきました。 ・とりあえずアカウント一覧をつくる ・フォームをつくり変数を受け取る ・ifでマッチするなら「NG」をprint、マッチしなければ「OK」をprint ってかんじでつくればいいんでしょうか? 561さんの「/home以下にディレクトリがあるかどうか」という場合は なにか便利な方法があるんですか? こっちのほうが管理が楽そうなのでやってみたいです。 また、他に何かヒントやアイデアがありましたら教えてください。 よろしくお願い致します。
564 :
nobodyさん :02/06/11 10:52 ID:GLgx63Ns
GETリクエストの最大文字数って決まってるんですか?
566 :
nobodyさん :02/06/11 12:33 ID:nbFvKVaA
すみません、一応過去ログ検索したつもりなのですが perlで「変数内にキーワードがいくつあるか」を調べるにはどうすればいいんでしょうか? 例えば$a="2chでの2002年6月12日"ならば$aには"2"が四回登場しますよね。そういうことを調べたいのですが・・・。
>>566 $a = '2chでの2002年6月12日';
$b = '2';
$count = 0;
while ($a =~ /$b/g) { $count++ }
print "Content-type: text/plain\n\n";
print "「$a」 の中に $b は $count 個";
569 :
566 :02/06/11 13:49 ID:???
例えば
$count = howmany($a,$b);
みたいに直接(?)調べる方法ってのは存在しないんですね…。
ありがとうございました。自分で何とかルーチン書いてみます(
>>567 では永遠に回る気が…)。
570 :
:02/06/11 14:22 ID:???
$a = '2chでの2002年6月12日'; $b = '2'; $count = 0; $count = $a =~ /$b/g;
571 :
nobodyさん :02/06/11 15:03 ID:bp5oCR3J
>>570 $countは真(1)か偽(0)にしかならないぞ。
>>567 が正解。マッチするものを全て見つけたら、ちゃんと終了してくれます。
572 :
webmaster :02/06/11 16:05 ID:o3eoRD7n
フリーのアクセスログ集計ソフトって、定番のものありますか? 自分のHPドコから見に来てるか知りたいのです。 (正直に言えば、自分以外の人がどのくらい見ているのか知りたい)
>>566 $count = $a =~ tr/2/2/;
576 :
nobodyさん :02/06/12 16:07 ID:Zj93qd1P
宿題なのですが、ここでこういうのを聞いたら煽られますか?まずいですか?
とりあえず書きます。
任意の文字列を検索するcgiスクリプトをbashで作成せよ。
対象は、
http:// ・・・・1・・・・/htm
ここでは、アドレスをいうことはできません。
で、1のところは、1,2,3,4,・・・255まで検索します。
つまり、255個のページを調べ、任意の文字列があれば、その行を抜き出せということです。
実行結果は、例えば、linkを検索した場合。
http:// ・・・・1・・・・/htm
linkという文字があれば、その行を出力。
・・・・・・・・・・・
・・・・・・・・・・・
http:// ・・・・255・・・・/htm
linkという文字があれば、その行を出力。
と、なります。
perlとawkは使わないこと。
HTMLでフォームを作って、そこに入れた文字が検索されるようにすること。
という課題です。
とりあえず、フォームを作り、そこに入れた文字がCGIの方にいくようにしました。
method="post"でやってます。
577 :
nobodyさん :02/06/12 16:07 ID:Zj93qd1P
シェルスクリプトは、こんな感じにしなければならない。 #!/bin/bash arg='tr"&+" "\012" | sed-e "s/^.*=//"' echo "Content-type:text/html" echo "" echo "<HTML><HEAD>" echo "<TITLE>index.html search</TITLE>" echo "</HEAD><BODY>" ここにプログラムを書く echo "</BODY></HTML>" まだシェルスクリプトについて習ったばかりフォームから送られてきた文字をどうやって処理するかもわかりません。 というか、最初はフォームの作り方すら知りませんでした。 というわけで、だれか、おしえてください。ヒントでもいいです。
578 :
nobodyさん :02/06/12 16:31 ID:NJerhR65
perlについて質問です。 月の最後の日が簡単に分かる関数がありますでしょうか? ありましたら教えて頂きないでしょうか? また、ない場合は、一番サーバーに負荷を掛けずに(軽い)同じ動作を させるにはどうすればよいか教えて頂けないでしょうか? 自分なりにも考えてみました。 for ( $i = $mday ; ; $i++ ) { ( $k_sec , $k_min , $k_hour , $k_mday , $k_mon , $k_year , $k_day ) = localtime( time + $i * 24 * 3600 ); if ( $k_mon != $mon ){ last; } }
580 :
nobodyさん :02/06/12 16:38 ID:NJerhR65
581 :
579 :02/06/12 16:38 ID:???
>578 ちゃんと読んでなくて変なレスになってた。 チグハグなレスですまない。 続きはPerlスレにするとして、うるう年とかをどうするかはハッキリさせて質問してくれな。
>>582 すみません。
>>579 に専用スレを教えて頂いたので、そちらにも書き込ませて頂きました。
584 :
:02/06/12 17:46 ID:???
(´-`).。oO(宿題なんかを・・・)
585 :
nobodyさん :02/06/12 19:29 ID:VJt9CQqy
なぜ.tsvよりも.csvが多いんですか。
586 :
577 :02/06/12 19:47 ID:6bAybkaS
誰も教えてくれないようなので、スレを作って聞いてみます。
>586 宿題って何のためにあるんだ? 自分で勉強する為だろ? カンニングはいかんぞ。
588 :
577 :02/06/12 22:09 ID:6bAybkaS
宿題ができないので、もう死ぬしかありません。 逝ってきます。
>>577 >フォームから送られてきた文字をどうやって処理するかもわかりません
その部分はもう問題に答が書いてあるじゃん。
送られてきた文字列は変数$argに入る。
ただし577のシングルクォートはバッククォートに直しとけ。
590 :
577 :02/06/13 14:00 ID:Db0ssdev
>>589 どうもありがとうございました。
実はあれからがんばって、何とかやり方がつかめてきました。
変数の処理の方法はわかってきたのですが、どれに入るのかわからなかったので参考になりました。
591 :
nobodyさん :02/06/13 20:21 ID:9mq1CqQx
CGI初心者です。ここに質問していいのかわかりませんが・・・。 一度認証したメールアドレスから送られたメールのみを受信し、 未知のメールアドレスからのものは着信拒否するようなCGIは ありますか。
>>591 ではお聞きしますが、どうやって一度目の認証をするのでしょうか?
593 :
:02/06/13 20:27 ID:???
>>591 「メールを受信」ってどういう意味で言ってんだ?
自分宛のメールをCGIで選別したいとでも?
594 :
nobodyさん :02/06/13 20:49 ID:IshuAhXl
自宅PCサ−バ内でsendmail実験できますか?
595 :
591 :02/06/13 20:57 ID:9mq1CqQx
>592 >593 こういうことです。 メール送信者にIDとパスワードを入力させて、あっていたら、メール入力フォームを 表示する。その時に送信側が使用したメールアドレスを記憶しておく。 その後は、メール入力フォームを使用しなくとも、メール送信できるようにする。 ただし、入力フォームからの送信実績のないメールアドレス、つまりIDとパスワード があってないものからの受信は拒否する。
597 :
nobody :02/06/13 21:26 ID:ZDF6ztrU
>>595 ようするにどーいうことよ。
俺にはサッパリ。。
598 :
:02/06/13 22:28 ID:???
CGIでroot権限取得して任意のコマンド実行ってできる? LAN内の閉じた鯖で使いたいのだが。
599 :
login:root :02/06/13 22:40 ID:TI2f9Ncu
linux板の看板、ローテ表示になってるけど
どうやって看板入れ替えてるんでしょうか…
どういうcgi組んだらああいう動きするのか見当がつきません。
スイッチは何なんでしょうか…
>>598 sudo使えばいいんじゃ
600 :
:02/06/13 23:50 ID:???
>>595 フォームを使用しなくてもということは、普通のメーラからということか?
自分でメールサーバでも持ってるのか?
なんだかよくわからんのぅ。
602 :
nobodyさん :02/06/14 07:34 ID:puWMPG8R
あのよくある 〜.cgi?id=〜 の?id=〜はどういう働きをしてるんでしょうか? またどうやってそのidをcgiで参照することができるんでしょうか?
もうちょっとがんがって検索すれ。
>>595 ×受信は拒否する
○送信させない
なら理解できるけど…。
>>602 環境変数QUERY_STRINGに入ってる
606 :
nobody :02/06/14 13:50 ID:AFlyc9ku
>>602 QUERY_STRINGによって動作を分けてるだけでしょ。
607 :
602 :02/06/14 15:27 ID:puWMPG8R
605,606さんありがとうございました。 一度ためしてみます
608 :
Miku :02/06/14 18:11 ID:AX6Bkw1W
教えてください。 TripodでCGIを動かしたいのですが、 本体は動いてるのですが画像がぜんぜん表示されません。 gifはcgi-bin以外のフォルダにということだったので cig-gifというフォルダを作ってその中に入れてるのですが・・・
610 :
577 :02/06/14 23:02 ID:fQhm2Pa6
589 :nobodyさん :02/06/12 22:41 ID:???
>>577 >フォームから送られてきた文字をどうやって処理するかもわかりません
その部分はもう問題に答が書いてあるじゃん。
送られてきた文字列は変数$argに入る。
ただし577のシングルクォートはバッククォートに直しとけ。
とあるのですが、argに入った文字列を出力しようとしても、何もでません。
echo $arg
↑
これでは、フォームから送られてきた文字を出力できないのですか?
>>610 それでいいはずなんだけどね。
POSTメソッドで送信してるか?
あとテキストボックスにname属性は指定してる?
<input type="text" name="hogehoge">とか。
name属性をつけないとIEはそのデータを送信しないよ。
初歩的な質問で申し訳ないですが、教えていただけたら幸いです。 sub header { print "<html>\n<head>\n"; print "<meta http-equiv=\"content-type\"content=\"text/html; charset=x-sjis\">\n"; print "<title>$title</title>\n"; print "$style\n"; print "</head>\n"; print "<body text=\"$color\" link=\"$color\" alink=\"$color\" vlink=\"$color\" bgcolor=\"$color2\" background=\"$bgcg\">\n"; この場合、背景画($bgcg)を中央にだけ固定して表示したい場合にはどこをどういじれば良いのでしょうか。 BGPROPERTIES="FIXED"で固定だけは出来たのですが中央に一枚だけ表示する方法がわかりません…。よろしくお願いします。
613 :
577 :02/06/14 23:49 ID:fQhm2Pa6
htmlのbody以降です。 <BODY> <FORM action="cgiのあるページのアドレス" method="post"> <p>文字:<INPUT type="text" name="osu"><BR> <BR> <INPUT type="submit" value="送信"></p> </FORM> </BODY> postをgetに変えたりして、色々やってもできません。 誰かヘルプ・・・
614 :
577 :02/06/14 23:51 ID:fQhm2Pa6
ちなみに、cgiの方はこうなってます。 #!/bin/bash arg=`tr "&+" "\012" | sed-e "s/^.*=//"` echo "Content-type:text/html" echo "" echo "<HTML><HEAD>" echo "<TITLE>index.html search</TITLE>" echo "</HEAD><BODY>" echo $arg echo "</BODY></HTML>" もしかして、最初のargに代入するとこが間違ってるのでしょうか?
>>612 CGIじゃなくてスタイルシートの領分だろうよ
使いたくない理由でもあるのか?
>>614 sedと-eの間にスペースが入ってねーぞ。
617 :
577 :02/06/15 00:06 ID:a+3gGUcI
あ・・・そんなミスが・・・ tr "&+" "\012" | sed-e "s/^.*=//"` この文自体、ただ書いておけといわれただけなので、意味不明だったのです。 どうもありがとうございました。 試してみます。
618 :
612 :02/06/15 01:05 ID:???
>615 単にCGI・CSS供にド素人なだけです。申し訳ない。 CSSで定義することが出来るのならその方法を教えていただけると・・・ などと思いましたがスレ違いですね。他で聞きますです。
619 :
577 :02/06/15 01:21 ID:a+3gGUcI
ようやく最後の段階まできました。 やりたいことは、フォームから入力した文字をホームページから検索し、その行を抜き出すことです。 HTMLファイルから$argと同じものがあれば、その行を抜き出そうとしました。o grep $arg ファイル名 として、フォームでlinkと打ったら、htmlファイルなのでタグなども一緒に出力してしまい、ます。 文字だけを出力する方法は、もしかして全然考え方が違うのでしょうか? それとも、直接ホームページの文字だけを対象にして、行を抜き出すことができるのでしょうか? 混乱中です。
>619 grep で行毎に抜き出すのでHTMLファイルを対象にしたら当然、タグも含まれる でしょう。 grep 後の各行からタグを抜き取ってみるだけで解決するでしょう。
>>619 検索対象は本当にローカルなファイルなんか?
どうも
>>576 を見るとURLで指定されたWebページを検索せよと言ってるみたいだぞ。
おそらくlynxコマンドか何かでWebページ取ってこい、つうことじゃないかねえ。
lynxで読めば自動的にHTMLタグも消えるし。
622 :
577 :02/06/15 02:35 ID:a+3gGUcI
う〜む・・・lynxというのは全く習ってないので、たぶんローカルなファイルの方だと・・・ それを使えば、簡単にできるのでしょうか?
623 :
577 :02/06/15 02:36 ID:a+3gGUcI
今日は7時におきたので、そろそろ限界が近づいてきました。 この辺で寝ることにします。 色々教えてくれた方、ありがとうございました。
624 :
nobodyさん :02/06/15 02:42 ID:HfE3zZia
HPの感想を送ってもらうためのフォームメールで、 タイトルをcgiソースで固定するのではなく、フォームで任意に 書き込んで欲しいと思っていじってみたのですが、どうも うまくいきません。 htmlフォームのソースと タイトル<br><input type=text name="subject" size=35><br><p> cgiソース print MAIL "Subject: $subject\n"; がうまくリンクすれば良さそうなのですが、わかりません。 良いアドバイスをお願いいたします。
625 :
nobodyさん :02/06/15 02:59 ID:CbvAN6fk
環境変数のHTTP_COOKIE使わないでクッキー処理って出来ないかなぁ。 なんで俺のとこのISP、HTTP_COOKIE対応してないのよ。
>625 JavaScriptでクッキー使えばいいんじゃない?
>>577 のようなヤシにも回答するような時代になったのか…。
628 :
nobodyさん :02/06/15 13:01 ID:YL6dKHgl
-----↓史上最低クズ板発見 !! (^o^)丿↓-------------------------
http://pc.2ch.net/hard/ カテゴリ;ハードウェア
★↑馬鹿博之本人 出没板★
------該当板発見、 ↓ちっともお勉強にも屁にもならない板発見 !!↓---------
×
http://pc.2ch.net/hard/ ←チンカス板 or クズの集まり×
↑こいつらの中にスパムやってる奴いるぜ。
なんせ、↑こいつらキチガイ集団だからな。
630 :
577 :02/06/15 14:55 ID:73xXxu8B
sed 's/<[^>]*>//g' フィイル名 ↑ これでHTMLタグが消えると、どこかに書いてたので下のようにやってみました。 sed 's/<[^>]*>//g' フィイル名 grep $arg ファイル名 ですが、うまくいきません。 いらない部分は、<で始まり、>で終わる部分だと思うのですが、それを検索対象にいれない方法がわかりません。 もしかして、621さんの言うlynxというコマンドを使わなければできないのでしょうか? 再び混乱中です。 誰か助けて〜
631 :
577 :02/06/15 16:55 ID:73xXxu8B
どうやら、文字を送ることにも問題がありました。 半角英数での入力は問題ないのですが、全角で、例えば「あ」と入力すると「%82%A0」と表示されます。 フォームで全角文字を入力して、それを出力できるようにするにはどうすればいいのでしょうか?
632 :
577 :02/06/15 17:42 ID:73xXxu8B
一応、631で書いた問題は解決しなくても、半角英数を入力して、それの書いてある行を出力することはできました。 しかし、やはり全角でひらがなとか漢字を入力すると何も出力されません。 たぶんそれを解決すればできると思うんですが、マジ困ってます。 もしかして、htmlファイルのフォームを作るときの記述で、特殊なことをしなければないらないのでしょうか?
あぼーん
>>631 URLエンコード、URLデコード、をキーワードにして検索、勉強しる
635 :
577 :02/06/15 22:16 ID:73xXxu8B
再び問題発生しました。 htmlファイルは sed 's/<[^>]*>//g' ファイル名 によって <html> ↑のように一行に書いているものは消えるのですが、 < href=・・・ > ↑のように書いてるものは、「<」「>」はきえますが、href=・・・が消えません。 おそらくファイルの中で改行されてるからだと思いますが、このようなものはどうやって処理できるのでしょうか?
SSIでCGIを起動させたいのですが、execコマンドが許可されていないサーバーで 他の方法でHTML出力のCGIを簡単に起動させる方法ってありますでしょうか。
IISにPerlいれたんだけど 最初は、DLLを直接リンクして失敗なんでや PHPのDLLはリンクするだけでいけたのに 再度Perlをインストールしました そして、IISにリンクしたらつながったなんでや
>>636 <!--#include virtual="xxx.cgi"-->
普通これでそ。execコマンド怖いよ・・。
>>637 しらんわ
use IO::Socket use Socket この二つは同じモジュールかい? 使い方もかわるのかい?
>>639 言語はなんだい?
それはCommon Gateway Interfaceと何か関係が有るのかい?
>>640 >言語はなんだい?
ActivePerlですが何か
>それはCommon Gateway Interfaceと何か関係が有るのかい?
CGI=Perl これ定説
すれちがいならスマソ
CGI=Perl これ定説 CGI=Perl これ定説 CGI=Perl これ定説
Cじゃ駄目?
644 :
635 :02/06/16 00:05 ID:sBhf/8rI
誰か教えて!
645 :
:02/06/16 01:07 ID:???
>CGI=Perl これ定説 ( ´,_ゝ`)プッ
>前Socketについて聞いてたヤツか?まずその厨臭い喋り方をやめろ。 ごめんね HPなかなかおもしろかったよ アプリケーションプロトコル作りたいんだけど、CS系ではHTTPを 参考にするのがBESTなの?
650 :
nobodyさん :02/06/16 16:34 ID:yZ1tNdSi
匿名メール作りたいんだけど、ソースどこにおいてある?
651 :
:02/06/16 16:49 ID:???
( ´,_ゝ`)ププッ
652 :
635 :02/06/16 17:36 ID:AKIK3E+W
誰も教えてくれないので、今から350人ほど仲間を集め、この板を荒らします。 クソスレとかを乱立させるので、注目してください。 今夜12時決行です!
すみません、帰れと言われるのを覚悟で聞きます。 スケジュールに関するCGIでログファイルのディレクトリを 設定したいんですけど、どうもうまくいかなくて。 #ログファイルのディレクトィまでの絶対パス(相対でも可) $zettai = ''; #$zettai = ''; と書いてあるんですが、本体を置いてあるディレクトリまでの 絶対パスを書いてもログが生成されないんです。 他のCGIの説明を読むと「絶対パスを指定して下さい。 (URLではなくパスね。。)」などと書いてあるし。 サポート掲示板に同じようにログファイルが生成されないと 質問がいくつかありましたが、4月の質問にレスがついてません。 ログファイル用のディレクトリ作ったり、色々と試したんですが。 どなたかヒントだけでもお願いします。
655 :
635 :02/06/16 19:18 ID:AKIK3E+W
>>654 今日の内に質問の答えが返らなければあきらめましょう。
今夜、この板を含むプログラム関係の板は、荒らしによって消滅します。
656 :
nobodyさん :02/06/16 19:36 ID:z5KHLw2y
>>654 こっちにももっとヒントを下さい
ものすごく難しいなぞなぞだ・・・
657 :
654 :02/06/16 20:13 ID:???
>656 ヒントですか、どう説明したらいいんでしょうか。 私は、絶対パスってURLとイコールして考えてたんですね。 なのに、わざわざ「URLではなくパスで」と書いてあるので そこから悩んでしまったんです。 使いたいスクリプトの解説には ・$zettai = のところをログファイルのディレクトリィまでのパスを指定して下さい (絶対パスでも相対パスでもOKです) スクリプト自体には #ログファイルのディレクトィまでの絶対パス(相対でも可) $zettai = '/export/home1/aaaaa/public_html/cgi-bin/library/schedule/'; #$zettai = '/www/aaaaa/public_html/cgi-bin/schedule/'; と記述してあるんですけど(aaaaaだけ書き換えました) 私が初歩的なところを分かっていないとは思うんですけど 絶対パスの定義が分からなくなって混乱してます。
>>654 それだけじゃわかんね
必要な部分隠してソース丸上げしてみそ
659 :
654 :02/06/16 20:16 ID:???
一度は諦めて、違うスクリプトも探して設置してみたんですけど やっぱり最初のが使い勝手とかいいんで、出来れば最初のを 使いたくて四苦八苦してる次第です。
660 :
658 :02/06/16 20:16 ID:???
アホだ…、訂正してしばし逝ってきます ×必要な部分 ○個人特定されそな部分
>>657 相対パスでも可なら相対パスにすりゃいいじゃん。
ドキュメントルートの絶対パス
print "Content-type: text/html\n\n";
print "$ENV{'DOCUMENT_ROOT'}";
662 :
654 :02/06/16 21:02 ID:???
664 :
654 :02/06/16 22:18 ID:???
>663 わざわざ有難うございます。 まだ一つ目のページを読んだだけなんですが…。 絶対パスってイコールURLじゃ…なかったんですね。 私の持ってる本だと、URLだと解釈出来たんで 今までずっとそう思ってました。目から鱗。
>>662 パーミッションが正しくない可能性は無いか?
実行はできても書き込めないとか
public_html/cgi-bin/library/schedule/
public_html/cgi-bin/library/schedule/mycalen.cgi
public_html/cgi-bin/library/schedule/cgi-lib.pl
となってるようだが
666 :
654 :02/06/16 23:16 ID:???
レスくれた皆さん、有難うございました! 無事に動作しました。 原因は絶対パスを勘違いしていた事に尽きますね。 >663さんの解説サイトの一つに絶対パスを調べるCGIがあったので、 それで調べてみると自分が思っていなかったパスになりました。 勉強不足を実感しましたが、ログが生成されたのを確認出来た時の 嬉しさに声を上げてしまいました。 知識足らずの教えてちゃんにレスを本当に有難うございました。
667 :
nobodyさん :02/06/17 02:11 ID:avz6N9SR
Perlについて質問です。 $date{'select_1'} $date{'select_2'} $date{'select_3'} $date{'select_4'} これを、 $date{'select_$x'} という風に数字の部分を変数にして表したいのですが、どのように表現 すればよいのでしょうか?
$date{"select_$x"}
670 :
nobodyさん :02/06/17 07:14 ID:nRo1vqSR
>>668 このようにするとうまくいかないのですが・・・。
671 :
nobodyさん :02/06/17 07:17 ID:nRo1vqSR
具体的に・・・ [error] [client 127.0.0.1] syntax error at c:/apache/htdocs/test.cgi line 550, near "}" このようなエラーが出てきます。
syntax error: 文法エラー at: 〜に line: 行 near: 〜の近くに
>>668 文法エラーにワラタ
$date{'select_' . $x}
674 :
nobodyさん :02/06/17 14:20 ID:oSTbTHVJ
このスレでいいのかな・・・? cookieを使ってROM禁の掲示板をやってますが、 ブラウザをcookieを食べる設定にしても、レスが見えない人がいます。 (その人は、XP&IE6を使ってます。) レスを見れないと言ってる人は、ログを見るとcookieを食べてないのですが、 ブラウザはcookieを受け付ける設定にしてると言ってます。 掲示板のスクリプトはありふれた物で、変わった事はしてません。 他のユ−ザは問題ないですし、私が動作チェックした時も問題ありませんでした。 一部のIE6ユーザだけが見れないみたいなんです。 これはIE6の不具合なんでしょうか?
676 :
674 :02/06/17 15:22 ID:???
>>675 私もそうだと思うんですが、cookieを食べてるって言い張るんですよ・・・。
取り敢えず上のURLに誘導してみます。
ありがとございました。
677 :
nobodyさん :02/06/17 16:15 ID:9yBZa2Oo
教えてください。 cgiを設置したのですが、 adminって書いてある管理者モードのところがあるのですが、 そこに入ることができません。 これって、どこを直すとよいのでしょう?
>677 それはたいへんですね。 URL を書いていただければこちらで確認してもいい のですが。
679 :
677 :02/06/17 16:27 ID:9yBZa2Oo
680 :
hoge :02/06/17 16:29 ID:gBMmBBrY
>>677 しつもんのしかたをなおすとよいでしょう。
681 :
nobodyさん :02/06/17 16:32 ID:HzoJQ/16
>>673 そのようにすればよかったのですか・・・。
参考になりました。
ありがとうございました。
682 :
677 :02/06/17 16:43 ID:9yBZa2Oo
すみません。 でわ。もう一度。 日記ページなのですが、下のところのマスターってとこから入ると 管理者用のログインページが表示されるはずなのですが まったく表示されないのです? 初心者でどこが?なのかも分からなくて。 何とか、ならないでしょうか?
設定がされてないのでは?
いやむしろ設定するとき重大なミスをしたのでは?
685 :
677 :02/06/17 17:28 ID:9yBZa2Oo
設定時の重大なミスなのですか? 特には何もせず設置しちゃったのですが どのあたりを見て直せば良いですか?
どこで配布されてるものなの? Perlで書かれたCGIだったら普通はCGIファイルの初めのほう。 別の設定ファイルがある場合も。
>>685 レンタルのCGIならレンタル元に、KentなどCGIスクリプト配布サイトで
ダウンロードしてきたスクリプトを自分で設置したのならスクリプトの
配布元に相談しる。
日記のCGIですって言われても世の中にいっぱいあるんだからわからんよ。
>どのあたりを見て直せば良いですか? 設定マニュアル
689 :
687 :02/06/17 17:41 ID:???
ってURL晒してたのか読み飛ばしてた。すまん
すまんが、 最近これブレイクしてるらしいんで。 |>( ≡?ω?)<魚 |>( ≡´∀`)<魚 |>( ≡゜∀゜)<魚 |>( ≡ ゚Д゚)<魚 |>( ≡・∀・)<魚 |>( ≡?∀?)<魚 |>( ≡@-@)<魚
>691 サイトを見たところ、内部処理がEUCでフォーム出力がSJISということですね。 フォーム出力をEUCのままでやるだけで解決します。
693 :
_ :02/06/17 18:28 ID:???
質問です jcode.jpをリクワイヤしたのに、ブラウザの表示が ばけてます。どうしてですか?
695 :
:02/06/17 18:38 ID:???
jpかよ・・・
jp って、JPerl の拡張子?
何をリクワイヤ?したところで、「文字コードを揃える」という 処理をしなければ、化けても文句は言えまい
698 :
691 :02/06/17 18:57 ID:???
>>692 あぁ〜!
どっかおかしいと思ったら転送時にSJISで転送しちゃってました・・・
printはそれ自体の形式で生成するみたいで、お陰でEUCとSJISと
混ざっちゃってたみたいです。ありがとうございました。
まぐわいや?
703 :
nobodyさん :02/06/18 10:42 ID:LbKvXgZA
ちょっと前に別の掲示板で質問したんだけど 回答を貰えなかったので質問 open(LOCK,">どうでもいい空ファイル"); flock(LOCK,2); ファイルAを読み込んで加工 テンポラリファイルBに書き出し rename(ファイルB,ファイルA); ファイルCを読みこんで加工 テンポラリファイルDに書き出し rename(ファイルD,ファイルC); flock(LOCK,8); close(LOCK); この処理でファイルA、ファイルCが壊れる確率ってどの程度でしょう。 rename途中にシグナル発生でプロセスが死んだりした場合以外は そうそう壊れないでしょうか。
>>703 Unix系なら、rename実行時にファイルが壊れることは
ないと思っていいんじゃない。詳しくはrename(2)のman参照。
むしろ1回目と2回目のrenameの間でプロセスが死んだ場合などに
ファイルAとCの不整合がおきるほうが可能性は高そう。
それから、わかってると思うけどopen、flock、renameを
実行したときは必ず戻り値を見てエラーチェックしる。
706 :
703 :02/06/18 11:18 ID:???
おお、素早い回答感謝です
>>704 一応シグナルハンドラを設定してロックは解除するように
してます。というかflockってプロセスが死んだら自動的に
解除されませんでしたっけ?
>>705 はい、戻り値を見てエラーチェックして、途中でエラーが
発生したら前のファイルは元に戻るようにしてます。
まあ戻らなくてもいいものがほとんどなので一部を除いて
そのままですが。
というわけでありがとうございました。
707 :
nobodyさん :02/06/18 16:13 ID:yIzQCv5h
Perlで書かれたCGIにてメールを送信する際に、 PGPで暗号化して送信したいんです。 さんざん検索したんですが、 個人間でやりとりするメールを暗号化する話しかひっかかりませんでした。 サーバはレンタル、メール送信する際はsendmailを使ってます。 なんかいいやり方や情報、お願いします。 # 他スレでも質問しましたが、板違いとのことでしたので、 # マルチではないと思います。
>>707 それ面白いですね。
もしできるとしたらすでにあると思います。
**.cgiにアクセスするとuser_agentを利用してメイン画面をPC用と携帯用、別々に表示するように手直しした掲示板系CGIなのですが、メイン画面は別々にきちんと表示します。 しかし、そこから例えば**.cgi?mode=search_1にアクセスしても飛ばないのです。 直接**.cgi?mode=member_viewとかでもダメでした。 多分処理のさせ方が変じゃないかと思います。何処が悪いかこれだけでわかりますか?追加2箇所削除すると正常です。 if ($u_agent eq "5") { &pc; } #PCメイン←ここ追加 else { &in_form; } #携帯メイン←ここ追加 if ($in{'mode'} eq 'member_view') { &members_view; } elsif ($in{'mode'} eq 'mailform') { &mailform; } elsif ($in{'mode'} eq 'sendmail') { &sendmail; } elsif ($in{'mode'} eq 'search_1') { &search_1; } elsif ($in{'mode'} eq 'search_2') { &search_2; } else { &manual; } これ以外でcgiにアクセスされた時PCの時は"&pc"処理。携帯は"&in_form"処理させる方法があれば教えて下さい。。
711 :
707 :02/06/18 19:15 ID:???
>>708 >>710 レスさんきゅ!
今のレベルのオイラにはサパーリでしたが、
簡単にはできないという結論ですよね。
オンライン通販してるショップサイトにて「SSL+PGPで安心!」とあったので
どうやってるんかなと単純に疑問を持ったのでした。
>>711 fmlのパッケージの中に、libpgp.pl なるモノがあった
パッと見た感じは、別途導入した pgp へのI/Fのようだ
ま、ご参考までに
age
714 :
nobodyさん :02/06/18 22:26 ID:T2Ry5zLo
Perlで2chに書き込めるスクリプト教えてください。
Dukeでも作りたいのですか?だったら氏んでください
ものすごく厨な質問かもしれませんが…… CGIを使えるサーバで、.htaccessも使えるかどうかはどうやって確認すれば いいのでしょうか?ISPのサーバだと、CGIはOKでも.htaccessは不可だったのですが、 ISPやレンタルサーバのFAQには特に明記されてなかったので、困ってしまって……。 サーバ管理者にメールなどで問い合わせるしかないのでしょうか? 新しくサーバを借りようと思います。お勧めのサーバがあれば、 上記の質問に併せてご推薦いただければと思います(こっちは板違いなので 無視して頂いてもいいです)。 具体的には、特定の人に対して、index.htmlのあるフォルダへのアクセス制限かけたいんです。 宜しくお願いします。
>>716 適当なテスト用の .htaccess 置いてみればいいじゃん
任意の文字列を検索してその行の配列のマッチした文字列以降を書き換えたい 場合、パタ−ンマッチしたあとなにをすればいいのでしょうか?
読解不能。具体的に何がしたいんだ?
721 :
719 :02/06/19 12:27 ID:???
(userid,pass,個人情報)が何行も書かれたリストのなかから任意の useridを検索してその個人情報を書き換える方法がしりたいです。
>>721 で、それがどう C G I と関係ある訳?
723 :
719 :02/06/19 12:32 ID:???
いや、formから
>>721 の作業をやろうとしてるんで。
もっと具体的にどの部分でつまづいてるの? 普通にファイルを読み読みながらマッチした部分があれば書き替えて一時ファイルに 書き込んでいき、リネームする。これをファイルロックを使ってやればいいのでは?
726 :
719 :02/06/19 12:42 ID:???
自分のやり方なのであってるかわかりませんが
while(<FH>)
if (/マッチさせるもの/)
でマッチングに成功したんですがこの方法だとどうやってマッチ行の文字列
を書き換えていいのかわわらなくなってしまい、
別の方法があれば教えてもらおうかと、、。
>>724 意味がわかんないんですけど
727 :
725 :02/06/19 12:48 ID:???
WEB上から入力された検索キーが変数 $in{'KEY'} に格納されているとすると、 while (<FH>){ if (/\Q$in{'KEY'}\E/o){ ここでマッチした行の書き替えたい部分をすりかえる } } 724さんとしては、WEB上からのデータを扱っていてもつまづいてる部分の 処理内容はCGIの部分とはべつものだということ。
>>725 でほぼ答え出てるだろ。そこから、自分で勉強しようとは思わないのか?
それにおまえの質問はスレ違い
729 :
719 :02/06/19 12:58 ID:???
そうだったんですか、すみません。
>>727 の方法を勉強してみます。
パタ−ンマッチでやるのとfor文で$iを増加させて$list[i]で一行づつ
照らし合わせる方法もなくもなかったんですがなんとなく
処理負荷がマッチよりかかる気がして、、、、実際のとこどうなんでしょう?
730 :
725 :02/06/19 13:02 ID:???
それって、ファイルの行番号で検索しているということ?
731 :
719 :02/06/19 13:07 ID:???
たぶんそうです。
そっちの方が行番号が得られるので書き換えが簡単なんですが
>>729 的なイメ−ジがあるので、、どうなんでしょう
732 :
725 :02/06/19 13:10 ID:???
行番号だったら while でも変数 $. に自動的にセットされますが...。
あ、、ほんとだ、、一発解決ですた。 これなら配列で書換え可能でした。 どうもお騒がせしました。
734 :
nobodyさん :02/06/19 14:44 ID:es/NDl1S
Windowsサーバ上のフォルダツリーをブラウジングできるCGIスクリプト、転がってたら教えてください。 日本語ファイル名対応のがいいです。
スレ違いニョ。
age
ソース診てもらえませんか? use IO::Socket; use FileHandle; なぜか文字ばけします #require 'C:\Inetpub\wwwroot\test\jcode.jl'; $host = 'localhost'; $port = 6060; 文字コードはこれが一般的なのかな? print "Content-type: text/html\; charset=EUC-JP\n\n"; #print "$host:$port<p>"; $socket = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port, Proto => 'tcp', ); if ( ! $socket ){ die "misss<p>"; } print $socket "ON"; $socket->flush(); この辺りで、止まってますどうしてでしょうか??????? ここが一番わかりません! #$buf = <$socket>; #print "$buf"; while(<socket>){ print $_; } print $socket "END"; print "END<p>\n"; $socket->close();
require 'C:\Inetpub\wwwroot\test\jcode.jl'; ↓ require 'C:\\Inetpub\\wwwroot\\test\\jcode.jl';
>>738 CGIとは関係ないようだが?
つーか自分で理解できないコードを書くなよ。
どこかから移してきたのならその「どこか」を書け。
いきなり「ソース診てもらえませんか」もないもんだ。
>>739 試してみれば判るけど、バックスラッシュは一つで問題なし。
741 :
nobodyさん :02/06/20 14:32 ID:qw4hZtl9
フォーム送信CGIについてご質問があるのですが、 sendmailを使ってのフォーム送信CGIでmailtoの宛先に 間違って存在しないメールアドレスを記述してしまった場合、 その送信フォームCGIから送られたデータはどこにいってしまうのでしょうか? 存在しないので送り返されるとしたらどこに戻ってくるのでしょうか?
すみません、質問させてください。 ブラウザ上でHTMLのテキストフィールド(<input type="text">)にデータを入力し、 submitボタンを押したらCGIを呼んで、そのCGIからExcelのシートにどうにかデータを渡せないでしょうか? つまりはCGIからExcelにデータを渡したい・・・と。 よろしくお願いします。
( ゚д゚)ポカーン
744 :
. :02/06/20 15:18 ID:???
>>742 Excelのシートってのはアプリ固有のフォーマットを持ったファイルだろ。
不可能とまでは言わないが、それをCGIで処理は無理があるだろう。
せいぜいCSVにでも書き出してローカルでインポートでもしたら?
745 :
738 :02/06/20 17:08 ID:???
たびたびすみません
ここを参考に、CGIからソケットで独自のサーバにつなぐプログラムを
つくっています。現在では通信テストの段階でアプリプロトコルの設計
は、HTTPを参考に開発しようと考えています。
http://x68000.startshop.co.jp/~68user/net/module-1.html サーバ:IIS5
CGI:ActivePerl5 DLL
@構成
ブラウザ→CGI/Perl→(ソケット通信)VBサーバ
@最大のトラブル
CGIからVBサーバにソケット送信して、そのエコーを受け取りたいのですが
CGIプログラムが正しく動作しません。VBの動作はTelnetで確認しました。
CGIのPrint文で止まります。問題のコードは次のとおりです
問題のコードと思われるパターン1
$buf = <$socket>;
print $socket "$buf";
問題のコードと思われるパターン2
while(<socket>){
print $_;
}
いづれも、VBエコーを表示できません。
どこがおかしいのかよろしくお願いします。
746 :
738 :02/06/20 17:23 ID:???
たびたびたびすみません エコー機能は成功しました。 $buf = <$soket>; print "$buf"; ただ、このコードが成功しません while(<$socket>){ print $_; } このコードが止まりません。 ソケットを切断するととまりました。 どうしてでしょか? あと日本語が表示されません。化けます jcode.jpを要求したのに、どのように合わせたらいいですか?
748 :
nobodyさん :02/06/20 18:23 ID:cqGMaGWX
指定したメールアドレスに送られてきたメールアドレスを 自動的にデータベースに登録や削除するスクリプトは どんな感じになりますか?
>>748 「メール振り分け」「procmail」あたりで検索
750 :
738 :02/06/20 18:40 ID:???
>>747 わかりますた。文法はPerl板へ逝きます
文字コードについてだけおしえていただけませんか?
xxx.cgi ← シフトジスで保存してます
CGIはこうかいてます
print "Content-type: text/html\; charset=EUC-JP\n\n";
つまり、ブラウザではシフトジスをEUCに変換して表示ということ
でよろしいでしょうか?
>>750 違う。変換はちゃんと変換処理する必要がある(jcode.plなどで)
>print "Content-type: text/html\; charset=EUC-JP\n\n";
これはただブラウザに「このテキストの文字コードはEUC-JPです」と伝えているだけ。
だから当然テキスト自体がShift_JISなら文字化けする。
2ちゃんねるのread.cgiは昔はQUERY_STRINGから読み取っていたのに、 今はPATH_INFOから読んでいるようですが、 QUERY_STRINGではなくPATH_INFOから読むことにどのような意義があるんですかね? 送信する文字数が減るだけ・・・ではないと思うのですが・・・
>>750 これでうまくいきました
print "Content-type: text/html\; charset=SHIFT-JIS\n\n";
jcode.jpをはずしましたが、同じように動きました。
jcode.plは、どのような働きがあるのでしょうか
>>753 jcode.plは文字コードを変換したりするためのもの。(JIS SJIS EUC)
意味わからずにどうやって使ってたのか不思議だ。
>print "Content-type: text/html\; charset=SHIFT-JIS\n\n";
書き方間違ってるし・・。
○ print "Content-type: text/html; charset=Shift_JIS\n\n";
756 :
62 :02/06/20 21:32 ID:???
>jcode.plは文字コードを変換したりするためのもの。(JIS SJIS EUC) require でjcode.plしても日本語が正しく表示できるのが不思議だ xxx.cgi Shift-JISで保存 charset=Shift_JIS でブラウザ表示 このときは、jcode.plが必要ないということでいいですか? UNIXのときは xxx.cgi がEUCか何かになるのでjcode.plがいるということですか?
>>756 何を言っているのやら・・・
jcode.plのgetcodeである文字列の文字コードを取得したり、
convertである文字列の文字コードを変換したりする
require は別ファイルのスクリプトを利用可能にするだけ
コーディング以前に勉強すべきことが山ほどあるぞ
758 :
62 :02/06/20 22:24 ID:???
>>757 ちょっと難しいですね
jcode.plなしでも問題ないので使わない方向でいきます
それと出直してきます
759 :
752 :02/06/20 23:22 ID:???
>>754 なるほど・・・やはり転送量の問題でしたか。
ファイル名がそうなるのは知らなかったですわ。
画像を出力するCGIにこれは便利ですな。
Thanx.
で、jcode 関係で熱くなっている所スマンが、それがどう【CGI】と関係あるの? 単なるコーディングの話じゃぁ?
いいじゃん別に。そうでなくても人いないんだから・・。
著作権表示を消さずに使用している人っていますか?
「サーバサイドプログラミング」と何の関係がある?
CGIエラー500についてお願いします。 さくらインターネットと言うCGI可能サーバーを利用しています。 配布している掲示板を設置してパーミッションや転送は案内通り何回 も確認しながら行いました。しかしエラー番号500の連続です。 試しに INDEX.HTMLをINDEX.CGIに変更してアップしましたがそれでも エラー500と出ます。これは設定とかの問題ではなくサーバー問題で しょうか??
CGIが確実に稼動しているサーバーか確認したい場合は どの様な方法がよろいしいでしょうか?
768 :
s :02/06/21 14:32 ID:???
>767 それって、CGIをアップできる環境でってこと?
>>766 index.htmlを意味もわからずindex.cgiにしてしまうあたり、設定ミスで間違いない
770 :
s :02/06/21 14:38 ID:???
>766 恐らく、拡張子を小文字にすればいいのでは? その他では、さくらインターネットがどういう仕組みになってるか知らんけど 個別に .htaccess を設定するようになっているとか。
>>766 サーバー管理者よりメールが来ました。
やはりCGIを規制していたとの事でお詫びが来ました。
773 :
xx :02/06/21 15:17 ID:???
>772 ふうーん。CGI規制って、どすんの? AddHandler cgi-script .cgi の行をコメントにしてリスタートかける のかね?
774 :
nobodyさん :02/06/21 17:23 ID:nrprTant
CGIでパスワードを設置を予定していますが、 ホームページを作成にあたり改行コードや出力漢字コードなどの 設定は必要でしょうか?
775 :
xx :02/06/21 17:26 ID:???
>774 CGIを動作させるサーバ環境に合わせれば?
>>774 改行コードは、UNIX では一般に LF が使われ、
DOS、Windows、OS/2 では CR+LF が使われています。
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | 今だ!777ゲットォォォォ!!!!! \__ ________ ∨ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 日 凸 ▽ ∇ U < お客さん、暴れないでよぉ ≡≡≡≡≡≡≡ ∧ ∧ \____________ U ∩ [] % Σ(゚Д゚,,) ゴルァ!? (´´ ヾ∇ ∧∧ ) |つ∽ (´⌒(´ 日ヾ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (´⌒(´⌒;; ズサガッシャーン!! ━┳━ ━┳━
厨房ですいません。 cgiをサーバーに転送しましたがどうやらcgiとして認識をしてくれません。これってどう言うことでしょうか?
779 :
xx :02/06/21 21:37 ID:???
恐らくFTPを使って転送していると思うが、サーバ側とあなたの環境が同じ系 (UNIX系同士またはWindows系同士など)だったらバイナリモードで送れば いいし、違っていればFTPのサーバ側(リモートホスト)とローカル側を設定 すればいいでしょう。
>>779 ホームページビルダーなどの転送モードはテキストで上げてます。
しかしPLファイルなどは認識していますがcgiに関してはデレクトリー
では ? になってcgiではないみたいなのですが。。。
781 :
:02/06/21 21:59 ID:???
>>780 テキストでいいのだが、?とはファイル名そのものなのか拡張子なのか
契約している鯖がCGI可能コースを契約しましたが本当にCGIが利用できる鯖なのか調べつ方法分かりますか?厨房なものでお願いします。
783 :
xx :02/06/21 22:07 ID:???
転送後にパーミッションの変更(実行権を与える)をやった?
784 :
:02/06/21 22:19 ID:???
>>782 それはそのサーバのサポートページで調べるか問い合わせなさいよ。
それより、認識しないとか?になってるとか言ってるけど、
【何をしたら】【どうなったのか】
あるいは
【どうやって確認して】【どうなっているのか】
それを書かなきゃわからんよ。
>>783 転送後のパーミッション設定はCGI配布先資料など確認しながら行いました。
>>784 さくらインターネットのバーチャルドメインって言う事ですが5日前に1回
2日前に1回問い合わせをしましたが返信が無い状態です。
Index of /mmm
Name Last modified Size Description
--------------------------------------------------------------------------------
Parent Directory 21-Jun-2002 22:21 -
?acb.cgi 21-Jun-2002 21:49 4k
--------------------------------------------------------------------------------
Apache/1.3.26 Server at www.XXXXXXXXX.com Port 80
?って表示されます。
786 :
nobodyさん :02/06/21 22:39 ID:rH/nmPPc
>>778 サーバーエラー500って言うのは
1:.htaccessの書式に問題がある
2:CGIファイルやディレクトリのパーミッションが異常
3:CGIが正しく動作していない(CGIプログラム内のエラー)
4:改行コード(LFのみ)または漢字コードがただしくない
787 :
:02/06/21 23:14 ID:???
>>785 どういう文面で問い合わせたのか知らんが、元質問みたいなのなら
意味がわからなくて困ってるのかもしれん。
それはいいとして、?についてだがファイル名に認識できない文字が
含まれると?になる場合がある。
ファイル名のacb.cgiの前、■■■acb.cgiというように■の部分が
何かそういう文字になってないか?
テストファイルとして下記の物を用意しました。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<TITLE>Perl Script Test</TITLE>\n"; print "Hello World\n"; print "</HTML>\n"; パーミッション設定OK・テキスト送信OKで通常なら HELLOって出てくると思うのですがサーバーエラー500となります。 .htaccessによるCGI許可を設置もして確認して見ましたが意味が無かったです。
print "Content-type: text/html\r\n\r\n";
790 :
xx :02/06/21 23:29 ID:???
>788 Perlパスはあってるの? >789 NPHスクリプトじゃないんだからぁ。
節々の日本語が(略
>>778 >>788 って同じですよね。
漏れもさくらネット使っています。
Home <=問題はここに6種類の.logとか色々あると思いますが、
| アクセルログ以外で最近更新した所ありますか?もしあれば
| 自PCにダウンロードして確認して下さい。
| PS漏れも経験しましたが1回設定ミスしてHome訳の分からん
| ファイルが形成されてました。削除してうpして見て下さい。
WWW←ここよりファイルを入れる所!
|
793 :
いきなり・・・ :02/06/22 01:51 ID:2uyfCrpE
>>793 おそらく原因はpass.cgiの中にある1文だと思うのですが・・・
↓
おそらく原因はcook.cgiの中にある1文だと思うのですが・・・
>>793 記述すべきはファイルシステムにおけるPATH
URLのPATHではない
やっぱり駄目でした。。。
TELNETでCGIは稼動している見たいです。 テキスト(CGI)をアップする時に問題があるのかな?? 因みにWinXPのメモを利用しています。
798 :
:02/06/22 03:27 ID:???
>>797 メモ帳?じゃあ文字コードが違ってるのだろう
>>798 メモ帳じゃー駄目ですか?文字コードは何にすれば・・・・。
他ではメモOKだとかテキスト形式関係ないとか言ってましたが。。
ワードパットでしたっけ?それならOKですか?
801 :
教えて下さいませ :02/06/22 05:49 ID:c+t9uPJK
$host[0] = "210.147.80"; $host[1] = "***.***.***"; $host[2] = "***.***.***"; local($match) = 0; foreach (@host) { if ($ENV{'REMOTE_ADDR'} =~ /$_/) { $match=1; last; } } if ($match) { print "Content-type: text/html\n\n"; print "<html><body>アクセスできません</body></html>"; exit; } ↑これをCGIの上の方に書けば、指定したIPからのアクセス制限を防げるのですが これを改造して、指定IP以外を制限する様には出来ますか? やり方を教えて下さいませ。 よろしくお願いします。
802 :
801 :02/06/22 05:52 ID:c+t9uPJK
X=アクセス制限を防げる O=アクセス制限出来る
>801 前: if ($match) { 後: if (not $match) {
804 :
801 :02/06/22 07:22 ID:c+t9uPJK
>>803 ありがとうございます!
助かります。
あなたは神です。
806 :
801 :02/06/22 07:48 ID:c+t9uPJK
808 :
:02/06/22 12:18 ID:???
>>799-800 XPのメモ帳がどんなのかわからんが、UnicodeやUTF-8ではダメ。
確かメモ帳ならANSIというのがあったはず。
ちなみに
>>788 のテストコードは一応ちゃんと表示されます。
つーか、フリーのエディタでも入れなさいよ。
809 :
9qZVAtvw :02/06/22 12:45 ID:xco48xkT
我ながら情けない質問なのですがよろしくお願いいたします。 html製作をはじめて5年になります。 ずっとPerlを使ったページを作りたいと思いコツコツと勉強してきました。 その間自社サーバの管理者からはずっとPerlは危険だと言われてきて、 そんなのは高い金を払ってもいいからその道のプロにやらせて 責任を擦り付けろ、とか言われています。 一般的にソース公開をされているものの流用にも反対です。 サーバにPerlさえ入れてくれません。特にSendMailを使う ことに危険性を感じているそうで、私もそれはアタックの踏み台にされるとは 聞いたことがありますが、それじゃメールフォームも組めません。 仕方がないので現在は自費でレンタルサーバを借りて実験を続けています。 損害賠償がきたらお前は払えるのか、お客さんが要望するからって いわれるままに危険なものを作っていいのか!と怒鳴られました。 といってこのままでは仕事が減ってしまうし お客さんはそんな高いお金を払ってくれるわけもない。 今時なんとも・・・と思っているのですが説得材料が足りません。 私自身も本当に危険なのかもしれない、とも思っています。 客観的なご意見をいただけると幸いです。よろしくお願いします。
810 :
xx :02/06/22 12:57 ID:???
幾つかテンプレートのCGIを用意しておいて、それを選択して使えるようにすれば いいのでは? そうすれば勝手なCGIをユーザがつくることできないしさぁ。
>>809 の会社が何やってるのか知らんし、809 自身の業務分掌も判らんが、
社内に専門がいないのであれば外部委託するのには賛成
809 を納得させられない鯖管もスキルあまり無さそうだし、まぁ無理すんな
# ちなみに sendmail だけがメール送信の方法ではない
あと、いくらソース公開されていても、安全であることを
会社としての立場で承認できなければ意味無いね
812 :
:02/06/22 13:52 ID:???
>>809 制作を請け負ってるように読めるけど、自社サーバにPerlを
入れたいとかって、そのサーバに客のページを置かせてるわけ?
で、そこでCGIを使いたいと言ってるの?
サーバにPerlだのなんだの入れるってことは、それ自体の
維持・管理が発生するわけで、ISPやレンタルしてるところは
それを商売として十分なスキルとマンパワーでやってるからこそ
やっっていけるのだし、あなたの会社にそれだけの管理者が
いないのなら外部委託っていうのも十分に納得のいく話だと思う。
最近よく聞く漏洩なんかもパーミッションひとつで簡単に
起こりえる事だし、あなたがそういうミスを犯さない保証はないわけだから
会社として必要以上に責任を負わされるのを避けるという考えは
よくわかる。
まあ、
>>811 と同じく外部委託に賛成。
>>809 自分が安全なCGIを書ける自信と根拠がないのなら委託するほうがいい。
CGIとかを設置するってのは自分の家にドアをあらたに付け足すような
物で、鍵のかけ方とかをちゃんと知らない限り泥棒に入ってくれって
言ってるようなものだからはっきり言って俺が管理者だったとしても
実力が不確かな人にそんな要求をされたら絶対につっぱねるな。
814 :
809 :02/06/22 15:54 ID:xco48xkT
811から813の方々へ いい加減な質問から的確なアドバイスをありがとうございます。 (もう少し質問が上手になりたいと反省しています。すみません。) おかげさまで自社サーバへ設置することが とてもリスクが大きいと言うことがわかりました。 サーバ管理者の不安もやっと納得がいきました。 ここで疑問なのですが ISP やレンタルサーバを利用しているお客さまが CGIの設置を希望されている場合も何らかのトラブルがあった場合 やはり責任は設置した人にあるのでしょうか? 私も設置者に全然責任がないとは思えないのですが 某社のように個人情報が流失、なんてこともあり得るわけで サーバのセキュリティの責任はどこになるのでしょう。
815 :
_ :02/06/22 16:40 ID:???
>>814 よほどひどいISP やレンタルサーバでもないかぎり、そこらの
厨房がつついたくらいでどうにかなるほど甘い設定はそうはない。
ほとんどが設置ミスかCGIプログラムのセキュ穴。
当然、設置者にほとんどすべて責任があるでしょう。
おそらく規約などにも書かれてると思うよ。
>>814 815の言うとおり、大抵、責任云々の話は規約にきちんと書かれている
個人情報の取り扱いについては、「セキュリティポリシー」として
きちんと明示している企業も、ぼちぼちではあるが現れ始めている
… CGI の話からずれてきたので、そろそろ終了でいいかい?
817 :
809 :02/06/22 18:20 ID:xco48xkT
>815と816さんへ 規定をよく読みます。 とても納得できました。ありがとうございました。 終了、ということでお願いします。
cgiスクリプト内で任意の行(自分的にはifからif)にジャンプ することはできますか?ル−プのnext ラベル的な感じで
>>818 CGIスクリプトじゃ分からん。使用言語を書くのだ。
Perlなら goto LABEL で任意の場所に飛べるyo
820 :
(´〜`;) :02/06/23 17:09 ID:KFnCt31T
ユーザーエージェントっていろいろ書き換えてる人多いじゃないですか、日本語とか へんな記号とか。 たとえば、 CGIの環境変数 $ENV{'HTTP_USER_AGENT'} とか JavaScript の navigator.userAgent とか で受け取ったUAの文字コードってどうなるんでしょうか? もし相手の環境によって変わるなら jcode.pl などで変換してやる必要があるんじゃないかと思って。 でもアクセス解析に jcode.pl 使うのもなんだかなぁ、と思ったり。 どうしましょう?
>>820 おれはリファラのURLデコードを日本語に直すために(←検索エンジン対策)
jcode.pl使ってるから、そのついでにUSER_AGENTも漢字統一してます。
最近多いですよね。。。へんなUA。
>>821 なるほど、検索ワードの日本語もありましたね。なら jcode.pl 使うのもありかも、うんうん。
ついでに検索ワードの解析もつけてみることにします。
ユーザーエージェントに日本語とか混じってるとすごいビビるんですよ、
いちいち書き換えんなと思う(笑 でも個人が特定できてしまう罠。。)
jcode.pl から Jcode.pm に乗り換えたいんだけど、どうしたらいい?
厨質問かもしれんが、オ−プンlockってどの場合でつかうん? むしろファイルオ−プンするときは毎回やらなきゃいけないの? 普通のオ−プンとロックの違いがあまりわからないかもしれないせいかも しれないがよろしくです。
>>824 むしろオ−プンlockとは?
そして言語は?
827 :
824 :02/06/23 19:13 ID:???
あ、すんません、自分語つかってしまいました。 flockです。そしてpealです。 んで、排他制御の必要性と意味はつかめるんだがだからといって 一つ一つにオ−プンにflockかけるのはどうかなと、ちなみに 自分が作ったやつはオ−プンが結構あるので毎回というのは。 FILEに書き込む時はロック、配列化するだけならロックなし、みたいな アドバイス求む。具体例で。
828 :
824 :02/06/23 19:16 ID:???
あ、まちがえた、、perlね。わかるか、、
830 :
824 :02/06/23 19:19 ID:???
いやいや、なんか無法地帯寸前だしできればここの方がおやさしい方々も いることだし、よろしく頼む。私のために人肌脱いでおくれやす
831 :
最強。 :02/06/23 19:25 ID:???
$!/usr/bin/perl open(LOCK, ">lock.lock"); flock(LOCK, 2); 〜〜 処理 〜〜 close(LOCK); exit; __END__
で、共有ロックの良い例はまだですか?
833 :
824 :02/06/23 19:29 ID:???
その処理のなかでおなじファイルを何度も開け閉めしなくちゃいけない場合は??
834 :
教えて君 :02/06/24 00:28 ID:12oYTmrR
掲示板などでアクセス制限をしたいのですが・・ IPで制限すると毎回IP変わる人には意味がありませんし cookieを持ってかえってもらって次回からアクセス制限する方法だとcookieオフにされたら終わりです。 何かもっと効果的な方法はないでしょうか。 よろしくお願い致します。
836 :
nobodyさん :02/06/24 03:40 ID:/QyYw+LL
Perlで他のサイトのファイルを読むって処理できますか?
Socket使えばよい
>>836 とほほさんトコにPerlでのsoketの使い方があるから勉強しといで
841 :
nobodyさん :02/06/24 14:08 ID:n/Hv9l08
>>834 Cookie offだと入れない設定にすればよいかと。
842 :
836 :02/06/24 15:20 ID:???
ありがと、がんばって勉強します
843 :
nobodyさん :02/06/24 22:01 ID:12oYTmrR
>>835 、
>>839 、
>>841 様
ありがとうございます。とりあえずそういう方向でやってみます。
あと・・CGIでMACアドレスの採取ってできないんでしょうか。
なんかこの世にひとつしかないような事を聞いたのでこれではじければいいのですが・・
>843 MACアドレスってさぁ、LANボードだけじゃないん? モデムはないんちゃうん?
> なんかこの世にひとつしかないような事を聞いたのでこれではじければいいのですが・・ この認識は正確には間違っている。某大手メーカーのファームの開発やった事 あるんだけど、MACアドレスなんて BOOT ROM の隠しコマンドで書換できる
>843 この世に一つしかないcookie発行すればいいわけで 普通にWebつかってて今時cookieをOFFにしてるひと なんてほとんどいないでしょ。 厳密にやりたいならID・PASSWORDで認証 手間かけさせたくないならcookieだyo。
848 :
nobodyさん :02/06/25 12:03 ID:wQ9fjJDE
一度アクセスすると1時間アクセス出来ない(HP投票など)は どうやって認識しているんだろう。 IP変わっても、ちゃんと認識できるんだよなぁ。 cookieでもなさそうだし。
ほら、君の背後に赤いランプが点いている機械があるだろ。 監視カメラさ。
配列の中からある条件に一致するものを抜き出して別の配列に入れるにはどうしたらいいのですか? こんな感じでやってるんだけどもっといいやり方が在ると思うので。 $c = 0; foreach(@list){ if($_ =~ /^Location_URL=.*/){ m/Location_URL=(.*)/; $URI[$c] = $1; $c++; } }
画像、JavaScript、Cookie は常時 OFF ですが、何か?
853 :
nobodyさん :02/06/25 14:47 ID:g4wy6DfA
854 :
nobodyさん :02/06/25 15:42 ID:qFHnKqC2
別ファイルに書き込んでrenameしようと思っています。 書き込むファイルは同じディレクトリ内の方が軽いのでしょうか。 同じディレクトリはファイルが多いのでどうしようか迷っているのですが。
>>854 別ディレクトリでも同じ。気にすんな。
単にエントリを書き換えるだけでファイル本体は移動しないから。
856 :
hoge :02/06/25 19:09 ID:j0DYF6ca
>>850 @URL = map { /^Location_URL=(.*)/? $1: () } @list;
857 :
nobodyさん :02/06/26 08:19 ID:mZF+XHgo
IIS+ActivePerlの環境で、アプレットからCGIにPOSTすることが 出来ません。 何が悪いのでしょう?iswebでは出来たのに・・・ WinNTでは無理なのでしょうか?
>>857 アプレットって何のアプレットよ?
こうやって、逆質問しないと解答に行きつくまでの情報が得られないような質問するな。
おまえは、ここにいる解答者は超能力者とでも思っているのか?
【なにを】【こうしたら】【こうなって】しまい、【こうしたい】のですが…
↑このぐらい書けや。クズ
以前検索をして見つけたのですが、検索したときの言葉を忘れてしまいましたので、ここで質問をさせてください。 URLを入力するとそのページのHTML(ソース)を表示してくれるページがあったのです。CGIで作動していたのが記憶にあります。レンタルとかではなく、そのページでやってください、みたいなのでした。 自分が見たサイトは携帯からのみ調べることが可能なページだったのですが、パソコンからもできるサイトをご存知の方がいらっしゃれば教えてください。 どこで質問をしていいのか分からなく、CGIできたのでこちらで質問させていただきました。板違いでしたらすみません。
860 :
:02/06/26 17:51 ID:???
862 :
859 :02/06/27 03:54 ID:???
>>860 ,861
無事見つけることができました。ありがとうございました。
863 :
nobodyさん :02/06/27 09:17 ID:ZKL/xeQ+
Perlでsort処理した後にその中身を@に格納するにはどうすれあ宜しいのでしょうか?
自分のローカルで試したPerlスクリプトがある一定のサーバーで正しく動作しない場合があるのはなぜですか?
あちらのサーバーに、入っていないモジュールを使用している可能性。
バージョンが微妙に違う可能性 print "$]\n"; ↑これで、バージョンぐらい確認しる!
flockとか使えない可能性
perlインタプリタが使えない可能性(ぉ
httpdが(略
実はサーバではなくて鯖だった可能性
実は鱈だった可能性
873 :
文系の人 :02/06/28 01:41 ID:lzsbmJ/3
PerlのCGIの中で(bin/mailや/usr/ucb/mailの)mailコマンドを使って 2人にメールしたい。 open(MAIL, "| $dir -s hogehoge $address") || exit; print MAIL $data; close(MAIL); を応用したいんだけど$addressの中身はどう区切るの?
>>873 >man sendmail
しろ。はい、次の人
875 :
文系の人 :02/06/28 02:07 ID:lzsbmJ/3
ダメ!sendmailは使えないの あと、man mailでも載ってないのでよろしく
for(qw/hoge@host fuga@host/){ open(MAIL, "| $dir -s hogehoge $_") || exit; print MAIL $data; close(MAIL); }
>>875 bin/mailのアドレスの区切りは普通スペースです。カンマでもいけたりして。
記憶で書いてるので、いちおコマンドラインからmail打ってテストしてね。
878 :
nobodyさん :02/06/28 17:28 ID:eZvzGrmw
ちょっとはまっているのですが、 自作Perl CGIの以下のコードが、IEとNN6系ならOKなんですが、 NN4(win,linux)だと表示されないと指摘されました。 <INPUT NAME="name" TYPE="hidden" VALUE="namae"> <INPUT NAME="passwd" TYPE="hidden" VALUE="pasuwa-do"> <CENTER><INPUT TYPE="submit" value="送信"></CENTER> NN4のソースでは、上記のように表示されますが、画面上では表示されません。 NN4のバグでしょうか?なにかミスでもありますでしょうか?
879 :
&r :02/06/28 17:31 ID:???
<FORM ...> : </FORM> 書いてる?
hidden?
881 :
nobodyさん :02/06/28 17:44 ID:eZvzGrmw
882 :
&r :02/06/28 17:51 ID:???
出力のHTMLをそのまま出してミソ? NN4.7があるから確認したる。
ソースは長いのでどうかと... 自分で確認しました(NN4.7 on linux)が表示されませんでした。 googleでバグを探しましたが、でてきませんでした。 とりあえず、ここにいる人がすぐわからないということは、 きっとマニアックなバグか、単純な閉じわすれとかなのかなぁ〜とは 思います。
884 :
&r :02/06/28 17:58 ID:???
じゃ、どっかにアップしてミソ?
885 :
CHANCE FOR EVERYONE :02/06/28 19:02 ID:hU48lsFK
落合信彦は、 今は、1000年に一度の変革期だと発言している。
すべては変わる。時代は変わった。
といったのは、堺屋太一。
この変革期はチャンスでもあります。
あなたも、チャンスをここからスタートさせませんか?
http://ailove22.fc2web.com/lpd/index.html このウェブを読んで考えてみてください。
かき食えば、金が鳴るなり、法隆寺。
書き加えれば、金が生るなり、ホームページ。
NN4で表示されない件、解決しましたので報告します。 <span STYLE="visibility:hidden"><layer VISIBILITY=hidden> というタグを削除したところ表示されるようになりました。 返事をしてくれた方ありがとうございました。
余計なもの付けるからだ。
はぁ…CSSは駄目よん
トップページにssiカウンタをつけるのはやめろ と言われたんですが まずいんでしょうか?
ガンガンつけろ。1個つければ何個つけてもいっしょだ。
891 :
&r :02/06/29 13:02 ID:???
>889 ここで聞く前に、言った本人にまずその根拠を聞くようにしたほうがいいのでは? その環境特有の事情かも知れないから。
ネタニマジレス(・∀・)カコイイ!!
保守age
894 :
nobodyさん :02/07/01 03:55 ID:VdntohUQ
これから新しいシステムを構築しようと思うんだけど、WindowsベースにしようかUNIXベースにしようか悩んでいます。 クライアントがパッケージとして汎用性のあるものを求めているんだけど、Windowsベース(ASP)って結構使われているのでしょうか?
Winベースの鯖はかなり少ないよ。
896 :
nobodyさん :02/07/02 14:31 ID:gDEpS/GF
PerlでNET::SMTPモジュールを使ってメール送信を行うプログラムを作っています。 送信部分は 以下のように if ($MailServerActive){ $smtp = Net::SMTP->new('192.168.2.2'); if (!$smtp){ $msg = "SMTPサーバ[$Server]との接続に失敗しました\n"; &jcode::convert(\$msg,'sjis');print $msg;exit; } $Sub = jcode($Sub)->mime_encode; $Name = jcode($Name)->mime_encode; $Value = jcode($Value)->jis; $smtp->mail($FromMailAddr); $smtp->to("$To"); $smtp->data(); $smtp->datasend("Content-Transfer-Encoding: 7bit\n"); $smtp->datasend("Content-Type: text/plain; charset=\"iso-2022-jp\"\n"); $smtp->datasend("From:\"$Name\"\n"); $smtp->datasend("To:$To\n"); $smtp->datasend("Subject:$Sub\n"); $smtp->datasend("$Value\n"); $smtp->dataend(); $smtp->quit; しています。 pc AUの携帯だと通常どおりに見えるのですが、 jskyだと一覧で表示させたときにタイトルが変になり、 imodeだと内容が全く見えません。 エンコードの方法も内容はsjisでヘッダはmime_encodeで エンコードしてるのでこれでよい気がするのですが・・・ 原因ご存知の方教えてください
そんなもんにモジュールなんてつかうな。 タイトルぐらいJISコードをBASE64にしろ。
898 :
896 :02/07/02 16:27 ID:gDEpS/GF
>897 うううう これでタイトルをbase64にしている気がするのですが・・・ちがうのですか?・・ $Sub = jcode($Sub)->mime_encode;
899 :
nobodyさん :02/07/02 16:55 ID:v6Enfs2h
XML系CGIを作ったやつ何から始めたか教えろ。
901 :
nobodyさん :02/07/02 21:19 ID:ctQuiyfJ
そんなのは使わない。
903 :
901 :02/07/02 21:38 ID:ctQuiyfJ
Perlごときに開発環境はいらん。なんちって;
perl -cw でいい。
906 :
901 :02/07/02 22:10 ID:ctQuiyfJ
>>904-905 なるほど!正直高いなぁ〜と思ってました。
ちゃんとコンパイル毎に確認します。ありがとうございました。
質問です。 どこに聞いて良いやら迷いましたが・・・ ファイルをダウンロードさせるときに print "Content-type: application/octet-stream\n"; print "Content-length: $fsize\n"; print "Content-Disposition: inline; filename=$name\n"; print "\n"; print `/bin/cat $dl_file`; で提供してるんですが サイズが5M越えたくらいのファイルを落とすと 空のファイルになってしまいます。 どうにかならのでしょうか? 直リンクでは落とせるのですが。 アパッチの制限とかなのかなー
>print `/bin/cat $dl_file`; ヒェー!((((((;゚Д゚))))))ガタガタブルブル
$dl_file に /etc/passwd とか入れられたら大変なことになるな。
>>907 おまい、今すぐPerl開発ヤメレ
損害賠償が来る前に
911 :
907 :02/07/03 09:21 ID:???
あう・・・ $dl_fileはソースに固定で持っているので 任意には変えられないです。 それでもマズー?
>>911 それなら大丈夫だと思うけど、名前からしてファイル名(可変)だと思ったからなぁ(笑)
(ちゃんとチェックすればそれでも問題ないけどね)
>>907 はやっぱりサーバの制限じゃないかなぁ・・。
`command` を使うと、結果がまとめて返ってくるので それだと、5M以上のデータを一度まるまるメモリにためることになるんじゃない? system( '/bin/cat', $dl_file ); ではだめ?
915 :
907 :02/07/03 14:29 ID:???
>>909 自分でちっとやってみた。
catじゃなくて他のコマンドつかってみたら
ダメだったので/etc/passwdも読めないだろーとおもたら
(・∀・)デキチャッタ!!!
でもパスは暗号化されてるんだよねって、そういう問題じゃないかw
今後気をつけます。
>>912 ファイルをパラメータを入力するとしたら
パスを直に入れる仕様だと穴は避けられないような気もしますなぁ。
チェックいうても今のスキルではムズかしそうなんで
対象ファイルのリストを別に持っておくくらいが関の山かと。
>>914 はーなるほど。
一応
open(IN,$dl_file);
print <IN>;
close(IN);
でもやってダメだったような気もするです・・・
確認してみます、ドモドモ。
>>915 デキチャッタって、やばいやん。
暗号化なんてそんなの(やばいので削除
917 :
nobodyさん :02/07/03 14:36 ID:lwKk8XgU
ログファイルに 読み込みopen(IN,"$log")と 書き込みopen(OUT,">$log")が 同時に発生したら ログファイルが壊れる可能性は高いですか? 言語はperlv5.6.0です。
>>915 ../ を含むパスとか / から始まるものをはじけば…いいのかな?
つーか&とかはチェックしてんの?
すみません。2ちゃんのスレッドの内容をPerlでゲットするにはどうしたらいいで
しょうか?以下のようなスクリプトだと、エラーメッセージが返されてしまいます。
なお、スクリプト中の $message = ....の右辺を普通のhtmlファイルなど
(例えば"GET
http://pc.2ch.net/php/subback.html HTTP/1.0\n\n";)
にすると何も問題なくゲットできるのですが。
#
#-------------以下、スクリプトの内容
#
use Socket;
$port = getservbyname('http','tcp');
$svname = "pc.2ch.net";
$ipaddr = inet_aton("$svname") or die "$svname が見つかりません。\n";
$socket_addr = pack_sockaddr_in($port,$ipaddr);
socket(SOCKET,PF_INET,SOCK_STREAM,0) or die "ソケットを生成できません。\n";
connect(SOCKET,$socket_addr) or die "$svname に接続できません。\n";
select(SOCKET); $|=1; select(STDOUT);
$message = "GET
http://pc.2ch.net/test/read.cgi/php/1019561283/l5 HTTP/1.0\n\n";
SOCKET $message;
print <SOCKET>;
close(SOCKET);
魔屡恥。
>>921 マルチなん?うっかり答書くとこだった。あぶねー。
923 :
920 :02/07/03 16:46 ID:???
マルチではありません。 別にPerlに限った話ではないので、同趣旨の質問がどこかにある可能性 は大きいと思ったのですが、探しきれませんでした。
ちょいとはまってるのですが、
とあるperlで書かれたCGIを使おうと思うのですが、
そのまま、サーバへアップすると動くのですが、少しでもコードを変更する
と500エラーを起こします。
なぜだかさっぱりわからないのですが、何か分かる方いらっしゃいますか?
ちなみにコードは、スペースを増やすとかだけでもダメになります。
winからFFFTPで文字コードも改行コードも変換しなくでもだめです。
linuxのange-ftpとかで編集してもダメです。
鯖はlinuxです。
改行コードをLFにしてもダメでした。
文字コートか改行コードあたりだとは思いますが、よくわかりません。
手元のlinuxでperl -cw すると、i-modeの絵文字関係のコードが
ひっかかってるっぽいです。
でも、その辺のコードをいじってはいません。
色々試しましたがダメでした。
もし、何か頭に浮かぶものがありましたら、書き込んでいただけると
ありがたいです。
ちなみに、スクリプトは、以下のメル友サーチです。
ttp://download.torworld.com/data/mail/readme.html
>>920 必要なヘッダが付いてないからだろ。たぶんUser-Agent。
つか素直にLWP::Simpleでも使ってろよ。
>>920 www.monazilla.org参照
920の問題には直接関係ないが read.cgi経由で2chのログを読むよりdatファイル直読みのほうが サーバの負担が軽くてウマーではないか。
928 :
920 :02/07/03 18:35 ID:???
>>925 LWP::Simpleのことを知りませんでした。
ずいぶんと簡単にできてしまいました。ありがとうございました。
>>917 壊れないと思うけど、
open(OUT,">$log") でいったんファイルが空っぽになるので、
open(IN,"$log") の人が空ファイルを読み込んでしまう可能性はる。(っていうか同時ならそうなる)
>>924 いじった後、保存する時の文字コードが原因だと思う。
おそらくオリジナルはEUC-JPで保存されていて、いじった後Shift_JISで保存してるんじゃないかな?
それで 「i-modeの絵文字関係のコード」 ←がエラーになると。
>>929 そんなことよりさぁ、もっと根本的な問題があるだろ。
もっと目を見開けよ。
931 :
nobodyさん :02/07/04 00:30 ID:J1twAOP5
ケータイのサイトで、自分のところのサーバーから外部のサーバー
へ飛ばすときのcgiを作っています。今の段階でできているのは、UserAgentが
何であるか判断し、入力データを分解して、参照したいURLを見るのまでです。
URLにくまれた引数の対応とか、mail toやPhone toなんかのリンクの場合
なんかもできなくています。
作ったのは、↓
my($encoding) = @_;
my($method) = $ENV{'REQUEST_METHOD'};
if ($method eq 'GET') { $query = $ENV{'QUERY_STRING'};}
local(@query) = split(/&/, $query);
foreach (@query) {
tr/+/ /;
($key, $val) = split(/=/);
$key =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c", hex($1))/ge;
$val =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c", hex($1))/ge;
$val =~ s/\r\n/\n/g;
$in{$key} = $val;
}
use LWP::UserAgent;
$ua = new LWP::UserAgent;
my $agent = $ENV{'HTTP_USER_AGENT'};
$ua->agent($agent);
my $req = new
HTTP::Request POST => $val;
$req->content_type('application/x-www-form-urlencoded');
$req->content('match=www&errors=0');
my $res = $ua->request($req);
if ($res->is_success) {
print $res->content;
} else {
print "No!";
}
print $res->content; って出すと、外部のリンク先をよんだ
ままなんですよね?
>>931 ようするに飛ばしたいのか?
Location ヘッダを使えよ。
しかし、なんのためにLWPモジュールなんてつかってるんだ?
そんなもんつかうことなんてないだろ。TCP接続なんて自分で書いたほうが
コンパクトで軽いもんが書けるだろ。
933 :
nobodyさん :02/07/04 02:05 ID:+/6rMDAW
0=ドコモ、1=ジェイフォン、2=それ以外 この場合 if ($agent eq "0"||"1"){ print "携帯ページです\n"; } ersif { print "PCページです\n"; } と if ($agent eq "2"){ print "PCページです\n"; } ersif { print "携帯ページです\n"; } この二つは同じ処理になるはずですが、なぜか上の場合"0"or"1"でもPCページです と表示してしまいます。とりあえず下の方法はうまくいきます。 何が考えられるでしょうか?
934 :
907 :02/07/04 02:29 ID:???
system( '/bin/cat', $dl_file ); で(・∀・)デキタ!! print <IN>; ではやっぱりだめでした(0byte) これも一気に読み込むんですかねぇ なにはともあれ ありがとうございますた。
>>933 きみの言う「この二つは同じ処理になるはず」の根拠は?
使用している言語は?(ersifってはじめて見るけど…)
>>934 もっと具体的なソースを見せないと指摘できんよ。
>>933 $agent == 0 || $agent == 1
としたいのだろ
938 :
nobodyさん :02/07/04 03:00 ID:v+ukjorB
あの、DLしてきたスクリプトを普通において掲示板として使いたいのですが ディレクトリに気をつけて元のファイルと同じようにおいてindexにアクセス しても何も起こりません。何が間違っているのでしょうか。。。 なにか他に気をつけるところとかあるのでしょうか。。
940 :
nobodyさん :02/07/04 04:18 ID:v+ukjorB
>>939 あ、ちゃんとwwwサーバにおきました・・・
941 :
:02/07/04 07:41 ID:???
>>938 「普通において」とか「元のファイルと同じようにおいて」とか言われても
わかりません。
スクリプトの配布先で説明でも見たら?
942 :
nobodyさん :02/07/04 11:10 ID:uvCaP6/B
>>924 >ちなみにコードは、スペースを増やすとかだけでもダメになります。
バイナリエディタを入手して、何が変えられたのか確認すること。
それ以前に、複数の文字コードに対応するテキストエディタを入手すること。
943 :
nobodyさん :02/07/04 13:27 ID:/hy7azYF
ローカルで動作確認しようとしてhtmlからcgiを呼び出すと ダウンロードになってしまいます。 しかたが無いのでMS-DOSで確認してから WWWサーバーにアップロードしています。 ローカルでは見た目が分からないので困っています。 なんとかローカルでもhtmlから呼び出せるようにならないものでしょうか?
サーバーは何を使用してる?
945 :
943 :02/07/04 14:13 ID:???
>>944 ANHTTPDです。レス有難うございます。
漏れの使い方が間違っていました。
htmlをダブルクリックで開いていたのが原因でした
ローカルのアドレスでhtmlを呼び出して動作確認したら動きました。
回線切って逝って来ます。
947 :
nobodyさん :02/07/04 15:24 ID:f03h23nO
お返事ありがとうございます。
>>929 文字コードは変えていません。
FFFTPでもコードを変えていません。
エディタはemacs系なので、EUCをS-JISでセーブしていないと思います。
というより元のコードがS-JISです。
>>942 テキストエディタは、winではxyzzy。linuxではemacsを使っているので、
文字コード関係ではないと思います。
んー、もうちょっと詳しく調べてみます。
>>947 >>924 に鯖がLinuxって書いておきながら、今度は元コードがSJISってことが
わかっててアップ時もコード変えてないんならダメだろ。
949 :
nobodyさん :02/07/04 15:56 ID:62lEfN1M
ある文字列の前が、文の先頭又は , ある文字列の後が、文の末尾又は , というような正規表現はどのようになるのでしょうか。 正規表現以外でもっと効率のいい方法を知っている方が居たら ご教授いただければ幸いです。
>>949 そんなもん正規表現の参考書とか検索すれば必ず書いてあることじゃん。
まずは自分で調べる努力をしろ。
951 :
nobodyさん :02/07/04 16:12 ID:62lEfN1M
>>950 文の先頭、文の末尾で ^ または $ を | 記号で使えたんですね。
使えない物として勝手に解釈してしまっていました。
ありがとうございます。
一応、やった方法としてはこのような感じです。
aaaという文字列を調べたい場合に、
$string =~ s/(?:^|\,)(aaa)(?:$|\,)/$1/;
やはりこれ以上、効率のいい方法はないのでしょうか?
効率をもとめたいのなら、とりあえず先頭マッチと後方マッチは 分けて書くようにしろ。 $string=~ /^\,?aaa/; $string=~ /aaa\,?$/; あと、なんで同じ文字に置換してるんだ?
953 :
nobodyさん :02/07/04 23:11 ID:seos7Can
俺たちに落として、調べてくれというのか?
500エラー出してる段階で聞きに来るな。 Apacheのエラーログ、perl -wcとかperl -dとか 全部試してから来い。
956 :
nobodyさん :02/07/05 02:06 ID:AJZNQJHL
こんにちは。perlでlinuxのユーザー作成とかできますか? どうやったらできるんでしょう?教えてください。
system()
958 :
nobodyさん :02/07/05 02:26 ID:AJZNQJHL
perlでパスワードの変更は可能でしょうか? いろいろ試してみましたが、わかりません。 ブラウザ上でパスワードを入力してそれをlinuxに反映させるというのは可能なのでしょうか? 教えてください。お願いします。 957さんありがとうございました。
960 :
nobodyさん :02/07/05 03:25 ID:qnmKXRgp
minibbsの記録ファイルのログをから、 minibbs.cgiで見られるように書き込みを復活させられないのでしょうか? サーフレスキューに繋がらないので、ここで質問させていただきました。
ShiftJISか
963 :
958 :02/07/05 13:51 ID:lr7bC3uX
やっぱりperlでパスワード変更は不可能なんでしょうか?
>>963 パスワード変更できる権限があればできるでしょ。
それなら直接ログインすればいいわけで、なんでPerlでやりたいのか疑問・・
なんだ?そのレスは・・・・・・・ この板でわざわざそんなこと聞かないだろう。
出来るよ、 具体的にはIPCだかのモジュール使ってプロセス間通信をする 勿論上手くやればWebから直接shadow...を書き換える事も可能 でももう殆ど忘れた、つーかPCの使い方も解らんw
そろそろ新スレ立てるよ。 新スレの1に書きたいことあればよろすく。 なんもなければPart6をPart7に変えるのみ。
ここはPerlの質問スレではありません。 CGI全般です。
>>971 >>1 にPerl用の誘導がついていた割には、Perlの質問多かったねぇ.…。
ここは【Perlコーディングスレ】じゃない事も一言頼む
976 :
nobodyさん :02/07/05 23:59 ID:oMipjbOm
あげ
977 :
970 :02/07/06 13:42 ID:???
ども。立ててきました。
Part 6が2つ?
979 :
970 :02/07/06 13:48 ID:???
980 :
970 :02/07/06 13:49 ID:???
折角立ったんだし、ごまかしながら使っちゃう?
982 :
970 :02/07/06 13:59 ID:???
>>981 それでよければ、そうしてもらえると。
いまなら立て直してもいいですけど。
どっちにしてもしばらく2個めのPart6を見るたびに恥ずかしい。
書込む前に確認…(略
984 :
nobodyさん :02/07/07 18:46 ID:6yjH1hUz
CGI AGE
苦労して cgi をやってきた皆様、長い間ご苦労様でした。 もうその技術は不要です。 これからは .NET です。 苦労して学んだことが無意味になるのは残念なことと思いますが、 頑張って新しいことにチャレンジしてください。
>>985 CGIって苦労して学ぶほどオマエには難しかったのか?
最後age
988 :
nobodyさん :02/07/09 11:50 ID:xtHTE7mw
CGI終わり?
1000!
990GET!
991 :
ヽ(`Д´)ノ ウワァァン :02/07/09 23:32 ID:gcNlx8b2
Win2000pro上でwwwサーバーを起動するところまではできたのに CGIファイルをエクスプローラーで見ようとすると文字化け! ヽ(`Д´)ノ ウワァァン レンタルサーバー上にアップしたら文字化けしないのに! ヽ(`Д´)ノ ウワァァン ActivePerlのインストール設定ミスかも...ヽ(TДT)ノ ウワァァン...
992!!
993
埋め立て
|:::|:::::/|::/ |:/. | ヽ;::l ヽ:::i丶::::';:::::::;;;;;;;;;;;;;;;;;i |:::|::/ !/ _レ? v、::i ヽ:', \::i丶:;;;;;;;;;;;;;;;;;;;;;| |::::i:;', '''''" ヽ ̄ ヾ''''\:::::;;;;;;;;;;;;;;;;;;| |:::::::;;', -─‐- -──-- i::::::;;;;;;;;;;;;;;;;;;| |:::::::;;;i | l l | |::::::;;;;;;;;;;;;;;;;;;| |::::::::;;;l.| | l | |::::::;;;;;;;;;;;;;;;;;;| あかん、また Internal Server Error や・・・ |::::::::;;;;i| | l | !:::::;;;;;;;;;;;;;;;;;;;| |:::::::::;;;;;:ヽ ,| r───、| |-'|::::;::;;;;;;;;;;;;;;;;;;| |:::::::::;;;;;;;;;;;;;`''- ニ,─--,' ‐='"''"|::::;;:;;;;;;;;;;;;;;;;;;;| |::::;;:::;;;ri;;;;;;||::/ `i ̄i.:.:.|:.:.:.:i:.:|::::;;;;;;;;;;;;;;;;;;;;;;;|
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (∩・∀・)< もしもし、次のスレッド教えてもらえますか □……(つ ) \___________  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
999 :
nobodyさん :02/07/10 00:14 ID:YxncJPQj
★1000★
今だ!1000ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。