【Perl上級者コーナーPart01】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/22 19:21ID:V3u7Ppd00348nobodyさん
03/10/19 00:32ID:???0349nobodyさん
03/10/26 13:08ID:???0350nobodyさん
03/12/08 19:42ID:???0351nobodyさん
03/12/08 19:53ID:???0352nobodyさん
03/12/08 20:14ID:vvyCyc4J0353nobodyさん
03/12/17 18:59ID:???0354ActivePerl
03/12/18 16:35ID:pwpA9WDo(SMTP: Microsoft Exchange Internet Mail Service Version 5.5.2653.13)
モジュールNet::SMTPを使用して、CGIのメール送信フォームで入力されたものを送信
するようになっています。
そこで、問題なのですが、
メールのFrom:に、"氏名 <[email protected]>"というような形式を使用すると、
送信に失敗してしまいます。メールアドレスが裸の状態だと、正しく送信されます。
文字のエンコード方法がいけないのかと思い、"Name <[email protected]>"という
ように、ASCIIのみにしても送信に失敗してしまいます。
Fromに設定できる、メールアドレスのドメインが限定されているかもしれないので、
メールアドレスをサーバのドメインに合わせましたが、それでもだめでした。
また、To:に複数の送信者を設定(カンマ区切り)した場合も、同様な問題が発生しました。
どなたか、解決方法をご存知でしたら、ご教授ください。よろしくお願いします!!
0355nobodyさん
03/12/18 17:11ID:???失敗の仕方もロクに書かずに助言を求める馬鹿がいるスレはここですか?
0356nobodyさん
03/12/18 17:15ID:???funny user@domain 間違い
"funny user"@domain 正しい, 推奨
<"funny user"@domain> OK
0357nobodyさん
03/12/21 14:48ID:???0359nobodyさん
03/12/21 19:02ID:???0360nobodyさん
03/12/21 19:20ID:???>>354は「CGI習熟度:pro」だそうだw
0361nobodyさん
03/12/21 22:39ID:2JyNmFzn0362nobodyさん
03/12/23 00:07ID:yNpUOjfEPerlプログラムを実行する際に
フォームデータを引数として与えて
実行する方法を誰か教えてもらえないでしょうか?
教えてもらったんですけど使い方
忘れちゃいました
0363nobodyさん
03/12/23 00:08ID:???0365nobodyさん
03/12/23 21:20ID:B/ouqWjS2ちゃんねるにはつわものは
いないんですか?
いると思ったのにがっかりだ。
明日、教えてくれたシステム部長
にもう一度聞くから良いよ
0366nobodyさん
03/12/24 00:37ID:???マルチすんなっつってんだろ。
ルールを守らない奴になんで親切にしなきゃならんのよ。
マジで自分のことしか考えてないDQNだな。
0368nobodyさん
03/12/24 16:33ID:???0369nobodyさん
03/12/24 20:16ID:sC5vpZJYお前ぶっ飛ばすぞ!!!
顔が見えないからっていい気になりやがって。
0371nobodyさん
03/12/25 22:51ID:GW3KvJ+k童貞ではありません。
0372nobodyさん
03/12/26 01:29ID:???最初にいい気になってるのはどう見てもおまえなんだがな。
自分が質問者としてのルールを守っているかどうか、少しは考えたのか?
0373nobodyさん
04/01/13 19:31ID:hDqA/G+I分かる方がいらっしゃらないようなので、ここでもお願いします。もう誰もいない?
ファイルハンドラを変数で持つことは可能でしょうか?
my $p;
open($p, "test");
こんな感じで。
-----------------------------------------------
my $p="a"; としてからopenすると何故か動くのですが、今度は、use strict
の場合に、
#!/usr/bin/perl -w
use strict;
my $p="a";
open($p, "test");
こうすると、以下のように怒られます(実行ファイルは./aです)。
Can't use string ("a") as a symbol ref while "strict refs" in use at ./a line 4.
何故なんでしょうか?
(そもそもファイルハンドラの定義がよく分からないのですが。ポインタ?)
0374hjg
04/01/13 20:01ID:DzsVlZbM"How can I use a filehandle indirectly?"
0375hjg
04/01/13 20:03ID:DzsVlZbM0377nobodyさん
04/01/13 20:30ID:hDqA/G+I失礼しました。探してみます。
0378hjg
04/01/13 21:55ID:BCJlfFc6英語読めんか。
洲万買ったな。
0379nobodyさん
04/01/16 01:28ID:???どんなコメントを書けば見やすいのか研究中。
とりあえず、
#==========#
# 処理名 #
#==========#
とか、
#>>>>> 処理名
とか書いてる。
一応それなりに目立つし、全部 # で書くとウザイから
###########
# 処理名 #
###########
こんなんとか。
見にくい。。。
みんなはどうだ?チェキラ
0380nobodyさん
04/01/16 01:50ID:???0381nobodyさん
04/01/16 01:58ID:???## ■以下サブルーチン■
######################################################
0382nobodyさん
04/01/16 02:00ID:???## ■以下サブルーチン■
##====================================================##
0383ヽ(´ー`)ノ
04/01/16 11:53ID:???POD 使えば?
コメント使った書き方って、見にくいし、他の人のコードと統一性が取れない。
整形するの面倒だし、マニュアルも別に書かないといかん。
じゃあメリットがあるかっていうと特別あるわけじゃない。デメリットだけ。
まともなエディタを使えば、POD のところだけ色も変わるから見栄えを気にする必要もない。
あと俺の主観だけども、出来の悪い CGI のコード見てるようで、醜い(シャレじゃなく)。
すでにあるモノを再発明することないよ。更に良いものが作れるのなら話は別だけど。
0384nobodyさん
04/01/16 17:05ID:???そりゃPODにこしたことはない罠。
ちょっとしたコメントにセンスを光らせたい罠
別に誰が見るわけでもないんだけどさ。
0385nobodyさん
04/01/16 19:51ID:???罫線くらいにしておいた方がいいんじゃない?
0386nobodyさん
04/01/17 20:40ID:???0387nobodyさん
04/01/17 22:55ID:???# こめんと
#
シンプルな方がよし。かも?
0389nobodyさん
04/01/18 15:50ID:???#**************************#
#. 大見出 ****#
#**************************#
#--------------------------#
#..中見出 ----#
#--------------------------#
#--------------------------#
#... 小見出
# その他
のように、階層に応じて分けるのがいい。ちなみに、「#.」、
「#..」、「#...」の部分は、テキストエディタに「アウトライン」
機能があれば、その見出し行の識別文字列に設定するとよい。
0390nobodyさん
04/01/20 01:24ID:???ソフトバンクより発売のCGI/Perlハンドブックという本で
http://up.atnifty.com/upload/file/20040120011644_.txt
こういったアンケート収集スクリプトがあるのですが
これを実行してもアンケートが追加されません。
どこが間違ってるのでしょうか?
0395nobodyさん
04/02/07 10:43ID:???0396nobodyさん
04/03/13 22:04ID:???0397nobodyさん
04/04/03 08:00ID:???0398nobodyさん
04/05/09 21:27ID:???0399ぺー
04/05/11 08:07ID:wDvsqpzOhttp://ouroboros.game-host.org/index.html
0400nobodyさん
04/05/12 16:29ID:???小言で400get.
0401nobodyさん
04/06/08 12:32ID:svJNgPf4gnupg等のコマンドを使って暗号化したものを、
sendmailで送るイメージでいるんですが、
この辺をやってくれるモジュールとかってあるんですかね?
0403388
04/06/08 22:17ID:???どういたまして。
ちなみに今は
タブと■を組み合わせて見やすくしてる。
>>401
メールを受け取る人が一定なら、
その人のマシンで公開鍵と秘密鍵を作って、
その公開鍵を使ってサーバで暗号化する必要がある??
あんま詳しくないから興味あるかも。
0404nobodyさん
04/06/08 23:34ID:???ttp://search.cpan.org/
0405きのこる先生 ◆FmKame.i.E
04/06/10 07:13ID:???/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
| (;゚Д゚) < 今まで様々な404を見てきたが
|(ノ |) お前が一番coolですね
| |
ヽ _ノ
U"U
0407nobodyさん
2005/11/14(月) 23:07:11ID:???=の前後に空白行がないとpodparserでXHTML化したときにうまく読んでくれないし。
どうよ?
0408nobodyさん
2005/12/06(火) 03:38:10ID:rOcNbm6R0409nobodyさん
2005/12/28(水) 12:54:03ID:RY3kh/X5ここのMulti Wing BBSをDLして設定してうpまで
終わったんですが、メインのwingmulti.cgiにアクセスして
設定したパスワードを入力しても、パスワードエラーと出ます。
何度設定しなおしてもパスワードエラーに引っかかるんですが
これって単なるバグでしょうか?
分かる方いたら、試してもらえませんか?
0412nobodyさん
2005/12/28(水) 14:52:10ID:???0413nobodyさん
2006/02/05(日) 07:47:15ID:VJ915kfQ0.5から::Schemaに移行とかなんとか。
0414nobodyさん
2006/10/08(日) 01:37:17ID:???$tripkey = "#istrip";
$tripkey = substr($tripkey,1,);
$salt = substr($tripkey.'H.',1,2);
$salt =~ s/[^\.-z]/\./go;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$trip = crypt($tripkey,$salt);
$trip = substr($trip,-10);
$trip = '◆'.$trip;
print "$trip";
って書かれてるが
マルチバイト文字をcryptに入れるとエラーになるんだが。
0415414
2006/10/08(日) 23:31:27ID:LWtT3SlwPerl5.8.8だからなのか?
誰か教えてくれねーか?
0417414
2006/10/09(月) 00:08:25ID:b33Q2pbi0418414
2006/10/09(月) 00:09:17ID:b33Q2pbiSJISに変換して入れてみるか。
0419414 ◆SQ2Wyjdi7M
2006/10/09(月) 00:13:33ID:b33Q2pbi0420414 ◆SQ2Wyjdi7M
2006/10/09(月) 00:26:29ID:b33Q2pbiしなくてもいいだろうが、スレつかっておいて自己解決して放置っつースタイルが嫌いなので。
俺の場合。
出力をXHTMLに準拠させたいが、ファイルの先頭でXML宣言をするとIEで厄介なので、それを避けるために出力をUTF8にしたかった。
そんなときにPerl5.8は内部処理とかUTF8にしたぞ的なことを知ったので、use utf8;とかしてコードを書いていたわけだが、
UTF8のマルチバイト文字列をcrypt関数の引数として与えるとエラーが出るという問題にあった。
まぁ、crypt使う理由が2ch互換のトリップを生成することだったわけで、そのときにUTF8でcrypt使用としてた辺りがあほなんだが、
1日考えるのやめてカラオケとか逝ってたら、脳みそすっきりしてこのことに気づいたので解決した。
そんでUTF8→SJIS変換したら、すんなり成功した。
参考までにソース載せると
package パッケージ名;
use utf8;
use Encode;
return 1;
sub makeTrip{ # 引数 = \$tripkey(utf8)
my $tripkey = $_[0];
my $salt;
$$tripkey = encode('shiftjis', $$tripkey);
$salt = substr($$tripkey.'H.',1,2);
$salt =~ s/[^\.-z]/\./go;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$$tripkey = crypt($$tripkey,$salt);
$$tripkey = substr($$tripkey,-10);
return;
}
0423nobodyさん
2006/10/12(木) 14:25:18ID:???BEGIN {
$vo = '栄昇';
$g = '優';
$pf = '等';
}
コードに入れてない奴は今すぐ入れたほうが良いよ、平和になるし
0424nobodyさん
2006/10/12(木) 16:16:15ID:???0425nobodyさん
2006/10/14(土) 00:22:11ID:???Gimpって画像処理ソフト、CGIから操るのに成功した人っています?
ImageMagickを使ってみて、なかなか面白いんだけど、文字の加工は貧弱なので
Gimp試してみたものの、全然動かないのです。
0427nobodyさん
2006/10/14(土) 00:38:50ID:???0428nobodyさん
2006/11/14(火) 14:47:50ID:M1pI9RkNでは上級者的指摘を
use utf8環境下でsubstrで2文字取り出すというのがどういう意味なのか
分からないのがお前の敗因。
我々上級者はuse utf8はuse byte;は併せて覚えている。
つ〜かcryptの第2引数は初めの2バイト以外無視する仕様だから
わざわざsubstrしてる時点で中級者とも言えない。
って、全くテストもしないで亀レスだけしてみる。
0429nobodyさん
2006/11/15(水) 07:29:44ID:???0430nobodyさん
2007/01/24(水) 20:02:36ID:???簡単にお金稼ぎ!!!
以下の手順でやれば、無料でお金稼ぎができます。
企業も広告の宣伝になるから、お金をくれるわけです。
最初の1日目で 2000 円〜3000 円 は確実に稼げます。
実際の作業は数十分程度、1時間はかかりません。
(1) http://pointdream.jp/member_regist.aspx?LinkID=577583#.2ch.net/
↑このアドレスからサイトに行く。
(2)無料会員登録をする。
※フリーメールアドレスでもOK。
(3)ポイントを稼ぎます。
懸賞の応募や無料会員登録をすればするほど、
ポイントが貰えます。
(4) 友達を増やせば、後は何もしなくても
定期的に、友達還元ポイントがドッサリ入ってきます。
これで現金を稼ぐといいですよ!!!
登録(応募)はこちらから↓
http://pointdream.jp/member_regist.aspx?LinkID=577583#.2ch.net/
0431nobodyさん
2007/02/10(土) 20:43:16ID:???簡単にお金稼ぎ!!!
以下の手順でやれば、無料でお金稼ぎができます。
企業も広告の宣伝になるから、お金をくれるわけです。
最初の1日目で 2000 円〜3000 円 は確実に稼げます。
実際の作業は数十分程度、1時間はかかりません。
(1) http://blackjack.lxl.jp/#.2ch.net
↑このアドレスからサイトに行く。
(2) ゲットマネー登録サイトに移動するので、
そこで無料会員登録をする。
※フリーメールアドレスでもOK。
(3)ポイントを稼ぎます。
懸賞の応募や無料会員登録をすればするほど、
ポイントが貰えます。
他にも沢山種類があるので、1日目で
約 20000 ポイントは GET できます。
(4) 10000 ポイントから、現金に交換できます。
(5)キャッシュバックという所がありますので、
そこから交換をしましょう。
これで現金を稼ぐといいですよ!!!
無料会員登録はこちらから↓
http://blackjack.lxl.jp/#.2ch.net
0432nobodyさん
2007/03/26(月) 17:41:13ID:3MEiX5hyCPANで落とせるNet::SMTP_authってモジュールがあって、それはNet::SMTPのサブクラスになっていて
ソースの中ではauth()とauth_types()のオーバーライドしかしていない。
SMTP_authでメール送信するには587番ポート使う筈で、それはnew()したときの
最初のサーバへの通信で既に「587を使う」と指定しないといけないと思うのだけど
どこをどう探してもその記述が見つからない。
NET::Configの中かなぁと思ったのだけど、それも違うっぽい。
どうやって587ポートを指定させているか、誰かご存知の方いませんか?
SMTP_authモジュールを使いたくて色々調べていたらこの問題に行き着いて、どうにも納得できなくて気持ち悪いので
ヒントだけでも教えていただけると嬉しいです。
0433nobodyさん
2007/03/26(月) 22:13:50ID:sZyxWGW4Authen::SASLで何やってるかわかんないけど、ポート指定してるっぽいのはここだね。
my $conn = $sasl->client_new("smtp", $host);#, "noplaintext noanonymous");
0434nobodyさん
2007/03/26(月) 23:55:40ID:???> SMTP_authでメール送信するには587番ポート使う筈
これ間違い。
○ submission portを使用するときはSMTP AUTHが必要。
0435nobodyさん
2007/03/27(火) 20:09:45ID:???Net::SMTPなら、こんなんじゃなかったっけ
0436432
2007/03/30(金) 15:34:09ID:???ありがとうございます。
まだ色々分かって無いですが、また調べてみようと思います。
>>434
まだ理解が足りていなかったみたいです
ご指摘ありがとうございます。
>>435
そうですよね、やっぱし。
でも587というポート番号を指定してる場所がどこにもなくて「あれ?おかしくね?」
と感じて調べ始めたら泥沼に、、、orz
0437nobodyさん
2007/04/02(月) 21:36:14ID:???ポートは自分で設定する必要があるよ。
0438nobodyさん
2007/06/19(火) 22:29:14ID:Ye7oVo0eフォームを作成し、大量の文字を入力してメールを送信するようにすると、
500文字目辺りが文字化けしてしまいます。
その部分から一定の周期で文字化けが発生しています。
300文字程度までなら全然平気なのですが。。
あとそのメールのログをとっているんですけどログの方は大量に文字をうっても問題なく蓄積されていました。
この事からプログラム的な問題ではなく、
鯖にインストールされている sendmail が怪しいかと思うのですが、
バージョンが古いとこのような問題が起こる等、何らかの情報はご存知ないでしょうか??
宜しくお願い致します。
0441nobodyさん
2007/06/20(水) 01:26:40ID:???一行に500文字が入っているの?
SMTPの仕様だか、実装だかに一行の最大文字数みたいな制限があったはず。
途中に改行入れていて500文字だったらスマン、わからん。
0443438
2007/06/20(水) 10:56:39ID:???どうやらビンゴのようです。
改行入れると化けません。
SMTPの仕様でしたか。。。
この仕様について色々と調べてみたいと思います。
大変参考になりました、ありがとうございます!
RFC2822によれば、CRLFを入れて1000文字 (オクテット) ですね。
Sendmailでは長い行を自動的に分割します。
500文字というのはShift_JISで書かれた日本語での換算かな?
…とここまで書いて1ヶ月前の記事ってのに気づいた。まあいいや。
0446nobodyさん
2007/08/19(日) 05:01:02ID:LoxscrBMMTAはqmailでvpopmailでバーチャルドメイン運用してます。
root権限もあります。
perlからの会員登録と同時にメールアカウント作成みたいなもんをしたいんですが。
0447446
2007/08/21(火) 17:15:45ID:HBIrwO1t助けておくれ><;
0448nobodyさん
2007/08/21(火) 19:24:10ID:???外部コマンドを利用するか等で実現方法が変わる。
外部コマンド使う場合
・パイプ、system関数 or バッククォートで外部コマンドを実行
・uidをrootにしsetuidする
・強制的にテイントモードになるのでサニタイズする
ここら辺注意すれば比較的簡単に出来ると思う。
■ このスレッドは過去ログ倉庫に格納されています