【Perl】初心者コーナー Part12
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/04/27 23:17ID:1NNXdNspいらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。
CGIの質問は【CGIだけどなんか質問ある Pert 6 】
http://pc.2ch.net/test/read.cgi/php/1019561283/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4 】
http://pc.2ch.net/test/read.cgi/php/1012839651/
過去ログ、その他の役立ち情報は>>2-10を見よう。
0053nobodyさん
02/04/29 10:37ID:5LS+M/ng0054nobodyさん
02/04/29 10:38ID:???だよねー。 いつもの _gunzip さんの手口ね。
この板を盛り上げようとする心意気はわかるけど、名前を変えては煽ったり
するのってもうやめたほうがいいんじゃなーい? そのほうが人が戻ってくる
ように思うのはわたしだけじゃないでしょ?
0055藁藁藁
02/04/29 10:40ID:5LS+M/ngこいつの1レスごとに、俺が50レスで荒らします。
そんなことになったら、他の人も困るでしょ?
0056あぼーん
NGNG0058nobodyさん
02/04/29 10:49ID:???あまりにも本質をついてしまったから、動揺しちゃったね。
>54
冷静に見てる人もちゃんといるんだね。
0060nobodyさん
02/04/29 10:55ID:???と、おきまりのを書いてみるテスト。
さて、どんな言い訳が返ってくるか(藁)
それとも、おれが_gunzip認定されたりして。
0061nobodyさん
02/04/29 10:58ID:5LS+M/ng0062nobodyさん
02/04/29 10:58ID:5LS+M/ngとりあえず、ウザイ
0063>>21
02/04/29 10:59ID:5LS+M/ng0064あぼーん
NGNG0067nobodyさん
02/04/29 12:23ID:???だろうね。トレンド語るようなスレなら1000ゲトーしても
良いかも知んないけど、質問系スレは900逝く前に移行して
新しくスレ立つごとにうまくageてれば良いと思う。
0068nobodyさん
02/04/29 12:32ID:???A,B,C,D,E,Fって処理があってどれもお互いカブってないような状況なら
サブルーチン化して&A;・・・&F;ってやるのと
ただABCDEFって並べるのなら処理速度的に後者の方が良いんですかね?
0073nobodyさん
02/04/29 13:27ID:???むずかしくてわっかりませーん。
ここ初心者のとこでもむずかしいのねぇ。 びっくりさぁね。
みなさんのレベルで初心者って、、、はぁ。 もう、わけがわかりません。
0074nobodyさん
02/04/29 13:41ID:kMaPAu7S()内が単純なものなら2、複雑で読みにくくなったら4です。
スペース打つのがめんどいのと、極力横幅を縮めたいので。
0075nobodyさん
02/04/29 13:57ID:???標準モジュールの中にそれってあるのか? だれでもいいから早めに答えろよ、
こっちはいそがしいんだからな。
いっとくが、とほほが配布してるやつはよせよ。うまくくっつかんからな。
それ以外でくっつける方法とかしってるやつがいたらもったいぶらないで教えろや。
0077nobodyさん
02/04/29 14:47ID:???│ |
│ |
│ |
│ |
│ /■\ |
│ (´∀`∩) |
│ (つ 丿 |
│ ( ヽノ |
│ し(_) |
│ |
│ Now Onigiring. ... |
│ |
│ 大変見苦しい場面がありました。 . |
│ そのままおにぎりでお待ちください。. |
│ |
│ |
└───────────────────────―┘
0078nobodyさん
02/04/29 15:31ID:s0WzG4fn良いんですか?例えばクッキーの要素とか。
0079nobodyさん
02/04/29 15:47ID:???もちろん。(例えば、で"クッキーの要素"を出すのはよく判らないが)
なるべく変数の有効範囲を狭くしたほうがいいかなと思うけど。
008078
02/04/29 15:54ID:???ありがとう。疑問解決したよ。何か俺の説明が悪かったね。
クッキーの要素ってのは、よく配布CGIスクリプトとかでよく見る
($year,$month,$week,・・・)みたいな奴のスカラ変数部ってこと。
0081nobodyさん
02/04/29 16:11ID:q+P1YCSQ入力する人がいるので、全角英数→半角英数に自動で変換させたいんですが
どんなふうにすれば良いでしょうか?
0082nobodyさん
02/04/29 16:18ID:???jcode.pl 使っての変換ならこれかと
http://www.din.or.jp/~ohzaki/perl.htm#JP_Z2H
008381
02/04/29 16:21ID:q+P1YCSQありがとうございます!
0084nobodyさん
02/04/29 18:37ID:???0085nobodyさん
02/04/29 19:20ID:NmdFgil60086nobodyさん
02/04/29 22:00ID:NmdFgil60087nobodyさん
02/04/29 22:19ID:5LS+M/ng0088コテハン
02/04/29 22:20ID:???0089nobodyさん
02/04/29 22:22ID:5LS+M/ngこれは命令です。
0090_gnuzip
02/04/29 22:59ID:???@in1 = (0,1,2,4,5);
@in2 = (6,7,8);
@c = &sum(\@in1,\@in2);
print join(',',@c),"\n";
sub sum {
my($a,$b,$i,@ret,$n) = @_;
$n = $#{$a} > $#{$b} ? $#{$a} : $#{$b};
for($i=0;$i<=$n;$i++) {
push(@ret,${$a}[$i] + ${$b}[$i]);
}
return @ret;
}
0091nobodyさん
02/04/29 23:35ID:???0093nobodyさん
02/04/29 23:49ID:???知恵遅れは消えたら?
0094nobodyさん
02/04/29 23:53ID:???0099_gnuzip
02/04/30 00:03ID:???0100_gnuzip
02/04/30 00:04ID:???0103nobodyさん
02/04/30 00:17ID:???多いスレなのか?
90のような低レベルなこと書いてる場合じゃねーだろ!
こっちはいそがしいんだよ。 もうすこしだけまってやるからはやくしろよ。
役立たずどもはどっかいっちまえ。
0105nobodyさん
02/04/30 01:04ID:???0106nobodyさん
02/04/30 01:08ID:???0108_nobody
02/04/30 01:11ID:???先を越された
0109nobodyさん
02/04/30 02:16ID:???引きこもりに忙しいとかあるの?
0110nobodyさん
02/04/30 11:36ID:???煽ってるのはいつものように一人だとは思うが…。
0111nobodyさん
02/04/30 17:52ID:???0112nobodyさん
02/04/30 19:15ID:vVTDvLw/よろしくお願いします。
REMOTE_HOSTと、HTTP_USER_AGENTと、HTTP_REFERERを
取得して、それを同じディレクトリのdata_log.txt に
書き込んでいく、というCGIを作りたいのですが、
いろんなサンプルを見ながらツギハギで書いてみたのですが、
どうしてもここから先がわかりません。
CGIで外部ファイルに書き込みを行うにはどのような処理を
行えばいいのでしょうか?
ご教授いただければ幸いです。
0113112
02/04/30 19:16ID:vVTDvLw/#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
#情報取得部
$host = $ENV{'REMOTE_HOST'};#クライアントのIPを取得
$user_agent = $ENV{'HTTP_USER_AGENT'};#クライアントのブラウザ
$referer = $ENV{'HTTP_REFERER'};#飛んできたサイト
#情報表示部
print "<b>REMOTE_HOST</b>: $host";
print "<BR>";
print "<b>HTTP_USER_AGENT</b>: $user_agent";
print "<BR>";
print "<b>HTTP_REFERER</b>: $referer";
print "<BR>";
print "<BR>";
print "<a href=\"http://localhost/~aya/cgi/data_log.txt\" target=\"_blank\">ログを表\示</a>";
#情報記録部(? data_log.txt)
sub write {
open(LOG,"+<$data_log.txt");
@logs=<LOG>;
unshift(@logs,"$host,$user_agent,$referer\n");
seek(LOG,0,0);
truncate(LOG,0);
print LOG @logs;
close(LOG);
}
0114nobodyさん
02/04/30 19:22ID:???>open(LOG,"+<$data_log.txt");
この$が邪魔なんじゃない?
0115112
02/04/30 19:23ID:vVTDvLw/うっス!取ってみますッス!
0116112
02/04/30 19:25ID:vVTDvLw/open(LOG,"+<$data_log.txt");
$取って見ました!
ログを表示してみたところ、
何も書き込まれていませでした!(T-T)
0117nobodyさん
02/04/30 19:29ID:???0118nobodyさん
02/04/30 19:29ID:???タイプミス。
&write;
0120112
02/04/30 19:33ID:vVTDvLw/なるほど!subっていうのをどこかで呼ばないとダメなんですね!
…どうやって呼ぶのでしょうかm(_ _; m?
0121nobodyさん
02/04/30 19:34ID:???0123112
02/04/30 19:39ID:vVTDvLw/失敗しました!(T-T
print "<BR>";
print "<BR>";
print "<a href=\"http://localhost/~aya/cgi/data_log.txt\" target=\"_blank\">ログを表\示</a>";
write();
#情報記録部(? data_log.txt)
sub write {
open(LOG,"+<data_log.txt");
0124112
02/04/30 19:40ID:vVTDvLw/できました!!!!!!
みなさん、ありがとうございます!!
0125112
02/04/30 19:41ID:vVTDvLw/#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
#情報取得部
$host = $ENV{'REMOTE_HOST'};#クライアントのIPを取得
$user_agent = $ENV{'HTTP_USER_AGENT'};#クライアントのブラウザ
$referer = $ENV{'HTTP_REFERER'};#飛んできたサイト
#情報表示部
print "<b>REMOTE_HOST</b>: $host";
print "<BR>";
print "<b>HTTP_USER_AGENT</b>: $user_agent";
print "<BR>";
print "<b>HTTP_REFERER</b>: $referer";
print "<BR>";
print "<BR>";
print "<a href=\"http://localhost/~aya/cgi/data_log.txt\" target=\"_blank\">ログを表\示</a>";
&write;
#情報記録部(? data_log.txt)
sub write {
open(LOG,"+<data_log.txt");
@logs=<LOG>;
unshift(@logs,"$host,$user_agent,$referer\n");
seek(LOG,0,0);
truncate(LOG,0);
print LOG @logs;
close(LOG);
}
0126112
02/04/30 19:45ID:vVTDvLw/ここから、いろいろ応用できそうで、わくわくしてます♪
>>122
いえ、自力ではないです(^-^;
いろんなCGI配布サイトさまの、サンプルをかき集めて、
切り貼りしましたです。
アドバイス…というか、ズバリ回答を、ありがとうございました。
0128112
02/04/30 19:49ID:vVTDvLw/ありがとうございます。
私も早く回答者さんに回れるように、がんばります。
0129nobodyさん
02/04/30 19:53ID:???あ,write()だと組み込み関数のwriteになっちゃうのか.
&表記をしないのであれば ::write() だったね.スマンカッタ.
0130112
02/04/30 20:01ID:vVTDvLw/いえ、とんでもないです。
そういう場合もあるんですね。
勉強になりました♪
0132nobodyさん
02/04/30 20:42ID:???0135nobodyさん
02/04/30 21:25ID:???(´-`).。oO(XHTMLじゃダメだけどね… http://www.w3.org/TR/html401/index/elements.html 板違いスマソ…)
0137nobodyさん
02/04/30 23:02ID:gJDRgS/S0139137
02/04/30 23:11ID:gJDRgS/SJavaScriptの内容を 数字化して素人さんに解読されないよーにしたいんですけど
0140nobodyさん
02/04/30 23:12ID:64l1RWQD0142nobodyさん
02/04/30 23:34ID:???素人さんは解読しないから大丈夫だよ。
つーか、StringfromCharCodeって、JavaScriptの文自体を生成できるんかいな?
0143112
02/04/30 23:42ID:vVTDvLw/携帯からのアクセスだと、i-modeなら必ずdocomoのサーバーを
介してくる要求が来る筈ですし、c-htmlなんかを要求された
場合などが、見分けるヒントになりませんでしょうか?
素人見解ですいません。
0144137
02/04/30 23:59ID:gJDRgS/Sそーかも…
>>142
出来ますよ 実際ソース見ると
eval(String.fromCharCode(数字))
て、具合でしたから
0146nobody
02/05/01 00:14ID:???ソース隠しとか
http://hp.vector.co.jp/authors/VA013453/temp/junk_index.htm
↑のver2.11ってところ
0147nobodyさん
02/05/01 00:19ID:???スマートな隠蔽はスマートに解読されがち。
document.write("(゚Д゚)ゴルァ world!!"); するのに400行くらいのダミー行を用意すればいい。
詰まるところ木を隠すなら森。更に言うならば板違い。
0148137
02/05/01 00:29ID:JaMCiNKsすいません板違いで
ありがとうございました
0149145
02/05/01 00:42ID:???ありゃ、行っちゃったかな。まぁいいや。
#!/usr/bin/perl
undef $/;
$_ = <>;
s/^(.*?)=//o;
s/\+/ /og;
s/%([a-fA-F0-9][a-fA-F0-9])/pack("c",hex($1))/oge;
$mes = $_ ? $_ : "ここに入れる";
$_ = join(", ",unpack("C*",$_));
print <<"EOF";
Content-Type: text/html
<form action="stringToCharCode.cgi" method="POST">
<textarea name="in" cols="80" rows="30">$mes</textarea>
<input type="submit">
<input type="reset">
</form>
eval(String.fromCharCode($_));
EOF
0151nobodyさん
02/05/01 02:05ID:Q/hHiA0V文字化けします
perlじゃ無理なんですね
■ このスレッドは過去ログ倉庫に格納されています