トップページperl
981コメント266KB

CGIだけど、なんか質問ある?

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさんNGNG

print "くだらねぇー質問はココから始めろ!";
0863名無しさんNGNG
すばらしぃ。
0864ぶくぶくNGNG
おしえてください。
掲示板に、レンタルのアクセスカウンタをつけるには、
どうしたらいいのですか
0865名無しさんNGNG
つけ方の書いてないレンタルアクセスカウンタなんて
存在するのか?
それともマニュアルに2chで聞けって書いてあったか?
0866名無しさんNGNG
リクエストフォームで送信した文字列が勝手に
コード化されてしまう場合が、100回に1回くらいあるようです。
これってIE5.0で起きてるのですが、これってバグですか?
0867名無しさんNGNG
らくだ本ってなんですか?
0868名無しさんNGNG
>>867
http://images.amazon.com/images/P/4072227986.09.LZZZZZZZ.jpg
0869名無しさんNGNG
らくだの生態に付いて詳しく書かれている有名な本だ。
知らんのか?
0870名無しさんNGNG
↓『らくだ』と『Perl』で検索すれ!
http://japan.infoseek.com/Titles?qt=Perl&lk=noframes&qp=0&nh=10&svx=101640&col=JW%2Ccat_RES&oq=%A4%E9%A4%AF%A4%C0
この板1番の らくだ博士 になれるかも...
0871名無しさんNGNG
先づりも書きましたが、
送信したログデーターを別の鯖のファイルに出力することは、化膿でしょうか?
0872AyuMoe(JAPU)NGNG
>>871
日本語で質問してください。
0873名無しさんNGNG
>>872 なんでそんなに不細工なのでしょうか?
0874名無しさんNGNG
>>873 日本語読めるようになってから書いてください
0875867NGNG
検索という選択肢をすっかり失念していました。(汗)

これから勉強していこうと思います。
ありがとうございました。
0876初心者NGNG
正規表現でテキストからメールアドレスを取得しようとしているのですが
メールアドレスに使用できる文字がわかりません。
メールアドレスに使用できる文字が書かれているのはRFCのいくつなのか教えてください。
またはRFCの全文検索のできるサイトがあれば教えてください。
0877AyuMoe(JAPU)NGNG
RFC 822 + RFC 1123, RFC 1138, RFC 1148, RFC 1327, RFC 2156
かな。
正規表現で書くのは非常に面倒なので、素直に Mail::Address モジュールを使おう。わざわざ車輪の再発明するのは多くの場合無意味です。

use Mail::Address;
$addrs = << 'EOF';
Just Another Perl User <AyuMoe@JAPU.ORG>
Webmaster <webmaster@JAPU(Ayumoe).org>,
hoge@JAPU.ORG (Just Another Perl User)
EOF
@addrs = map { $_->address } Mail::Address->parse($addrs);
print "@addrs\n";

ここからゲット。http://search.cpan.org/

RFCの検索はここ。
http://www.rfc-editor.org/rfcsearch.html
http://rfc.asuka.net/
0878876NGNG
>>877
ありがとうございます。

>わざわざ車輪の再発明するのは多くの場合無意味です。
あえて自分でやってみたいんです。
0879超初心者NGNG
文字列比較演算子で質問なんですが
比較対象を変数にするってのは無理なんでしょうか?

if ($a =~ /$b/) { ; } else { next; }

こんな感じで比較したいんですけど、なぜかできなくて。。。
//の中は変数じゃダメなんでしょうか。

それともう一つ。
またまた文字列比較なんですが、年齢を比較したくて
$cに20、$dに20〜25 という文字が入っていたとして
$cが$dの間に入っていればtureを返す構文の書き方を
教えてください。

先生方、よろしくお願いします
0880T女の竹田NGNG
>>879
一番目
$b=~s/\+|\\|\(|\[|\{|\^|\$|\*|\?|\./\\$&/g;
を前に入れると(・∀・)イイ!!
ようするにメタ文字が入っていたらそれの前に\を
つけるってこと。
0881T女の竹田NGNG
>>879
後半
if ($c >= (split(/〜/,$d,2))[0] && $c<= (split(/〜/,$d,2))[1]) {hoge;}
でどうかな。
0882教えて下さいNGNG
実は、会社の大嫌いな人間に、自分のプライベートHPの
アドレスを知られてしまいました。アクセス解析を取っているのですが、
明らかに会社からアクセスした形跡があるんです。(時間的に、
自分が帰ってからだし、その時間まで残っている人間は一人)

特定のIPをはじく方法はありますか?
真面目な話、ストーキングされそうでとても怖いんです。
お願いします。
0883AyuMoe(JAPU)NGNG
>>879
if($a =~ /\Q$b/) { ... } とするか、
$b = quotemeta $b; if($a =~ /\Q$b/){ ... } とするか、
if((index $a, $b) > -1) { ... } とすればよいです。
0884882NGNG
いたずらじゃありません。
すみません、教えて下さい。
自分で調べたら、掲示板のいたずら書きこみを
やめさせる方法とかはありました。
reuire './_icode.pl';
っていう後にipを書くやり方。でも、これだとcgiのページしか
出来ませんよね?自分のHPのTOPページで弾きたいんです。
お願いします。
.htaccessっていうファイルを作る方法も調べました。
<limit get post>
っていう方法。でも、私perl初心者で分からないけど、postって
掲示板とかの投稿を防ぐやり方じゃないんですか?
本当に困っています。どなたか、教えて下さい。お願いします。
0885T女の竹田NGNG
>>883
\Qって知らなかった…ハズカシ
\Eとセットなのね
φ(.. )メモメモ
0886名無しさんNGNG
>>882
<Limit GET POST>
order allow,deny
allow from all
deny from 会社のIPとかHOST
</Limit>
じゃだめ?
0887882NGNG
>886さん
レスありがとうございます。
書いていただいたのをそのままエディタで書いて
.htaccess保存して置けばいいんですか?
postって書いてあるから、掲示板とかの書きこみ撃退だと
思っていました。やってみます。
0888とび対策NGNG
カウンタでヌルなら書き込まないってヤッテルンダガどう思う?
0889名無しさんNGNG
>>886
<Limit GET POST>と</Limit>があったら意味ないって。
そんなものつけてたら全部弾けない。
882=887の方がわかってる。
0890名無しさんNGNG
889=bakamarudashi
0891名無しさん NGNG
890=bakamarudashi

http://japache.infoscience.co.jp/japanese_1_3/manual/mod/core.html#limit
0892名無しさんNGNG
うわ、ホンマモンの馬鹿だ
0893名無しさんNGNG
試してみたらどっちでも制限できたけど・・・
limitあるのとないのではどう違うのかjapuさん教えて
0894AyuMoe(JAPU)NGNG
>>893
http://httpd.apache.org/docs/mod/core.html#limit
あたりを見てください。

>>891 のURLでもよいけどさ。
0895亀詰NGNG
質問していいっすか?

CGIのパーミッションなんですけど
普通755〜700で動きますよね?
なんか最近借りたところ動かなくて困ってます
ここなんですけど
http://www.mixedmedia.net/
だれか使ってる方いたら教えてください
サポート問い合わせても応答ないし。゜(T^T)゜。


0896名無しさんNGNG
japuさんありがとう
In the general case, access control directives should not be placed within a <limit> section.
つまりlimitないほうが良いかもってこと???

あと、limitの中で指定するmethodは
GET, POST以外にもたくさんあるけど
特定のIPからすべてのアクセスを拒否する場合
結局どれを指定すればいいのですか?
googleで検索してみたけど
なんだか盲目的に<Limit GET POST>ばかりで・・・
中には<Limit GET>でだめな場合は
<Limit POST>でとかあって・・・
さらに<Limit GET POST PUT>とか・・・

methodについての肝心の説明がなかなか見つかりません
0897名無しさんNGNG
MacPerlでSSLeay.pmを利用する方法がいまいちわからないのですが、
だれか教えてもらえないでしょうか・・
DLしてきたNet_SSLeay.pm-1.03.tar.gzの中に入っていた、.pmファイルを
MacPerlのlib/Netの中に突っ込んでみただけで動くもんだと思ってたのですが、
どうやらそう甘いもんでもないようで、エラーが返ってきてしまいます。
0898名無しさんNGNG
>>895 755でも動かないの?ならperlのパスとか,基本的なチェックが先なのでは?
which perlとか。

>>896
HTTPのmethodのうち,制限をかけるものとかけないものを分けるときに使うものと
解釈しております。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

それより
<IfModule mod_access.c>
Order allow,deny
allow from all
deny from 2xx.xxx.xxx. ←会社のIP(クラスC)
</IfModule>
じゃダメなんかい?別のネットワークから見られる可能性があるけど。
.htaccessの偉い人擦れも参考に。
0899名無しさんNGNG
無料のWebスペースで、ポップアップ広告が出なくなる
ヒントを教えてください
0900AyuMoe(JAPU)NGNG
好きなの選んで下さい。

1. JavaScript を無効にします。または非対応のUAを使用します。
2. Mozilla 0.8であれば、prefs.js に以下の行を追加します:
user_pref("capability.policy.default.windowinternal.open","noAccess");
user_pref("browser.target_new_blocked", true);
3. adzapper などの広告カットプロクシサーバを利用します。
0901giko6@†NGNG
>>895
そこの利用者でCGIも組んだり使ったりしてるけど、
今まで動かなかったことない。まさかCGIの書きミスして
500エラーってこたないよね…
0902896NGNG
898さん、ありがとうございます
私はlimitあるのとないのではどう違うのかが
知りたいだけなので、リンク先で勉強してきます

>.htaccessの偉い人擦れも参考に。
こちらでもlimitないほうがいいみたいな事書かれてますね
あると有害とまで書かれてるし・・・
でもアクセス制限の解説ページには、ほぼ100%limitがある
ふぅ・・・
0903名無しさんNGNG
>でもアクセス制限の解説ページには、ほぼ100%limitがある
同じ理由で、俺も最初<Limit>は必須だと思ってましたね。大笑い。
ああいう解説ページはみんなどっかの情報の丸写しなんじゃないすか。
0904名無しさんNGNG
>>897
他のパッケージはどうやってインストールしてます?
Mac使いではないので詳細は不明ですが、
同様にインストールすればいいと想います...

# MacShell(?) とか使うのかな???
0905897NGNG
>>904
お恥ずかしいことにモジュールのインストール自体初めてで、
試行錯誤でいろいろ試してはみてるのですが、ひたすらエラーの連続です。
0906899NGNG
>>900さん ありがとうございました。
0907名無しNGNG
掲示板のCGIを改造してSSIのフォームからデータを送ったら

Method Not Allowed

というエラーが出るんですけど、どうしたらいいですか?
0908名無しさんNGNG
>>907
それはサーバ側のメッセージですか?
それともそのスクリプト側のメッセージですか?
0909名無しさんNGNG
PerlのCGIの中で use Html などとして共通ルーチンを
モジュール化するという方法はサーバー上では
正常に動かないものなのでしょうか?

自分で試しているのですがスクリプトエラーが
起こっているようなのです
0910名無しさんNGNG
データファイルを読み込んで@LINESという配列に入れたとします。
配列の中身は

'23<>a<>0','26<>b<>5','14<>c<>3','30<>d<>9'
だったとして、$xxという変数にa〜dのいずれかの文字が入ります。

例えば$xxにcが入ったらcという要素を含む3要素目の'14<>c<>3'
の3を1増減、4にして

'23<>a<>0','26<>b<>5','14<>c<>4','30<>d<>9'
になった配列をデータファイルに上書き保存したいのですが
どのように組めばよいのでしょうか?


open (IN,"hoge.txt") || &error('オープンエラー','指定された書込みファイルが開けません。');
@LINES = <IN>;
close (IN);

$i = "0";
foreach (@LINES){
($t1,$t2,$t3)=split(/<>/,$_);
if ($xx =~ /\Q$t2/) { last; }
$i++;
}
$t3++;
$all = $t1;
$all .= '<>';
$all .= $t2;
$all .= '<>';
$all .= $t3;
$all .= '\n';

$LINES[$i] = $all;

open (OUT,">$hoge.txt") || &error('オープンエラー','指定された書込みファイルが開けません。');
print OUT (@LINES);
close (OUT);

こんな感じで組んだんですが、全然ダメで。。。
どなたか教えてください。
0911T女の竹田NGNG
>>910
'\n'→"\n"(シングルクォーテーションでは改行に変換されない)
なお長いので
$all = join('<>',$t1,$t2,$t3)."\n";
としたほうがいいかも。
それと、$xxの中身を含む要素の値を変えたいんだよね?
それなら if ($xx=~/\Q$t2/) の所は if($t2=~/\Q$xx/)だと思う。
0912_gunzipNGNG
>>910
-----
#!/usr/bin/perl -w

@array = ('23<>a<>0','26<>b<>5','14<>c<>3','30<>d<>9');

@array = map{
&nbsp;&nbsp;&nbsp;&nbsp;@t = split(/<>/,$_);
&nbsp;&nbsp;&nbsp;&nbsp;if($t[1] eq "c"){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$t[2]++;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$_ = join("<>",@t);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;$_;
} @array;

print join(",",@array);
-----
とか。
0913名無しさんNGNG
らくだ本を読んでるのですが、実効uidと実uidは
どう違うのでしょう?

UNIXから入らないとだめですか?
0914/bin/名無しさんNGNG
>>910

my($xx) = 'c';
my(@LINES) = ('23<>a<>0','26<>b<>5','14<>c<>3','30<>d<>9');
my($i) = 0;
foreach (@LINES) {
split(/<>/);
$_[1] eq $xx ? last : $i++;
}
$LINES[$i] = join('<>', $_[0], $_[1], ++$_[2]);

なお、上をそのまま組みむだけでは動かない(と思う)。
また、ファイルの読み書きも確実に間違ってるので、

print "[$LINES[0]]";

とか

print @LINES;
print "---\n";
print join("\n",@LINES), "\n";

とかを試して自分で考えてみること。
0915/bin/名無しさんNGNG
これでも可。

my($xx) = 'c';
my(@LINES) = ('23<>a<>0','26<>b<>5','14<>c<>3','30<>d<>9');
foreach (@LINES) {
split(/<>/);
if($_[1] eq $xx) {
$_ = join('<>', $_[0], $_[1], ++$_[2]);
last;
}
}
0916名無しさんNGNG
sendmailで送れるメアドと送れないメアドがあるんですけど
書き方間違ってるのかなぁ??
open MAIL , "|$nkfpath -j | $sendmail -t " or die "メール送信処理失敗\n";
print MAIL "From: $m_mail\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $m_sub\n";
print MAIL "Return-Path: $Errmail\n";
print MAIL "Errors-To: $mail\n";
print MAIL "Mime-Version: 1.0\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n\n";
print MAIL "$m_com\n";
close(MAIL);

これだけじゃ足りない??
0917AyuMoe(JAPU)NGNG
一部の村でしか通用しない、わけわからん略語を使うのはやめよう。

で、Return-Path:, Errors-To: を付けるのは明らかに間違っています。前者はユーザレベルで付けるものではなく、後者は標準的なものではありません。エラーメールの送信先を変更したければ、-f you@example.com のようにしましょう。
0918916NGNG
レスありがとうございます!
>一部の村でしか通用しない、わけわからん略語を使うのはやめよう。
すいません メールアドレスですね(^^;

それで
print MAIL "Return-Path: $Errmail\n";
print MAIL "Errors-To: $mail\n";
の2行を消してみたんですけど、やっぱり届かない。。
ちなみに届かないメールアドレスのサービス会社は
http://www.24h.co.jp/です
ほかは届くのに何故なんでしょ。。
0919AyuMoe(JAPU)NGNG
ORBSとかMAPSに登録されている可能性があるな。
(24h.co.jp ではSPAMのブラックリストを利用していて、
その送信元のサーバがそのリストに登録されていれば受け取り拒否されます。)

http://www.orbs.org/
http://www.maps.vix.com/
0920916NGNG
ありゃりゃ、そうなんですか〜。。
諦めるしかなさそうですね(^^;
AyuMoe(JAPU) さんありがとうございました<(__)>
0921むぎ茶NGNG


>一部の村でしか通用しない、わけわからん略語を使うのはやめよう。


わからない奴のほうが一部の村だろ。(m

┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
┃mugicha@360.cc  ┃
┗━━━━━━━━━┛
http://www.freeml.com/ml_info.php?ml=bitvalley

0922/bin/名無しさんNGNG
cgi直リンク対策って何したらいいのかなぁ。
てか、ブラクラしこみたいんだよね。厨房がウザいから。(笑)
0923/bin/名無しさんNGNG
REFERER参照して、自分とこ以外から来た奴を弾けばいいんだろ?
やりかた知らないけど。(笑)
0924名無しさんNGNG
>992 cgi直リンク対策

は難しいですよ
2chですらあなたの書込みを制限出来てないもん

0925ヒロヒト(顔面神経痛)NGNG
あっそう。
0926一回のアクセスでNGNG
飛んできたURLが特定してるなら、ディズニーランドに飛べるかも。。
0927名無しさんNGNG
サイトの全コンテンツにPICSラベルを貼りたいのですが、どうするのが
いちばん簡単でしょうか?
0928927NGNG
やっぱし人がいないのか…。鬱山車脳
0929困ってマスNGNG
_____________________
| フレーム1 |
|___________________|
| フレーム2 |
|___________________|
| フレーム3 |
|___________________|

こんなフレームの構成で、
フレーム1、2には複数のオブジェクトが
あって、フレーム3にsubmitボタンがあります。

で、フレーム3のボタンを押したら、1、2の
オブジェクトの内容を取得して、フレーム2のみ
再読込したいんですけど、そういう事は可能ですか?

0930929NGNG
ぁぁずれまくり(鬱々
右がヘコんだフレームじゃありません
0931名無しさんNGNG
ファイル操作について教えてください。
掲示板の発言を保持するのにファイルを使っているのですが
発言の修正を行うのに今は配列に全部入れて修正して戻す
という手順でやっています。
でもこれだとファイルサイズが大きくなってくると
負荷が大きくなってしまうと思うんです。
なんとかもっと軽快に動作するようにはできないでしょうか?
0932名無しさんNGNG
>>927
PICSラベルのことよく知らないんだけど、HTTPヘッダに

PICS-Label:
(PICS-1.1 ...
ratings ...)

とか入れればよいの?
だったらApacheのHeaderディレクティブでどう?
PICSラベルについて識者の説明を請いたいところなり。
0933名無しさんNGNG
>>929
フレーム3のsubmitボタンでフレーム2を読み込ませるには
フレーム3のフォームでtargetを指定してCGIを実行すればよい。
あ、JavaScriptのほうが簡単かな?
まあどっちにせよ、フレーム1,2の内容を取得するのに
結局JavaScriptは使う必要があるね。
0934名無しさんNGNG
アップローダ付画像アルバムを作っているのですが、ファイルがアップロードされたときに
同時に縮小されたサムネイル画像を作るのってどうすれば実現できますか?
0935パクレNGNG
http://www.big.or.jp/~talk/t-club/soft/mini_120/imgboard.wri
0936名無しさんNGNG
>>935
これってただUPLOADされた画像をHTMLで縮小表示しているだけですよね?
これだとページの読み込み時間が無駄に長くなってしまうので
サムネイル用のサイズの小さいファイルを同時に作成してしまうのが望ましいのですが
0937927NGNG
>>932
共用鯖なんでmod_headersを組み込めないんです。
0938名無しさんNGNG
flood.cgiをvirtualAvenueに設置しようとしてるんですけど、何度やってもIP
入れて「実験」ボタン押しても

Flood Start...
send error: Permission denied

ってでるんですよ・・・。
何故なのでしょう?
パーミッションは755に設定してるのに・・・。
一応スクリプトをtxt形式でアップしておきます。
http://monar.virtualave.net/flood.txt
0939938NGNG
上のtxtで、<xmp>と</xmp>は無視してください。
0940名無しさんNGNG
"Flood Start... " が出てる時点でCGIは実行できてるだろ
おそらく、ソケット使えないんじゃないか?
0941938NGNG
それでは、どこを改良すればいいですかねぇ???
すいません質問ばかり・・・。
0942manamiNGNG
http://www.inside.ne.jp/cgi/lachat/line/chat_cgi.txt

このチャットに発言欄のオートリンク付けたいんですけど
やり方を解説してるサイト等をご存知でしたら教えていただけませんか?

あ、あと単語変換も付けたいです・・
例えば、”はーと”と発言したら”<font face=symbol color=red>ゥ</font>”とか

宜しくお願いします。
0943名無しさんNGNG
>>942
 CGIとはぜんぜん関係ないけどそれではMacIE5やN6でハートマークに
ならないよ。
 &hearts;だとNC4でハートマークにならないけど。
0944943NGNG
&amp;hearts;って書こうとしたら参照されてしまった。
0945名無しさんNGNG
ApacheのCGIでa.cgiを要求したとき、a.cgiが
Location: /download/a.lzh
のようなヘッダを出力すると、302ではなくa.lzhの中身が直接返されますが、
このときa.cgi経由でのみa.lzhが取得可能で/download/a.lzhを直接要求
しても拒否するように設定できないでしょうか?
0946名無しさんNGNG
a.cgiへRedirectさせちゃえばいいんでないかい?
0947名無しさんNGNG
試してみたらダメだったよ。あぼぼん。
0948名無しさんNGNG
飛ばすより a.cgi が Content-Disposition と中身直接吐き出せば?
0949945NGNG
巨大なファイルをDL中ずっとCGIが起動しているのは負荷の面でどうか
と思ったのでどうにかならないかと思ったのですが…。
他に方法がないなら直接吐き出すようにするつもりです。
0950927NGNG
>>932
mod_headersの使えるサーバが調達できたので試してみましたが、
PICSラベルは値にURLを含んでいるので、静的な値しか出力できない
Headersだと難しそうです。それともHeadersで環境変数の値を使う方法
があるでしょうか?
0951927NGNG
950踏んだので新スレ立てます。
0952927NGNG
立てました。以後のレスはこちらで。
http://tako.2ch.net/test/read.cgi?bbs=perl&key=984362301
0953名無しさんNGNG
立てました。以後のレスはこちらで。

http://tako.2ch.net/test/read.cgi?bbs=perl&key=984388283
0954名無しさんNGNG
既出かもしれないんだけど、トップページでCGI使う場合(検索エンジンとかで)
トップページのアドレスが長くするのを防ぎたいのです
フレームを使う以外の方法ありませんかね?板違いだったらスマソ
0955名無しさんNGNG
その通り、板違いです。


----------終了----------
0956名無しさんNGNG
板違い厨は永遠に氏ねや
0957名無しさんNGNG
酷い言い様だね・・・
0958名無しさんNGNG
>>957
おまえの実生活の腐れっぷりよりはマシ。
0959 ◆R0eWkIpk NGNG
test
0960960NGNG
参考になる本・サイトはありますか?
また、CGIを設置できるサーバーはどこですか?
0961960NGNG
ちなみに、画像up掲示板を設置したいんです。
0962sageNGNG
java>>>>>>>>>C>>>>>>>〜中略〜>>>>>>>parl(初心者言語)
0963名無しさん@お腹いっぱい。NGNG
CGIを1から習得して仕事で使えるレベルにまでなりたいのですが
どれくらいの期間がかかるものですか?
(例えば、特殊なチャットや、2CHなど特殊な掲示板を
構築・管理できるレベル)

プロのプログラマーなので、基盤はできているつもりです。
(C,C++(MFCなど))
ただ、ネット関係は弱いですが。

個人差はあるかと思いますが、みなさんのご意見をきかせてください
レス数が950を超えています。1000を超えると書き込みができなくなります。