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

【Perl】初心者コーナー Part17

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆Go4ZKngPGE 02/10/14 17:24ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

CGIだけど、なんか質問ある? Part 8
http://pc.2ch.net/test/read.cgi/php/1032704121/
参考書籍の話題は【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は 【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0159nobodyさん02/10/20 23:55ID:???
>>158
パーセント=求めるもの÷全体×100

…
0160nobodyさん02/10/20 23:56ID:???
$percent= $A / $total * 100;
0161nobodyさん02/10/21 00:02ID:???
いつから算数初心者コーナーに
0162nobodyさん02/10/21 00:15ID:???
円周率求める式教えて下さい。

$pai   円周率。


おなかしいます。
0163nobodyさん02/10/21 00:18ID:???
ネタが怖い今日この頃。
0164nobodyさん02/10/21 00:30ID:???
しつもん。

perldoc て日本語訳ありますこ?
0165nobodyさん02/10/21 00:34ID:???
jperldoc
0166nobodyさん02/10/21 00:49ID:???
http://pc3.2ch.net/test/read.cgi/tech/1031838665/
0167 ◆hMJAPH9PWA 02/10/21 11:36ID:???
>>164
http://perldoc.jpで日本語化が進行中
0168nobodyさん02/10/21 15:22ID:???
すいま千円。
リファレンスの使い方は一応わかったんですけど、どんな時に使うのかがわかりません。
0169nobodyさん02/10/21 16:08ID:???
>>168
ちょっと高度なことをするとき。
よく使う場合はねぇ、
配列引数をサブルーティンに複数渡すとき、
多元配列を扱うとき、
ハッシュ変数にアクセスするとき、
だやね。

0170nobodyさん02/10/21 16:34ID:???
無名配列、無名ハッシュを使うときですね。
0171nobodyさん02/10/21 16:47ID:???
KENTのこの掲示板なんですけど、http://www.kent-web.com/bbs/aska.html
そのまま何も変えないで使うとデータファイルはaska.logです。
で、このlogファイルは投稿内容や暗号化された削除キーなどが記録されています。
そのlogファイルをブラウザからアクセスすると容易に閲覧できます。
投稿内容だけならともかく、投稿者のホスト名や暗号化された削除キーが載っています。
これはセキュリティ的に危険だと思うんですがこんなんでいいんでしょうか。
管理者以外にlogファイルを見られなくする方法は.cgiファイルにすれば見れないと
前に知りましたがこの方法が一番簡単なんでしょうか。
0172nobodyさん02/10/21 16:57ID:???
>>174
簡単だわな。確かに。
0173nobodyさん02/10/21 17:23ID:nGDYlndq
質問です。
CGIで
パスワードを入力してボタンを押す
  ↓
パスワードが合ってるか? →エラーの為のHTML出力
  ↓(YES)           (NO)
管理人しか見れない様なHTML出力

という風に同一CGI内でパスワードの処理をしたいんです。
んで、
<form action=\"$URL\" method=\"POST\">\n
<input type=\"hidden\" name=\"mode\" value=\"admin\">\n
<input type=\"password\" name=\"pass\" size=\"8\">\n
<input type=\"submit\" value=\"管理用\"></form>
というのを出力してみたのですが、
ここからパスワードを取得して、比べる→その結果によって出力っていうのがどうやったら良いのかわかりません。
どなかたご教授お願いします。
0174 ◆4/qmJJukCQ 02/10/21 17:27ID:???
・パスワードの取得はPOSTだから標準入力を解析する。
 分からなければCGI.pmとかcgi-lib.plでも使え。
・分岐は if を使う。
・出力は print を使う。
017517302/10/21 17:30ID:nGDYlndq
CGI.pmとかcgi-lib.plですか。
やってみます。
ありがとうございました。
0176nobodyさん02/10/21 17:47ID:???
>>172
おいレス番、違ってるだ炉。
誰に向かって言ってるんだ、はっきりしろ。
それによっては、どやす。
0177 ◆4/qmJJukCQ 02/10/21 17:49ID:???
>>176 174は実際簡単じゃないか(藁
0178nobodyさん02/10/21 17:57ID:???
>>177
納得。>>172はアフォ天才か
0179_02/10/21 18:01ID:???
>>171
ログファイルの名前を分かり難い物に変える。
(英字と数字を組み合わせて「a5mhp3f」とか。)
パーミッション600等が使えれば600にしておく。
018017302/10/21 18:33ID:nGDYlndq
すいません、もう一度…。
cgi-lib.plの使い方はわかりました。
>>173の
<input type=\"submit\" value=\"管理用\">
この部分でできたボタンを押したことを感知するイベントハンドラ(?)みたいな処理にしないとマズいですよね?
そこを押したらpassを取得して比べるという事をしなければならないので。
そーいったのはどうすればできるのでしょうか?
0181nobodyさん02/10/21 18:44ID:???
>>180
> <input type=\"hidden\" name=\"mode\" value=\"admin\">\n

mode が admin な時に実行すれば?
0182nobodyさん02/10/21 18:53ID:???
>>179
パーミッション600だと読み込みが出来なくなっちゃうのでダメですよね。

結局見せたくないなら、手っ取り早くcgiファイルにしとけって事ですかね。
プロの人はどうやってるんでしょうか。
018317302/10/21 19:09ID:nGDYlndq
# ---フォームのデータを受け取る
%form = &read_input('euc');
$iptPass = $form{'pass'};
$mode = $form{'mode'};

if($mode eq admin){
 # ---パスワード認証された時の処理
 if ($iptPass = $PASS){
  (略)
 }
 # ---パスワードが間違えてた時の処理
 else{
  (略)
 }
}

>>181さんを参考にして、こんな風に付け足ししてみたんですけど、ダメでした。。。・゜・(ノД`)・゜・
もうちょっと詳しく解説して戴けますか?
0184 ◆4/qmJJukCQ 02/10/21 19:16ID:???
>>182
>パーミッション600だと読み込みが出来なくなっちゃうのでダメですよね。
suexec対応の鯖使え。
共有鯖でsuexecでCGI動かしてない鯖は糞だから見限れ。

>結局見せたくないなら、手っ取り早くcgiファイルにしとけって事ですかね。
・見られたくないファイルはHTTP経由で見れないディレクトリに置く。
・suexecでCGIが動く鯖を使う。
・.htaccessでdenyる。
どれかにしる。

>>183
if ($iptPass = $PASS){
    ↓
if ($iptPass eq $PASS) {
だべさ。
0185nobodyさん02/10/21 19:32ID:???
>>183

if($mode eq 'admin'){
018617302/10/21 19:56ID:nGDYlndq
>>184-185
どうもありがとうございます。
でもできないです…。
018717302/10/21 20:05ID:nGDYlndq
一応全部の物をうpしましたので、どなたか教えて下さい。m(_ _)m
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6220/chlog.zip
0188nobodyさん02/10/21 20:18ID:???
あやしいわーるどRemix@はじめてのPerl
http://www.strangeworld.cx/cgi-bin/remix/bbs.cgi?area=soft15
0189nnd02/10/21 21:51ID:j4V+CWpA
物凄く初歩な質問なんですがよろしくお願いします。

$count =1;
$data = "$count" . ".html";

上のように自動に作成された1.htmlというファイルですが、
特定のフォルダ下に自動作成するにはどうしたらいいのでしょうか?
/html/1.html
という様にhtmlというフォルダの下に1.htmlというファイルを
自動的に作る場合はどのように指定してやればよいのでしょうか?

どなたかご教授お願いします。
0190nobodyさん02/10/21 22:07ID:5oRhJ4R+
>>189
open(FH,">./html/$count.html");
close(FH);
がむばれ
0191nobodyさん02/10/21 22:13ID:???
>>173
キミは決定的な勘違いをしている。
パスワード入力画面を出力したプロセスで
その結果を受け取れるワケがない。

ブラウザ「cgi呼び出し」
↓
CGI「パスワード入力画面出力」
↓
ブラウザ「パスワード入力画面表示」

これで1プロセス。ここでCGIの実行は終了。
この操作と同時に「CGIが吐き出したフォームに書き込まれる内容」を
CGI自身が受け取れるわけがない。

同じCGIの中でパスワードのチェックもしたいなら、
CGIが実行する一番最初の処理に
「パスワード付きの呼び出しが来たらこっちで処理」
という分岐をいれなければダメだ。
0192nobodyさん02/10/21 22:17ID:???
>>182
> 結局見せたくないなら、手っ取り早くcgiファイルにしとけって事ですかね。
> プロの人はどうやってるんでしょうか。

プロじゃなくっても、サーバいじれるなら、.datへのアクセスを
禁止しておくのが普通でしょ。
0193nobodyさん02/10/21 22:26ID:5oRhJ4R+
>>192 まったくですなあ。データは.cgiに限りますね。
それか、httpでアクセスできないとこに設置するとか。
0194作ってみた02/10/21 22:34ID:???
>>173
これじゃだめか?

#!/usr/local/bin/perl

# パスワード
$pass='pass';

# このファイル名
$file='pass.cgi';

read(STDIN,$_,$ENV{'CONTENT_LENGTH'});
foreach (split(/&/)){
($name,$_)=split(/=/);
s/%([a-fA-F0-9][a-fA-F0-9])/pack('C',hex($1))/eg;
$input{$name}=$_;
}
print "Content-tyep:text/html\n\n<html><body>";

if($input{'pass'} ne ''){
if($input{'pass'} eq $pass){
print "本物";
}else{
print "偽者";
}
}else{
print '<form action="'.$file.'" method="POST"><input type="password" name="pass"><input type="submit"></form>';
}

print "</body></html>";
019518902/10/21 22:35ID:j4V+CWpA
>190様どうもです。

明日試して見ます。すいません。今日はもう寝させてくださいzzz
0196nobodyさん02/10/21 23:24ID:???
>>192-193
cgiにするのはアマチュア。
1 httpでアクセスできないところに置く
2 .htaccessで禁止する
019717302/10/21 23:33ID:nGDYlndq
>>191
難しい…。
何となく前半はわかったのですが、後半がよくわかりません。
もう少し考えさせてください。m(_ _)m

>>194
わざわざ作っていただいてありがとうございます。m(_ _)m
>print "Content-tyep:text/html\n\n<html><body>";
Content-tyepではなくて、Content-typeですよね?
でも、それを直してうpしても、エラーが出ちゃうんですよね…。(^^;
0198nobodyさん02/10/22 00:27ID:???
データファイルの拡張子を.cgiにした場合、たとえば掲示板なら書き込みの汚染チェックしっかり
しとかないと大変なことになるよね。
パーミッションしっかりしてれば問題ないけど、それなら.cgiにする必要もないし。
019917302/10/22 00:29ID:EEwgqrao
拝啓 >>194様

ごめんなさい、エラーが出たのは私めのせいでございました。。。
パーミッションを変えないという初歩的なミスを…。
ちゃんと動きました、ごめんなさい。

                                     敬具
0200nobodyさん02/10/22 00:54ID:???
批判の多い.cgi。
いろいろな共有鯖で使う尼向け配付にはもってこいの気もする
・・・・・・・・・・なんだ結局尼むけだなぁ
仕事に使ったらAFOってことで
0201nobodyさん02/10/22 02:35ID:???
良く見かける、
$_ = reverse($_);1
の1って何でしょう?
0202nobodyさん02/10/22 02:44ID:???
>>200

拡張子cgiて定石だけど、あくまでアマの定石ってこと?
でも「簡単に設定できる」というのは重要だと思うけど。
仕事でもそれは変わらないと思うんだけどな。
0203nobodyさん02/10/22 02:44ID:???
>>201
良く見かける?

わたしの環境ではエラーでましたが・・・
0204nobodyさん02/10/22 03:00ID:???
>>201

たぶんモジュールの最後に書かれた 1 のことじゃねえの?
0205nobodyさん02/10/22 04:15ID:???
>データファイル
「.passwd」みたいに拡張子のみにリネームするのが定石じゃないの?FTPツールとかで。
まぁ鯖によっては置けなかったりFTPツールから見えなかったりするけど。
0206nobodyさん02/10/22 07:04ID:???
perlのmap関数の良いところを述べてください。

また、grep関数の良いところを述べてください。
0207201 02/10/22 07:05ID:???
>>204
意味は?
0208nobodyさん02/10/22 08:42ID:qoySgddo
>>205
「拡張子のみ」とか言わないで「ドットファイル」と呼んだほうがかっこいいよ
0209nobodyさん02/10/22 09:38ID:???
>>206
http://www.google.co.jp/search?q=map%8A%D6%90%94&ie=Shift_JIS&hl=ja&lr=
http://www.google.co.jp/search?q=grep%8A%D6%90%94&ie=Shift_JIS&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=
0210nobodyさん02/10/22 11:52ID:???
$value =~ s/% ([a-fA-F0-9][a-fA-F0-9]) /pack("C", hex($1))/eg;
クエリーデータを取得して分解する時のこの行は何をしているんですか。
0211nobodyさん02/10/22 12:31ID:???
>>210
209にあるような%8A%D6%90%94という文字を、変換前の日本語や記号に戻してるんだよ。
URLデコードっていうんだよ。
0212nobodyさん02/10/22 13:14ID:???
>211
わかりました。
0213nobodyさん02/10/22 13:19ID:???
$url = 'http://www.yahoo.co.jp/';
open(HTML,"$url") || die "ダメ:$i";
while(<HTML>){
  print;
}
close;

これエラーになるんですけどなぜでしょう。
0214nobodyさん02/10/22 14:00ID:???
http経由では開けないから。
0215nobodyさん02/10/22 14:39ID:???
>>214
それはどこで習いましたか?
021619402/10/22 16:17ID:???
>>199
確かにtyepは間違いでtypeだけど、何で動くんだろう?
俺もテストして動いたから気づかなかった
0217nobodyさん02/10/22 16:27ID:???
>>215
そろばん教室
0218nobodyさん02/10/22 16:57ID:???
>>217
僕もそろばん教室通っていましたけどそれは習わなかったです。
perlを教えてくれるそろばん教室なんてあるんですね。
021917302/10/22 17:06ID:1nArfp1i
すいません。
パスワードの部屋、>>194を発展させて作ろうと思ってます。
でも、>>191さんの
>同じCGIの中でパスワードのチェックもしたいなら、
>CGIが実行する一番最初の処理に
>「パスワード付きの呼び出しが来たらこっちで処理」
>という分岐をいれなければダメだ。
という所が理解できないので、サンプルソース戴けませんか?
わからないままってのはこれから困るし…。
どうかよろしくお願いします。m(_ _)m
022019402/10/22 17:09ID:???
とりあえず俺は>>191を理解できない
0221nobodyさん02/10/22 17:57ID:???
>>219が配布スクリプトを参考にしようとしないのは何故ですか
教わったところで自分が何を実行してるのかわからないだろうから
こんなとこで「理解」はどのみち無理かと。
0222nobodyさん02/10/22 18:25ID:???
>>219
とりあえず、
> 「パスワード付きの呼び出しが来たらこっちで処理」という分岐
に相当する処理を>>194から探してみようよ。
0223nobodyさん02/10/22 20:21ID:TiLNiSf4
jcode.plって日本人が作ったんですよね?
なのにどうしてスクリプト内のコメントは全部英語なんですか?
外国人のために英語で書いてあげてるんですか?
でも圧倒的に日本人が使う頻度が高いですよね?
それとも単なるかっこつけですか?
0224iui02/10/22 20:34ID:qg3kIz94
自作で適当な掲示板つくってますが、詰まってしまいました。
ぜひどなたかおしえ頂きたいのですが・・・

フォームのテキストエリア内での改行についてなのですが、
2CHに書き込みすると改行が生かされていますよね?
これはどのようにするのでしょうか?
WRAPとは違うのですよね?書き込みデータを出力しているときに
<br>が入っているのでしょうか?
面倒な質問ですがどなたかご存知の方いましたらよろしくお願いします。

0225iui02/10/22 20:34ID:qg3kIz94
↓一応自分でやって見た物です。
テキストエリアに書かれた内容をメソッドポストで
write.cgiに送りdata.htmlに出力し、
それをread.cgiで表示しています。

具体的にはこうです。
==write.cgi==
$data = "data.html";
$name=$cgi{'name'}; #POSTで送られてきたデータ
$text=$cgi{'text'}; #POSTで送られてきたデータ

open(FILE, ">>$data") || &error("");
print FILE "<font size=\"2\">$name</font><font size=\"3\">$text</font>";
close(FILE);


==read.cgi==
open(FILE, "<$data") || &error("");
@lines=<FILE>;
close(FILE);
print @lines;

data.htmlを見ても文章に改行コードが入っていないので
改行する訳ないのですが・・・

テキストエリア内での改行コードを<br>に変換???
テキストエリア内の改行コードってどうやってみるの???
などなど、悩んでました。アホな悩みですがよろしくお願いします。
0226マジレスw02/10/22 20:38ID:???
>>223
一般的なPerlユーザならあの程度の英語は理解できるからです。
日本人Perlユーザの100人中99人は理解できます。
読めない1人(=223)が減っても、2人ぐらいなら海外から補填出来ます。

結局読める人は計101人で日本語で書くより読めるユーザが増えます。
0227マジレスw02/10/22 20:45ID:???
>>225
改行コードが入ってないってのがよく分からんが

-------------------------------------------------------------
$data = "data.html";
$name=$cgi{'name'}; #POSTで送られてきたデータ
$text=$cgi{'text'}; #POSTで送られてきたデータ

$text =~s{\x0D\x0A}{<br>}g;
$text =~s{\x0D}{<br>}g;
$text =~s{\x0A}{<br>}g;

open(FILE, ">>$data") || &error("");
print FILE "<font size=\"2\">$name</font><font size=\"3\">$text</font>";
close(FILE);
-------------------------------------------------------------

他にも<,>,",@とかもエスケープせんと酷い目に合うよ。
0228nobodyさん02/10/22 20:50ID:???
>>225
既に$cgi{'〜'}の形に変換されてる事から、
その変換時(=デコード処理)のときに改行を削除してると思われ
022922802/10/22 20:51ID:???
文章ちょっと変だが気にするな
0230nobodyさん02/10/22 20:54ID:???
デコード処理きちっとしてないんですよ、きっと。
文字コードの変換とかもしてなさそうな予感。
023117302/10/22 21:19ID:1nArfp1i
>>221
参考にしようとしました。
kent-webのプチボードの管理モードの部分です。
j-code.plは使ってたけど、&read_inputを使ってなかったので、
&read_inputを使った他のソースが欲しいなって思った所です。

>>222
if($input{'pass'} ne ''){
 # ↓ここから
 if($input{'pass'} eq $pass){
  print "本物";
 }else{
  print "偽者";
 }
 # ↑ここまでですよね?
}else{
 print '<form action="'.$file.'" method="POST"><input type="password" name="pass"><input type="submit"></form>';
}
0232nobodyさん02/10/22 21:20ID:???
自分の身近にもいるけど、perlをHTML感覚で扱えると思われてると
根本的に認識がずれてるからどう説明すればいいかとても悩みますね

ところで>>227の $text =~s{\x0D\x0A}{<br>}g; って初めて見たけど
$text =~s/\x0D\x0A/<br>/g; じゃだめなん
0233iui02/10/22 21:22ID:nQEHGPbT
皆様お手数お掛けします。

デコードできてないとの事なのですが、本に載っていたデコードを
そのままやったのでおそらくそれが原因なのでしょうか?
↓のデコードで問題あるのでしょうか?またコノヨウナ半角カタカナも
文字化けしてしまうのはデコードが上手くいってないからでしょうか?
度々すいませんがよろしくお願いします。

sub decode{
$readSize = read(STDIN, $form_data, $ENV{'CONTENT_LENGTH'});
if ( $readSize && ( $readSize != $ENV{'CONTENT_LENGTH'} )){
&error("");
}
@part = split('&', $form_data);
foreach $i (@part) {
($names, $value) = split('=', $i);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
&jcode'convert(*value,$mycode
$value =~ s/&/&/g;
$value =~ s/"/"/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ tr/\r\n//d;
$cgi{$names}=$value;
}
}
0234nobodyさん02/10/22 21:22ID:???
>>223
環境によってperldocを通らないことがあるからではないですか。
オンラインマニュアルに求められるのは、なるべくどこでも読めることですから。
これから学習して腕を上げていかれるかと思いますが、間違っても>>226のように
人を見下すことしかできない厨房にはならないでくださいね。
0235nobodyさん02/10/22 21:35ID:???
>>233
それは名前の処理で本文の処理ではないんじゃ
0236nobodyさん02/10/22 21:43ID:???
>>233
>$value =~ tr/\r\n//d;
これ
0237iui02/10/22 21:52ID:nQEHGPbT
>>235
>>236
様、有難うございます。確かにtrされてますね。恥かしい。
すいませんでした。
これを<br>に置換してやって見ようと思います。

あと、もう一つすいませんが、半角カタカナはどのように
すれば文字化けせずに表示できるのでしょうか?
これもデコード処理によるものなのでしょうか?
調べる取っ掛かりになるヒントだけでも良いのでお願いします。

0238nobodyさん02/10/22 21:58ID:???
>>237
・ まずjcode.plはあるのかどうか。
・ require 'jcode.pl'; してるのかどうか。
・ $mycode = 'euc(もしくはsjis)'; があるのかどうか。
0239nobodyさん02/10/22 22:01ID:???
あと表示するHTMLで文字コードを明記してるのかどうか。
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP(もしくはShift_JIS">
0240nobodyさん02/10/22 22:05ID:???
掲示板とかで半角カナの文字化けを防ぐには変換しないってのが正解じゃない?
通常SJISだからそれ以外は投稿できないように(2chはこうなってるはず)
無理にjcodeを使うから文字化けするのでは?

文字コードに関しては無知なのであってるかどうかは分からんが
0241iui02/10/22 22:15ID:nQEHGPbT
度々すいません。また、此方の情報不備でした。

jcode.plはあります。
require 'jcode.pl'; も宣言しています。
$mycode = 'sjis'; にしています。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS>でやっています。

>>240様
するとSjisでないと文字化けするということですか?
テスト書き込みの際はSJISでやったのですが文字化けが起こって
しまいました。



 
024224002/10/22 22:27ID:???
>>241
言い方が変だったかな?
SJISで半角カナを書き込むと、それがEUCのコードと一致してEUCとみなさえれて文字化けします(たぶん)
だからjcodeの仕様だと文字化けが起こるのはしょうがないと思われ(たぶん)
ということで文字化けを防ぐなら変換しないのがいいと思われ。

さっきからただの勘違いだったらスマソ
0243iui02/10/22 23:15ID:???
なるほど。夜分まで付き合っていただき有難うございます。
とりあえず明日、jcodeを洗って見ようと思います。
もしかしたら明日もまたご厄介になるかもしれませんが
よろしくお願いします。
0244nobodyさん02/10/23 00:41ID:???
>>234
>>226を叩くひまがあれば、英語を読めない人のために和訳をつけてやれよ。
変な訓示よりもそっちのほうが役にたつだろ。
0245nobodyさん02/10/23 01:04ID:???
つーか、英語読めずにプログラミングやってるのか…?
0246nobodyさん02/10/23 01:18ID:???
>>244
「それとも単なるかっこつけですか?」なんて事書いてる馬鹿に
マジレスしてる時点で、>>234は脳みそがイカレてると思われ。
0247nobodyさん02/10/23 01:52ID:???
>>245

> つーか、英語読めずにプログラミングやってるのか…?

こういうこと言う人けっこういるけど
よく聞いてみるとほとんどの奴は和英ソフトとかに頼ってんだよね
実際には単語をちょいちょいくらいしか読めないやつがね、多いね。
0248nobodyさん02/10/23 02:26ID:???
> つーか、英語読めずにプログラミングやってるのか…?

すいません、foreachとかcryptとか
意味すら調べないまま認証制のCGI自作して使ってます。
0249nobodyさん02/10/23 04:57ID:???
>>247-248
こういうこと言う人もけっこういる罠
0250nobodyさん02/10/23 05:04ID:???
>>241
perlはEUCで書きましょうや。そうすりゃjcodeなくても化けないし
0251nobodyさん02/10/23 09:19ID:???
>>248
foreach, cryptみたいな基本的な単語でさえ、これか… という
感じはあるけど、せめてMLとかできちんとエラーが表示されて
いるのに、「わけのわからないエラーが出て」みたいなやつは
逝ってよいと思う。
0252nobodyさん02/10/23 10:10ID:???
>>250
フリーのCGI配布サイトって半分以上がs-jisで書いてますよね。
おそらくそういう人たちが模範的にEUCで書いてくれれば
perlを覚えてみようという人たちも真似てEUCで書くと思うんですよね。
あ、もしかして、フリーのサイトは配布用は初心者が開いて文字化けしてる、と混乱しないように
s-jisで書いてくれてるんですかね。
0253nobodyさん02/10/23 11:13ID:???

LWPでHTTP要求したときに一定時間応答がなかったらタイムアウト
させたいのですが、どうしたらいいですか?
0254nobodyさん02/10/23 12:15ID:???
>>253
% su - root
% shutdown -r now
0255nobodyさん02/10/23 13:22ID:???
<input type="checkbox" name="okasi" value="poteti">ポテチ</input>
<input type="checkbox" name="okasi" value="tyoko">チョコ</input>
こうやってチェックボックスがあって、nameが同じ時はどうやって値を取得したらいいですか。
getで引数を確認したら、?okasi=poteti&okasi=tyoko こうでした。
$buffer = $ENV{'QUERY_STRING'};
local(@pairs) = split(/&/,$buffer);
foreach $pair(@pairs){
 local($name,$value) = split(/=/,$pair);
 $FORM{$name} = $value;
}
@FORM;

これにどんな手を加えればいいんでしょうか。
0256nobodyさん02/10/23 13:27ID:???
>>255
nameが同じってのを何とか汁!!
0257nobodyさん02/10/23 13:36ID:???
>255
やり方はあるけど、>256の言う方が正しい。
0258nobodyさん02/10/23 13:41ID:???
>>256-257
確かにnameを別々のにすればなんの問題も無いんですけど、
普通チェックボックスってグループが同じだとnameは同じですよね?
やり方があるのなら教えて欲しいんですけど。
■ このスレッドは過去ログ倉庫に格納されています