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

Perlコーディング初心者質問スレ Part 49

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2006/05/31(水) 04:32:28ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0967nobodyさんNGNG
0968nobodyさん2006/06/26(月) 10:37:50ID:???
#!/usr/bin/>>966 -乙
package >>966;
use AutoLoader qw/AUTOLOAD/;
. . .
0969nobodyさん2006/06/26(月) 11:27:21ID:???
>>911のウザさに憤り
>>927の親切さに泣いた
そんな週末だった。
0970nobodyさん2006/06/26(月) 15:17:06ID:kXeMxgQF
<img src="hoge.cgi">

↑をHTMLに埋め込んでHTMLからhoge.cgiの呼び出しをしたいのですが、
hoge.cgi側でどこのページから呼ばれたのかを
<img src="hoge.cgi?p=index">
のようにGET形式を使わずに知ることはできますか?HTML側には
<img src="hoge.cgi">
とだけ記述で。

今初めてchatを作ってるんですが、管理者モードと一般モードとわけて機能や表示内容を変えたいのです。
それでサイト管理cgiが既に用意してあるのですが、その管理CGIから呼ばれたら管理者モード
ってことでできたらいいなと思ってるのです。

管理CGIの方はセキュリティ一応ある程度になってますので、管理CGIを開けた人間なら
いちいちそれ以上のパスなどやらないで、チャットも管理モードで動作してほしいんです。

何か方法はありますか?%ENVを見てもどうやら使えそうなのがなさそうですが。
0971nobodyさんNGNG
$ENV{"HTTP_REFERER"}
0972nobodyさん2006/06/26(月) 15:29:23ID:???
HTTP_REFERERで呼び出し元は引けるのかな?
JavaScriptのdocument.locationを使ってimgタグを生成してdocument.writeする方法はどう?
0973nobodyさん2006/06/26(月) 15:31:25ID:???
求めるセキュリティのレベルにもよるが、refererなんてクライアントの自己申告で
ウソつき放題だからそんなものをあてにするのは感心しないな。
09749702006/06/26(月) 15:33:20ID:kXeMxgQF
.....orz

てっきりリファラは前のページになってしまうのかと。
ちゃんとできるのですね。
すみませんです。
今テストしてみたら確かにできてました。

ちなみにリファラの偽装って簡単ですか?難しいけど出来る人はできるのですか?
管理CGIのページには.htaccessで認証をつけてあるのですが、リファラの信頼度が
その.htaccessの認証以上であれば別にかまいませんが、どうなのでしょうか。
0975nobodyさんNGNG
簡単すぎて泣けそうです
09769702006/06/26(月) 15:38:54ID:kXeMxgQF
>>972
一応リファラに入ってました。
例外もあるかもしれませんが。
>>973
自己申告でしたか。
それじゃあダメぽですね。

悩んでみます。
0977nobodyさん2006/06/26(月) 15:47:16ID:???
つセッション

と言いたいところだが気をつけないとCSRF脆弱になるからな…
09789702006/06/26(月) 15:55:42ID:kXeMxgQF
理想としては管理CGIには
<iframe src="chat.cgi">ブラウザが未対応です。</iframe>
以外を追加したくないんですよね。

基本全てをchat.cgiがやる。そして一般者には管理モードがあることを悟られないようにしたい。
ipでやればできるような気もしますが、気が進まないんですよね。
09799702006/06/26(月) 16:21:47ID:kXeMxgQF
ポストでやることにしました。
chat_login.cgiを作って。それでまあ一応管理CGIの方は
<iframe src="...">〜</iframe>だけの追加でいいことになりますし。

ありがとうございました
0980nobodyさん2006/06/26(月) 16:25:09ID:???
Encode.pmでメールの日本語Subjectのエンコードをしたいのですが…。
encode( 'MIME-Header', $hoge )で文字化けしまくりです。
できれば5.8標準モジュールで済ませたいのですが、
JCodeとかを使わなければ無理でしょうか?
スクリプト自体はeuc-jpで書いています。
0981nobodyさんNGNG
MIME::Base64
0982nobodyさん2006/06/26(月) 19:22:04ID:???
>>980
$hogeがちゃんとしたユニコード文字列ならそれでエンコードされるはず。
ただし、utf8にしかならない。

日本語しか使わないかつ互換性の問題などでどうしてもiso-2022-jpにしたければ、
'MIME-Header-ISO_2022_JP'というのも用意されている。

詳しくはEncode::MIME::Header参照。
0983nobodyさん2006/06/26(月) 19:44:59ID:???
@splitdata = map { $_ =~ s/( )+$//; } @splitdata;
この中身が消えちゃうのは何故でしょうか・・・
0984nobodyさん2006/06/26(月) 20:05:42ID:???
中のデータ知らないけど、マッチしないと消えると思う。
0985nobodyさん2006/06/26(月) 20:07:33ID:???
>>983
どうしたいか分からないが
@splitdata = map { $_ =~ s/( )+$//; $_; } @splitdata;
だと予想。
0986nobodyさん2006/06/26(月) 20:17:37ID:???
配列の中身、置換したいだけか。だったら
grep { s/( )+$//; } @splitdata;
だけでいけるはず
0987nobodyさん2006/06/26(月) 20:18:45ID:???
正直そういうのは map じゃなくて素直に for でやって欲しいと思った私は少数派?
0988nobodyさん2006/06/26(月) 20:19:12ID:???
何でみんな foreach 嫌いなのw
0989nobodyさん2006/06/26(月) 20:31:47ID:???
まっぷ → 一行で書ける簡単なもの
ふぉ〜い〜ち → 書くことが沢山あるとき

適材適所
0990nobodyさん2006/06/26(月) 20:33:09ID:???
俺も思った。言語によってなかたりするからかな?
0991nobodyさん2006/06/26(月) 20:36:05ID:???
>>989
てっきり返り血があるかないかだと思ってた。
0992nobodyさん2006/06/26(月) 20:40:33ID:???
初めの頃はmapとgrep上級者的で好きだったな。
それとどれだけ短く書けるかで上級度も図ってた。
0993nobodyさん2006/06/26(月) 20:44:11ID:???
map とか grep って foreach より処理重くなったり余計メモリ食ったりするんじゃねえの?
0994nobodyさん2006/06/26(月) 20:44:51ID:???
ところでさ。プログラムの天才って。
例えばウィニー作った人なんて相当なもんなんでしょ。
あーいう人。というか金子って人はウィニのソースの全てを把握をしてるのかな?

それとも全体の:kg:jgん;kjdgんljng;owjdgnbl;djgblaijdbga


youhasa .
毎度自分のプログラムの改造をするときにまず自分のプログラムを読んで把握のしなおしからするのかな。
0995nobodyさん2006/06/26(月) 20:45:26ID:???
そこでオブジェクト指向プログラミングですよ
0996nobodyさんNGNG
毎日そのソースと睨めっこしてれば把握可能
0997nobodyさん2006/06/26(月) 20:46:13ID:???
>>993
そもそもCGIで処理効率なんて考える?
回線状況による誤差を考えるとどうでもよくない?
いや、CGIでなくてもさ。
0998nobodyさん2006/06/26(月) 20:47:37ID:???
>>995
やっぱりかぁ。
あんまり好きじゃないんだよな。
というかもっと新しい概念ないのかな。
0999nobodyさん2006/06/26(月) 20:49:24ID:???
>>997
いや、そういう問題じゃなくねw

>>998
なんで好きじゃないんだか。覚えれば普通のことだと思うよ。


999get!
1000nobodyさん2006/06/26(月) 20:50:15ID:???
>>999
一度覚えて気に入ったんだけど、それで大きめのを組んで数ヵ月後に見直したら嫌いになった。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。