トップページ⇒php
984コメント309KB

【Perl】初心者コーナーPart11

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん02/03/27 12:53ID:wAXxxOxP
 
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

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

参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
CGIの質問はこちら【CGIだけどなんか質問ある Pert 5.01 】
http://pc.2ch.net/test/read.cgi/php/1015127347/l50
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/

過去ログ、その他の役立ち情報は>>2-10を見よう。
093092602/04/26 19:48ID:???
sub treelist {
$c .= $n eq "└" ? " " : "│" if($n);

while(@{$restree{$log}}){
@data=split(/\t/,$list{$log == 0 ? shift(@{$restree{$log}}) : pop(@{$restree{$log}})});

if($data[1] != 0){$n= @{$restree{$log}} ? "├" : "└";}
if($n eq "├"){$o = $data[1] == $log ? "│" : "";}
elsif($n eq "└"){$o = $data[1] == $log ? " │" : "  ";}

print "$data[0]:$data[3] [$data[4]] $data[6]";
if($data[1] == "0" && $data[1] != $log){$sen = "<br>|   ";}
else{$sen = "<br>$c$o"."   ";}
print"$sen$sen";
$data[7] =~ s/<br>/$sen/g;
print "$sen<nobr>$data[7]</nobr>$sen";
&treelist($data[0],$c,$n,$o,$size - 2);
}
}

へぼなコードでほんとにすいません。おねがいします。
0931pear ◆PeArra/s 02/04/26 20:14ID:???
>>930
ごめんなさいわかりません。
0932nobodyさん02/04/26 20:41ID:???
よくそんな汚いコードで頼みに来るねえ・・・
0933nobodyさん02/04/26 21:03ID:???
>>932
初心者スレなんだしそんなこといっちゃ身もふたもないと思われ
0934nobodyさん02/04/26 21:25ID:???
@dataのまま判りやすい名前をつけようともせず、
人に理解してもらおうという気がないようだと思っただけだよ。
@{$restree{$log}}が何かも書かずにさ。
093590302/04/26 23:24ID:???
すみません、聞き方が悪かったみたいです。

system("/usr/local/bin/gpg -r D44EC5AA -o bbbb -ea aaaa");

とやると、エラーはでてきませんが、bbbbファイルが作成されません、
GnuPGはサーバーの/usr/local/bin/gpgにインストールされてますので、
telnet上の操作では、暗号化ファイルbbbbは問題なく作成されます。
問題は違うとこにあるのでしょうか?

元々やりたかったことは、フォームメールに入力されたデータを
暗号化されたメールとして受け取りたいということです。
解説ページなんてたくさんあるだろうと思って、暗号、PGP、GPG、GnuPG、フォーム、
他にもいろいろ検索ワードを試しましたが、それらしいページが見つかりません。

ひとつだけみつけましたがPHPでした。
http://www.hotwired.co.jp/webmonkey/2000/20/index3a.html

もし対処法や解説ページがありましたら、よろしくお願いいたします。
0936nobodyさん02/04/27 00:25ID:???
>>930
@{$restree{$log}}がなんだかはシランが、ツリー掲示板なら
ログがあるはずだから、そのログを精査して子記事のあるものに
フラッグつけろ。
で、whileかかってる記事番号の処理の中でフラッグがあれば
そいつの下に線をたらせばいんじゃないかい?
0937nobodyさん02/04/27 00:30ID:???
>>935
system()後の $? はどうなってる?
0938nobodyさん02/04/27 00:33ID:???
>>932
汚いだなんだ言う前に手本の一つでも見せろや?暇なのか?
0939nobodyさん02/04/27 01:15ID:pZywQtFX
perlでDOMを扱えるんでしょうか?
ともかく分からないので、質問自体が間違ってるかもしれませんが。
0940nobodyさん02/04/27 01:23ID:???
perlでZAKUを扱えるんでしょうか?
ともかく分からないので、質問自体が間違ってるかもしれませんが。
0941nobodyさん02/04/27 01:42ID:???
とりあえず>>930は変数の意味を教えてくれ。(まだ見ているなら)
でないとさすがにわからんと思うぞ。
0942nobodyさん02/04/27 02:03ID:???
>>939
XML::DOM、XML::LibXML、XML::GDOMEなどなど。XML関係は腐るほどあるけど。
思うに一般のプロバイダーのサーバーではインストールされていないかと。

>>940
おもろい。
094390302/04/27 02:09ID:???
>937

$?の中は512となってますが。

できあいのCGIを設置したり、ちょびっと変えるぐらいしか
やったことない身には、さっぱりわかんないです。
0944nobodyさん02/04/27 02:31ID:???
>>943
CGIからファイル作れるように、ディレクトリのパーミッションちゃんと開けてる?
0945nobodyさん02/04/27 02:44ID:???
>>939
だうんろーど おんりー めんばー?
Perlで人を扱うことはできません
0946nobodyさん02/04/27 02:53ID:???
>>942
モジュールも鯖にあげてパス通す、というのは出来ない?知らんけど。
#/usr/bin/perl -I~/cgi-bin/
みたいのを1行目にするとか。
094790302/04/27 02:59ID:???
>944

パーミッションは問題ないはずなんですが、、、
全開放で試してもダメでした。

海外のページを探してみたら、GPG対応のフォームメールが
いくつか見つかりました。これを改造して使えないかなと中を見てるとこです。
日本語の解説ページもたくさんありそうなもんですがねぇ、
関連ワードで国内を検索しても、ショッピングサイトしかでてこないです。
094894402/04/27 03:22ID:???
>>947
スクリプトが、そのsystem()の行まで辿りつく前にエラーになってる可能性は
ないかな?
実行パーミッションがついてないとか、perlのpathが間違ってるとか。
あと、telnetでログインしたときと、CGIで叩いた時の $PATH が
違うという可能性か、入力ファイルが実は無かったとか。うーむ。
推測だらけですまん。
094990302/04/27 03:43ID:???
>948
親切なレスありがとうございます。
pathは間違ってないですねぇ、、、ファイルも存在してます。
実行パーミッションもついてます。う〜ん??
簡単なテストで、こんなのやってみました。

#!/usr/local/bin/perl

system("/usr/local/bin/gpg -r D44ECAAA -o bbbb -ea aaaa");
print "Content-type: text/html\n\n";
print "<HTML><BODY>\n";
print "暗号化終了<BR>";
print "</BODY></HTML>\n";
exit;

エラーはでないですが、bbbbファイルが作られません、
絶対パスでファイルを指定してもダメ。
すごい初歩的な思い違いをしてるような気もしますが、、、。
095094402/04/27 03:59ID:???
>>949
つーことは、なんとなーくgpgの実行時にエラーが出てる予感。
print "Content-type: text/html\n\n";
print `/usr/local/bin/gpg -r D44ECAAA -o bbbb -ea aaaa`;
てな感じで、エラー表示されないかなぁ
095190302/04/27 04:39ID:???
>944
こんな時間までお付き合いいただいて恐縮です。

やってみましたが空白ページでした、は〜ぁ。
試しに自分のPCにGPG、AN HTTP、ActivePerlを入れてテストしたら
無事に暗号化ファイルが作られました。

う〜ん、何なんでしょ?
関係のあるファイル、ディレクトリを
777にしちゃいましたが動かないし。
0952nobodyさん02/04/27 04:40ID:???
>>946
でもXML::DOMもXML::LibXMLもXML::GDOMEもCライブラリが必要でしょ
(expat,libxml2)?なんかそこまでするのもなぁ、と。できないことは
なかろうが。
0953nobodyさん02/04/27 04:48ID:o5qoi2dC
例えば5*1.3を実行すると6.5になりますよね?
この少数点以下を切り捨てにしたい場合はどうすればいいんでしょうか?
0954nobodyさん02/04/27 04:52ID:???
perldoc -f int
perldoc -f sprintf

my $foo = sprintf( '%d', 5 * 1.3 );
0955nobodyさん02/04/27 05:27ID:???
>>953
>954とかuse integer;とか
095690302/04/27 08:02ID:???
>944

問題はGPGの環境変数の設定にあったようです、
$ENVで設定すればOKでした。
お付き合いいただいて、本当にありがとうございました。
0957Atsuhi ◆UvChluUE 02/04/27 10:08ID:vZVa5O3I
<FORM action="test.cgi" method=POST>
<input type=text name=2ch></form>

GETorPOSTフォームから送信された内容を、CGI側の変数$in{'2ch'}に格納するにはどうしたらいいんでしょう。
0958nobodyさん02/04/27 10:52ID:???
>>957
>>918-920
0959Atsuhi02/04/27 15:38ID:2uDiaJDy
>>958
その方法試しましたが、
なぜか、フォームから送信された内容を処理できません。
cgi-lib.plも使いたくないです
0960nobodyさん02/04/27 15:48ID:???
>>959
配布されてる掲示板スクリプトのフォームから受け取ったデータを
処理してるとこみてみ。
0961nobodyさん02/04/27 16:06ID:???
%in = map{
    tr/+/ /;
    s/%(..)/pack"H2",$1/eg;
    s/</&lt;/g;
    s/>/&gt;/g;
    s/"/&quot;/g;
    $_
} split/[&=]/, do{
    uc $ENV{REQUEST_METHOD} eq 'POST'
    ? do{ read STDIN, $_, $ENV{CONTENT_LENGTH}; $_}
    : $ENV{QUERY_STRING};
0962nobodyさん02/04/27 16:07ID:???
>>961
おっと、中閉じカッコを一個忘れちまったい。
0963nobodyさん02/04/27 16:23ID:AgrfpFbJ
フォームでurlを受け取って、そのurlにredirectしようと考えたのですが、
その際にrefererを空にしたいと考えてます。なぜだか。

何かよい方法ありませんか?
0964nobodyさん02/04/27 16:34ID:???
>>963
metaタグのRefresh使え

つか過去ログ嫁
0965nobodyさん02/04/27 16:38ID:AgrfpFbJ
>>964
すみません。反省します。
0966nobodyさん02/04/27 19:52ID:???
Dream★ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ぐんじp
0967nobodyさん02/04/27 21:53ID:sDcizlcB
どっかのサイトのhtmlファイル等を保存するスクリプトを作りたいのですが。
どーやりますか?
0968nobodyさん02/04/27 22:18ID:???
>>967
ソケット使うんじゃないの
0969nobodyさん02/04/27 22:22ID:sDcizlcB
>>968
マジカヨ!!ソケットって何??逝ってきます
0970nobodyさん02/04/27 22:28ID:???
>969 LWP::Simple
0971nobodyさん02/04/27 22:40ID:sDcizlcB
>>970
???
0972nobodyさん02/04/27 22:47ID:???
自分で調べる気がない人には無理です。
0973nobodyさん02/04/27 22:50ID:sDcizlcB
>>972
すこし分かりました。
できそうです。
0974nobodyさん02/04/27 22:56ID:???
>971 #ゴルァ!ちったぁ自分で調べんかい!
#/usr/bin/perl
use LWP::Simple;
$url='www.somewhere.com/index.html'
$file='local.html'
LWP::Simple::mirror( $url, $file );
0975nobodyさん02/04/27 23:04ID:M0a39fTI
掲示板に書き込んだとき、投稿者のHPへ自動的にリンクする事が出来ますよね。
あの事でお聞きしたい事があるんですが、このスレで聞いても良いんでしょうか?

htmlだけじゃなく、cgiなどの方も関係してるのでこのスレが妥当だと思うんですが、
一応確認したくて。
0976nobodyさん02/04/27 23:08ID:???
>>975
質問の内容によるかと。
っていうか最初から質問かけYO!スレが無駄に消費される。
0977nobodyさん02/04/27 23:08ID:???
>>975
何でしょう?
0978nobodyさん02/04/27 23:09ID:???
そろそろ誰か次スレ立てて。
097997502/04/27 23:17ID:M0a39fTI
>>976
すみません、無駄にしてしまいました。
どうせなので、私が次スレ立てさせて頂きますね。
0980nobodyさん02/04/27 23:17ID:???
テンプレ>>1-4以外に何かつけたすものあるかな
0981nobodyさん02/04/27 23:18ID:???
次スレ part12
http://pc.2ch.net/test/read.cgi/php/1019917048/
0982nobodyさん02/04/27 23:19ID:???
あ、もう立ったか。

【Perl】初心者コーナー Part12
http://pc.2ch.net/test/read.cgi/php/1019917048/
098397502/04/27 23:21ID:M0a39fTI
ごめん、Perl関係なかったデス。CGIダタ。
098497502/04/27 23:22ID:???
sage忘れるし・・・。鬱。
レス数が950を超えています。1000を超えると書き込みができなくなります。