Perlコーディング初心者質問スレ Part 60
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/03(木) 23:51:12ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >2 以降
前スレ http://pc11.2ch.net/test/read.cgi/php/1234752149/
0555550
2010/01/30(土) 06:23:33ID:???秀丸から直接コマンド打ってたのですが、UTF8のファイルを開いててもsjisとして扱ってくれてるくさい?です。
秀丸で打ったコマンド → perl -wc <con >con
#↑今開いてる秀丸タブの内容を引数とし、出力結果を新規タブに出力しろと言うコマンド
UTF8として認識させた ー (伸ばす棒)を、
q[ー]; で、UTF8ファイルでもエラーになります。
もちろん 'ー' だとコンパイルされます。
ー はsjisで815b、 ] は5b なので、たぶん断定です。
ただの偶然で違うかもしれませんが、もうめんどいのでこれ以上調べません。
UTF8ファイルからまさかsjisの文字コード問題でハマるとはね。
秀丸死ね。
0556nobodyさん
2010/01/30(土) 06:27:31ID:???んな後出しをするから「内部処理がCP932なんじゃね?」と書いてもらえない
0558nobodyさん
2010/01/30(土) 09:25:08ID:???ここのAPI使う
http://www.geocoding.jp/
0559nobodyさん
2010/02/01(月) 13:06:09ID:???何故WindowsからはNGなのでしょうか?
Winが触ったファイルを回復させる方法は、nkfしか知らないのですが・・・
0560nobodyさん
2010/02/01(月) 13:23:02ID:???いいんじゃないかなぁ
0561nobodyさん
2010/02/01(月) 13:41:59ID:???よく考えたらレンタルサーバにFTPとかでUPする場合、
Win側のテキストエディタで文字コードと改行コード指定するしかないから、
サーバ側の設定の問題かと思ったのですが。
> IIS+VBかなんかに乗り換えた方が
Perl → PHPに乗り換える方が現実的なような。
まぁPerlが何となく好きなんで、もうちょいPuTTY+vimで頑張りますよ。。。
0562nobodyさん
2010/02/01(月) 14:44:14ID:???0563nobodyさん
2010/02/01(月) 19:10:33ID:???0564nobodyさん
2010/02/01(月) 23:00:00ID:???Winのエディタで作成してFTPでうp → Winのエディタで動くってサーバどーなってんの?
鯖のシステムの文字コードをcp932にしたらおk^^
って話ならお断りしますが。
0565nobodyさん
2010/02/02(火) 10:41:56ID:???LINUXの共有フォルダをドライブでLドラとかにマウントして
タスクスケジュール使って定期的にCドラからLドラにファイルをcpしたら?
あと、windowsにCygwinとかのVM使ってLINUXとして動かす方法もある。
0566nobodyさん
2010/02/02(火) 10:46:28ID:???あと、改行コードがwinだと<CR><LF>
Linuxだと<LF>つーのは当然知ってるよね?
改行コードが違っててLINUX側では壊れたように認識されるってのも
よくある話なので、WIN側で保存する際は間違っても「メモ帳」とか使わない
0567nobodyさん
2010/02/03(水) 01:38:18ID:???0568nobodyさん
2010/02/05(金) 23:38:04ID:???調べてもなかなかケースが見つからないので質問をさせていただきました。
ページA内のボタンを押すと、ページBに飛ぶようにしたいです。
その際、ページBを表示するサブルーチンに、ページAの引数の値を
渡すにはどのようにすればいいのでしょうか?
0569nobodyさん
2010/02/05(金) 23:39:53ID:???0570nobodyさん
2010/02/06(土) 00:10:45ID:???フォーム+CGIの話だとは思うが・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
0571nobodyさん
2010/02/06(土) 00:15:59ID:???hiddenで仕込んでおけば。
0572nobodyさん
2010/02/06(土) 04:45:05ID:???twitterで叫んでも爆発しませんでした?
0573568
2010/02/06(土) 17:28:41ID:???cgiのお話です。書き忘れてしまいました。
・・ごめんなさい。
>>571
教えていただいてありがとうございました。
つまり
<input type="hidden" name="***" value="ページBに渡したい引数">
を併記すればいいということですよね?
今試せないのですが、月曜日に学校に行ったらさっそく
試してみようと思います。
ありがとうございました。
0574nobodyさん
2010/02/06(土) 22:25:09ID:???0576nobodyさん
2010/02/07(日) 21:02:36ID:???飛んで来たものが @_ に入ってる状態まで持って行かないと shift では取れないよ。
それよりページAもページBも同一スクリプトの出力だったりするのかな。
0577568
2010/02/07(日) 23:15:29ID:???はい。ページはすべて同一スクリプトです。
各ページはそれぞれサブルーチンに記載しています。
Sub PageA内の<input type="submit" name="to_pageb" value="ページBへ">
でボタンを作り、別記のif($CGI->param("to_pageb")){PageB($CGI);}
というif文でSub PageBに移動させています。
で、Sub PageB内で、my $cgi=shift; $a=shift;で
$aに値をとりだす・・・と考えているのですが、間違ってますか?
全然自信がなくて恥ずかしいのですが
変なことをしてしまっているかもしれません・・・。
0578nobodyさん
2010/02/07(日) 23:19:11ID:???0579nobodyさん
2010/02/07(日) 23:31:29ID:???use strict;
use CGI;
main();
exit;
sub main(){
my $q = CGI->new();
if($q->param('to_pagea')){
pagea($q);
}
elsif($q->param('to_pageb')){
pageb($q);
}
}
sub pagea{
print "Content-Type: text/html;\n\n";
print <<'EOP';
<form action="this.cgi">
<input type="hidden" name="to_pageb" value="1">
<input type="hidden" name="***" value="argument">
<input type="submit">
</form>
EOP
}
sub pageb{
my $q = shift;
print "Content-Type: text/html;\n\n";
print $q->param('***');
}
こういうことがしたいんだろ?
0580Name_Not_Found
2010/02/08(月) 15:43:35ID:5HRzICqcバージョンは5.8.8です。
0581nobodyさん
2010/02/08(月) 15:47:57ID:???0582nobodyさん
2010/02/08(月) 21:01:31ID:???環境でmakeすれば問題なかったりはしないんだろうか?
0583nobodyさん
2010/02/08(月) 21:34:28ID:???1から10までかいてあるようなサイトありませんか?
0584568
2010/02/08(月) 23:11:36ID:???今日試してみました。
hiddenを使って渡して、paramで受け取ることができました。
shiftは駄目でした。
教えていただいてどうもありがとうございました。
とても助かりました。
値の受け渡しについてだいぶわかってきました。
でもたぶんまだ完全に理解していないと思うので、
これから教わったことをじっくり考えたいと思います。
0585nobodyさん
2010/02/10(水) 11:19:20ID:Vw6vWoQu}がどこを閉じているのかも分かりづらいのですが、
perlで書いている人はどんな風に見やすくしているのですか?
0586nobodyさん
2010/02/10(水) 11:25:13ID:???OUT_HTMLを終わる時に先頭にタブがあるとエラーで出るだけで通常は大丈夫なようでした
この部分だけなら我慢しることにします
0587nobodyさん
2010/02/10(水) 11:57:20ID:???スニペットを置くには便利だけど、言うとおりソースが見づらくなるので
__DATA__なりを使うようになるんじゃないかね
0588nobodyさん
2010/02/10(水) 12:21:59ID:BOSF90jMperlのオブジェクトが、ハッシュに戻ってしまいメソッドが呼べなくなる
というバグに悩まされています。どうも見ているとwebにアクセスする
メソッドを読んだ後に他のメソッドを呼ぶと、ハッシュに戻っている気がします。
このようなバグに悩まされた方いらっしゃらないでしょうか?
全く解決法が分かりません。
0589nobodyさん
2010/02/10(水) 13:26:09ID:???WEBプログラミング板に移動したのでこちらは締め切ります。
お前ら使えねえな。
0590nobodyさん
2010/02/10(水) 13:41:06ID:???まともに回答が欲しければ気がしますじゃなくてコードさらして
呼ぶ前と呼ぶ後でこうなってるって示せよ。
0591nobodyさん
2010/02/10(水) 14:23:14ID:???0592nobodyさん
2010/02/10(水) 18:06:19ID:???状態に戻すなんてできるっけ?
別のハッシュになってるような気がするなぁ。
0593nobodyさん
2010/02/10(水) 22:19:58ID:???たぶん別の値で上書きしてるんだろうな。
その変数に代入している所を全部調べてみたら?
0594nobodyさん
2010/02/11(木) 00:37:03ID:???モジュールでそんなエラーがでてるんなら、まずモジュール名書くべきだろ
自分の書いたやつなら、コードさらさないと答えようがない
0595nobodyさん
2010/02/11(木) 00:56:59ID:???ここはエスパーしかお呼びじゃないスレだ
0596588
2010/02/11(木) 00:57:44ID:???foreach(@tmp) {
$_->wget();
}
@New = sort by_LastUpdated @tmp;
という部分があってby_LastUpdatedでUse of uninitialized value in〜が多発して
その後で@Newのメソッドが呼べないといってプログラムが終了します。
オブジェクトを作るのは
sub new {
my ($url) = @_;
my $bbs;
chomp($url);
my $this = {
"OrgUrl" => $url,
};
bless $this, 'Sure';
# $thisのその他の値の設定
…
return $this;
}
って感じです。あとこんな事いうのも馬鹿馬鹿しいですが>>589は
僕じゃありません。それとどうも新しく追加したところを消すと
バグが消えるようなのでそこを確認しようと思います。
どうもありがとうございました。
0597nobodyさん
2010/02/11(木) 01:24:13ID:???どこを切り取っても突っ込む所しか無い。
勘だけで書いたコードを晒されてもどうしようも無い。
無理して似非オブジェクト指向なコードを書くな。
0598nobodyさん
2010/02/11(木) 08:02:25ID:???こりゃお手上げだな、エスパーさん後は
任せた。
0599nobodyさん
2010/02/11(木) 09:48:23ID:???sub new {
my $pkg= shift;
my ($url) = @_;
my $bbs;
chomp($url);
my $this= bless {"OrgUrl"=>$url}, $pkg;
# $thisのその他の値の設定
…
return $this;
}
やりたいことはだいたいこんな感じなんだろうけど、一体どこを参考にして書いたの?
0600nobodyさん
2010/02/11(木) 10:00:20ID:???例えばlocal化されてない$_に代入してしまっているとか
0601nobodyさん
2010/02/11(木) 10:43:17ID:???オプションを何も指定せずに実行すると、横幅がオリジナルよりも2倍近く引き延ばされた状態で出力されてしまいます
これは何が原因でしょうか?
0603nobodyさん
2010/02/11(木) 17:12:52ID:???サーバー上でperl からphpファイルを実行するのはどうすればいいでしょうか
$ans = `php -f post.php`;
print $ans;
print system("/usr/local/bin/php -f /virtual/user/public_html/post.php");
my $PHP = '/usr/local/bin/php';
my $PHP_FILE='/virtual/user/public_html/post.php';
open FH, "$PHP -f $PHP_FILE|";
while (my $x = <FH>) {
print "$x\n";
}
close FH;
この3つ試したんですがphpのソースが表示されてしまいます
サーバーはcoreserverです
0604nobodyさん
2010/02/11(木) 17:55:06ID:???<? PHPコード ?>みたいな書き方が処理されてないだけでは?
0605nobodyさん
2010/02/11(木) 18:37:07ID:???0606nobodyさん
2010/02/11(木) 19:11:25ID:???core特有のCLI版PHPの呼び出し方の問題だからここの管轄でもなくて
レン鯖板の管轄だと思う。暇だからこれやる。
ttp://www.google.co.jp/custom?domains=sb.xrea.com&q=php+cli&sitesearch=sb.xrea.com&hl=ja
0607nobodyさん
2010/02/11(木) 19:53:29ID:???ありがとうこざいます
教えてもらったリンク先を参考に
/usr/local/bin/php5cli でできました!
皆様ありがとうこざいました。
0608nobodyさん
2010/02/14(日) 07:12:06ID:???上記のように書いてみたのですが、エラーが出ます。
二重にクウォートというのは出来ないんでしょうか?
外部コマンドでクォートを必要とする場合はどう記述すべきでしょうか?
0609nobodyさん
2010/02/14(日) 11:27:31ID:???エスケープしろよ
0610nobodyさん
2010/02/14(日) 11:33:14ID:???0611nobodyさん
2010/02/14(日) 11:43:44ID:???system("/usr/bin/hoge", "fuga fuga");
0612nobodyさん
2010/02/14(日) 12:26:01ID:???この板の人は本当に親切で助かります
ちょっとしたことも検索で見つけるのは難しいですね
0613nobodyさん
2010/02/18(木) 01:04:18ID:???use HTML::TreeBuilder;
my $html = get("http://xxxxx");
my $tree = HTML::TreeBuilder->new;
$tree->parse($html);
$tree->eof();
my $a = "東京";
my $b = "$tree->findとか色々やって最終的に 東京 をセット";
print "A $a B $b<br />\n";
print utf8::is_utf8($a) ? 'UTF-8 Flag' : 'not UTF-8 Flag';
print utf8::is_utf8($b) ? 'UTF-8 Flag' : 'not UTF-8 Flag';
-----------------------------------------
上記をCGI処理するとweb上の表示は
A 東京 B 東京
UTF-8 FlagUTF-8 Flag
となります。
両方utf-8のようなのですが、ソースを見ると下記のように2個目の東京が文字化けしています。
A 東京 B ?x6771;?x4EAC;
if( $a =~ /$b/ )としたいのですが、うまくいきません。
文字化け部分を戻したいのですがどうすればよいでしょうか?
htmlコードの取得先はヘッダがshift-jisでした。
※use Encode qw/ decode /; など色々試しましたがよくわからずうまくいきませんでした。
0614nobodyさん
2010/02/18(木) 03:16:49ID:???use HTML::Entities;
print "same.\n" if '東京' eq decode_entities('東京');
0615613
2010/02/18(木) 09:15:46ID:???できました!!
これができずに半日ずっとぐぐったり試行錯誤して結局できてなかったので助かりました。
自分だけでは数日はEntitiesにたどり着けなかったかもしれません。
ありがとうございました。
0616nobodyさん
2010/02/18(木) 18:04:59ID:???どうすればいいでしょうか?。。。
0617nobodyさん
2010/02/18(木) 18:10:31ID:???CPANに聞けや
0618nobodyさん
2010/02/18(木) 18:53:38ID:???0619nobodyさん
2010/02/20(土) 15:02:55ID:???一番目 %e6%9d%b1%e4%ba%ac
二番目 東京
となります。
�@一番目は『東京』となってほしいのですが、なぜ『%e6%9d%b1%e4%ba%ac』なのでしょうか?
�A『%93%8C%8B%9E』も『%e6%9d%b1%e4%ba%ac』もデコードサイトで変換したらどちらも東京になりました。URLエンコードには2種類あるのでしょうか?
�B二番目は『東京』ではなく『%93%8C%8B%9E』を期待したのですが、なぜエンコードしたのに『東京』なのでしょうか?
以上、3点についてわからないので教えていただけないでしょうか。
最終的に行いたいことは、URLから拾った文字と別から拾った文字をマッチするかの確認です。
#-------------------------------------------
use CGI;
use Encode qw/from_to/;
use Encode::Guess qw/euc-jp shiftjis 7bit-jis/;
my $query = new CGI;
my $item = $query->param('item');
my $encode = guess_encoding($item);
from_to($item, $encode->name, 'utf-8'); #$itemがSHIFTJISだったので変換
$item =~ s/([^\w ])/'%'.unpack('H2', $1)/eg;
$item =~ tr/ /+/;
printf("<pre>一番目 %s</pre>\n",$item);
my $str = "東京";
$str =~ s/([^\w ])/'%'.unpack('H2', $1)/eg;
$str =~ tr/ /+/;
printf("<pre>二番目 %s</pre>\n",$str);
0620nobodyさん
2010/02/20(土) 15:19:00ID:???二番目はURLデコードじゃなくURLエンコードしないとそりゃ期待どおりにならんやろ
0621nobodyさん
2010/02/20(土) 15:46:06ID:???投稿されたメッセージから、半角英字を禁止したいと思い
if ($in{'message'} =~ /[a-zA-Z]/) {$flg = 1;}
としたのですが、これだと改行の<br>まで弾かれてしまいます。
そこで、bとrをのぞくように、次のようにしました。
if ($in{'message'} =~ /[(a|c-q|s-z)A-Z]/) {$flg = 1;}
これでも、bとrは除けるのですが、<br>だけを除く記述方法はありませんか?
よろしくお願いします。
0622nobodyさん
2010/02/20(土) 15:58:07ID:???0624nobodyさん
2010/02/20(土) 16:14:16ID:???/(?:^|[^a-zA-Z])(?:(?<!<)|(?!br>))[a-zA-Z]/
だった。
0625nobodyさん
2010/02/20(土) 16:21:22ID:???ありがとうございます。
出来ました!
と思ったら、確認画面にはうまくいけたのですが、そこから、投稿処理に入ろうと
すると、<>が<とかになるみたいで、投稿できませんでした。。
brだけ除外するには、
/\b(br)[a-zA-Z]/
とすれば良いのでしょうか。何度も質問してすいません。。
0626nobodyさん
2010/02/20(土) 16:48:32ID:???タグを禁止したいならbr意外も禁止しろ
お前みたいな奴がいると脆弱性付きの糞サイトが出来るんだよ
XSSでググれ
HTML::Entitiesとかで対策しろ
0627nobodyさん
2010/02/20(土) 17:05:45ID:???XSS対策は施されているフリースクリプトです。サニタイズされてます。
それを更に、スパム除けとして、半角英字を禁止したいと思ったまでです。
ただ、ユーザーがテキストエリアで、改行すると、それが改行タグになり、
半角英字として扱われ投稿できなくなるみたいで困ってたわけです。
>>622-623のヒントでなんとかやってみます。ありがとうございました。
0630629
2010/02/20(土) 18:37:42ID:???SPAM対策なら、画像でパスコード生成して入力させればいいさ。
0631nobodyさん
2010/02/21(日) 19:39:13ID:???0632619
2010/02/22(月) 00:59:57ID:???ありがとうございます。
先にURLデコードしましたが結果は同じでした。
下記を実行するとこのような表示になります。↓
(A番などは文字化けしていますが、一つ一つを見ると
93,8C,8B,9EとUTF8コードがきているように見えます)
http://www.rupan.net/uploader/download/1266767521.jpg
C番とD番の間はちゃんと『東京』と表示されるのですが、
同じものを表示したのにD番だと文字化けします。
うまくコード変換が出来ていないようです。
下記スクリプトは無視してもかまいませんので、
URLの引数をperl内のUTF-8にする方法を教えてください。
#-------------------------------------------
#ヘッダ部分は619と同じなので省略
printf("<pre>A番 %s</pre>\n",$item);
$item =~ tr/+/ /;
$item =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
printf("<pre>B番 %s</pre>\n",$item);
$encode = guess_encoding($item);
printf("<pre>C番 %s</pre>\n",$encode->name);
from_to($item, $encode->name, 'utf-8');
printf("%s<br />\n",$item);
printf("D番 %s<br />\n",$item);
printf("<br />\n");
0633nobodyさん
2010/02/22(月) 01:53:28ID:???use strict;
use utf8; # 619の(3)が起きるのはこれのせいなのに隠すな
use Encode;
use URI::Escape;
# print "Content-Type: text/plain; charset=UTF-8\n\n";
my $tokyo = '東京';
my @enc = qw(utf8 euc-jp shiftjis 7bit-jis);
printf "%s: %s\n", $_, uri_escape(encode($_, $tokyo)) for @enc; # これを何か勘違いしてる
print "\n";
$tokyo =~ s/(\W)/'%'.unpack('H2', $1)/eg;
print $tokyo, "\n";
utf8::encode($tokyo); # no utf8;
$tokyo =~ s/(\W)/'%'.unpack('H2', $1)/eg;
print $tokyo, "\n";
0634nobodyさん
2010/02/22(月) 03:50:14ID:???0635619
2010/02/22(月) 13:04:14ID:???ありがとうございます。
use utf8を入れていたのを記入漏れしていましたご指摘ありがとうございます。
書いていただいたコードを参考にすることで変換することができました。
また、参考コードは日本語を扱うときに色々確認できそうなので保存させていただきました。
ありがとうございます。
※最終的に下記のようになりました。
#----------------------------------
use utf8;
use Encode qw/from_to/;
use Encode::Guess qw/euc-jp shiftjis 7bit-jis/;
use URI::Escape;
#----------------------------------
#shiftjisをutf8に変換
my $encode = guess_encoding($item);
from_to($item, $encode->name, 'utf-8');
#----------------------------------
#URLデコード
$item =~ tr/+/ /;
$item =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
utf8::decode($item);
printf("<pre>文字列 %s</pre>\n",$item);
0636nobodyさん
2010/02/22(月) 16:00:00ID:???ローカルファイル2万行の処理時間が、1秒→13秒になりました。
(もし200万行の処理になると、単純計算100→1300秒・・・)
ネットワーク越しの処理とか、他にボトルネックがない場面で使うなって事なんでしょうけど、
ローカルファイル処理の進捗表示をしたい場合、皆様どうしてますか?
0637nobodyさん
2010/02/22(月) 16:08:56ID:???0638nobodyさん
2010/02/22(月) 16:17:37ID:???100かそこらだから、余計な更新をしなければそれ以上遅くなること
はないと思うが。
0639636
2010/02/22(月) 18:18:51ID:???端末上の表示です。
>>638
スクリプトの中身は、キーワードをハッシュキーにしてインクリメント、
最後にキーワードの総出現数を出力してるだけの簡単なものです。
while (<$fh>) {
処理
$hash{$_}++;
$term->update( $term->lastupdate + length $_ );
}
こんなカンジです。
0640nobodyさん
2010/02/22(月) 22:11:22ID:???毎回update呼ぶと効率悪いよ。マニュアルよく嫁。
特にA (much) more efficient updateのあたり。
0642nobodyさん
2010/02/24(水) 17:33:29ID:???・a.txtの中身
1
2
3
・b.txtの中身
1
3
4
上記のような状況で、「4(b.txtにあってa.txtにない行)」を取得したいのですが、
こういった処理でオーソドックスな方法はあるのでしょうか?
今のところwhileかforeachで各ファイルを一行ずつ読み取る事を考えているのですが…
ちなみに各ファイルはせいぜい十数キロバイト程度で、一日にせいぜい数回程度しか実行せず、
実行するマシンの性能も十分に高いのでメモリ消費などは無視出来るレベルです
0643642
2010/02/24(水) 18:04:59ID:???a.txt、b.txtそれぞれ生成時にソート済みで、
どちらもとあるディレクトリのファイルリストなのでファイル内で重複する行は存在しません
0644nobodyさん
2010/02/24(水) 18:33:43ID:???ソート条件があるならperlを持ち出すまでもなく
comm -13 a.txt b.txt
でいいと思うが、どうしても車輪を再発明したければ
1行ずつ読みながら比較でもいいし、a.txtをまとめて
ハッシュに読み込んでb.txtを読み出しながらハッシュに
なければ書き出しでもいい。
0645nobodyさん
2010/02/24(水) 18:56:55ID:???回答ありがとうございます
残念ながら、さしあたり実行環境はWindowsXPを予定しているので、
commコマンドは使えません
また、ゆくゆくは他のバージョンのWindowsやLinuxなどでも動作させる予定なので
可能な限りOSに依存しない方法を採用する必要があるのです
0646nobodyさん
2010/02/24(水) 19:02:38ID:???perl -lne 'BEGIN{ $i = 1 } $h{$_} += $i ; $i = 2 if eof}{ $h{$_} == 2 and print $_ for keys %h ;' a.txt b.txt
# $h{$_} == 1 a.txt のみ
# $h{$_} == 3 a.txt & b.txt
このワンライナー解読して適当にスクリプト化すれば?
0647nobodyさん
2010/02/26(金) 20:23:12ID:???同じスクリプトの挙動をその条件で変えたいんです
ただ、HTML側に細工をするのはちょっと難しいです
環境変数かなんかで分かればいいのですが・・・
0648nobodyさん
2010/02/26(金) 20:50:17ID:???0649nobodyさん
2010/02/26(金) 20:59:18ID:???0650nobodyさん
2010/02/26(金) 21:06:13ID:qFPnonZhそのファイルの中でどうゆう呼ばれ方をされてるのかを
調べればいいかなと
0651nobodyさん
2010/02/27(土) 02:04:01ID:???そうでないならJavaScriptでparentとか見て判定した方がいいな
0652647
2010/02/27(土) 02:37:15ID:???案を考えていただき、ありがとうございます
ただ、後付け条件で申し訳ないですが、呼び出し元は同一ドメインのスクリプト全てが想定され、
また、そのスクリプト群はユーザーがデータベースに保存したテンプレートを加工して出力します
なので、実質どんなHTMLが返ってくるかは分からないです
>>649,651
クエリは変わりますが、アクセス元のURL自体は有限なので
リファラと正規表現でなんとかなるような気がしてきました
ありがとうございます
0653nobodyさん
2010/03/03(水) 02:18:21ID:???主要部分はこんな感じです
================
$msg = new MIME::Lite(
From => (送信元),
To => (送信先),
Subject => 'HOGEHOGE',
Data => ''
Type => 'image/jpeg',);
$msg->attach('Type' => 'applocation/octet-stream',
'Encoding' => 'base64',
'Path' => 添付ファイルのフルパス);
================
これ実行すると、確かに指定したファイルが添付された状態で宛先に届くのですが
何故か0バイトのファイルも余計に一つついてきます
また、上記は空欄になっているDataオプションに任意の文字を入れると
0バイトのファイルが、その文字が書き込まれたテキストファイルに置き換わっています
この余分なファイルが無い状態でファイルを送りたいのですが、原因は何でしょうか?
■ このスレッドは過去ログ倉庫に格納されています