CGIだけど、なんか質問ある? part 6
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
02/04/23 20:28ID:Kp0cZQna<<注意:CGIは特定の言語に依存するものではありません>>
Perlのコーディングに関する質問はこちら
【Perl】初心者コーナーPart11
http://pc.2ch.net/test/read.cgi/php/1017201229/
過去ログは>>2
0856hoge
02/06/25 19:09ID:j0DYF6ca@URL = map { /^Location_URL=(.*)/? $1: () } @list;
0857nobodyさん
02/06/26 08:19ID:mZF+XHgo出来ません。
何が悪いのでしょう?iswebでは出来たのに・・・
WinNTでは無理なのでしょうか?
0858nobodyさん
02/06/26 11:53ID:???アプレットって何のアプレットよ?
こうやって、逆質問しないと解答に行きつくまでの情報が得られないような質問するな。
おまえは、ここにいる解答者は超能力者とでも思っているのか?
【なにを】【こうしたら】【こうなって】しまい、【こうしたい】のですが…
↑このぐらい書けや。クズ
0859質問です
02/06/26 17:34ID:???URLを入力するとそのページのHTML(ソース)を表示してくれるページがあったのです。CGIで作動していたのが記憶にあります。レンタルとかではなく、そのページでやってください、みたいなのでした。
自分が見たサイトは携帯からのみ調べることが可能なページだったのですが、パソコンからもできるサイトをご存知の方がいらっしゃれば教えてください。
どこで質問をしていいのか分からなく、CGIできたのでこちらで質問させていただきました。板違いでしたらすみません。
ブラクラチェッカーじゃないの?
0863nobodyさん
02/06/27 09:17ID:ZKL/xeQ+0864nobodyさん
02/06/27 09:29ID:???スレタイトルが読めませんか?
Perlの質問はPerl初心者コーナーへどうぞ。
http://pc.2ch.net/test/read.cgi/php/1022731565/
ちなみに、Perlにおいて、@になにかを格納できるとは初耳ですが。
0865nobodyさん
02/06/27 11:58ID:???0866nobodyさん
02/06/27 12:01ID:???0867nobodyさん
02/06/27 12:24ID:???print "$]\n";
↑これで、バージョンぐらい確認しる!
0868nobodyさん
02/06/27 15:40ID:???0869nobodyさん
02/06/27 16:49ID:???0870nobodyさん
02/06/27 18:52ID:???0871nobodyさん
02/06/27 19:13ID:???0872nobodyさん
02/06/27 19:44ID:???0873文系の人
02/06/28 01:41ID:lzsbmJ/32人にメールしたい。
open(MAIL, "| $dir -s hogehoge $address") || exit;
print MAIL $data;
close(MAIL);
を応用したいんだけど$addressの中身はどう区切るの?
0875文系の人
02/06/28 02:07ID:lzsbmJ/3あと、man mailでも載ってないのでよろしく
0876nobodyさん
02/06/28 02:17ID:???open(MAIL, "| $dir -s hogehoge $_") || exit;
print MAIL $data;
close(MAIL);
}
0877nobodyさん
02/06/28 02:21ID:???bin/mailのアドレスの区切りは普通スペースです。カンマでもいけたりして。
記憶で書いてるので、いちおコマンドラインからmail打ってテストしてね。
0878nobodyさん
02/06/28 17:28ID:eZvzGrmw自作Perl CGIの以下のコードが、IEとNN6系ならOKなんですが、
NN4(win,linux)だと表示されないと指摘されました。
<INPUT NAME="name" TYPE="hidden" VALUE="namae">
<INPUT NAME="passwd" TYPE="hidden" VALUE="pasuwa-do">
<CENTER><INPUT TYPE="submit" value="送信"></CENTER>
NN4のソースでは、上記のように表示されますが、画面上では表示されません。
NN4のバグでしょうか?なにかミスでもありますでしょうか?
0879&r
02/06/28 17:31ID:???:
</FORM>
書いてる?
0880nobodyさん
02/06/28 17:33ID:???0881nobodyさん
02/06/28 17:44ID:eZvzGrmw...
(いろいろあって...)
...
<CENTER><INPUT TYPE="submit" value="送信"></CENTER>
</FORM>
です。
>>880
hiddenで問題ですか?
0882&r
02/06/28 17:51ID:???NN4.7があるから確認したる。
0883nobodyさん
02/06/28 17:57ID:???ソースは長いのでどうかと...
自分で確認しました(NN4.7 on linux)が表示されませんでした。
googleでバグを探しましたが、でてきませんでした。
とりあえず、ここにいる人がすぐわからないということは、
きっとマニアックなバグか、単純な閉じわすれとかなのかなぁ〜とは
思います。
0884&r
02/06/28 17:58ID:???0885CHANCE FOR EVERYONE
02/06/28 19:02ID:hU48lsFKすべては変わる。時代は変わった。
といったのは、堺屋太一。
この変革期はチャンスでもあります。
あなたも、チャンスをここからスタートさせませんか?
http://ailove22.fc2web.com/lpd/index.html
このウェブを読んで考えてみてください。
かき食えば、金が鳴るなり、法隆寺。
書き加えれば、金が生るなり、ホームページ。
0886nobodyさん
02/06/28 19:14ID:???<span STYLE="visibility:hidden"><layer VISIBILITY=hidden>
というタグを削除したところ表示されるようになりました。
返事をしてくれた方ありがとうございました。
0887nobodyさん
02/06/28 19:27ID:???0888nobodyさん
02/06/29 03:25ID:???0889nobodyさん
02/06/29 11:07ID:???と言われたんですが まずいんでしょうか?
0890nobodyさん
02/06/29 11:34ID:???0891&r
02/06/29 13:02ID:???ここで聞く前に、言った本人にまずその根拠を聞くようにしたほうがいいのでは?
その環境特有の事情かも知れないから。
0892nobodyさん
02/06/29 23:46ID:???0893nobodyさん
02/06/30 14:42ID:???0894nobodyさん
02/07/01 03:55ID:VdntohUQクライアントがパッケージとして汎用性のあるものを求めているんだけど、Windowsベース(ASP)って結構使われているのでしょうか?
0895nobodyさん
02/07/01 09:10ID:???0896nobodyさん
02/07/02 14:31ID:gDEpS/GF送信部分は
以下のように
if ($MailServerActive){
$smtp = Net::SMTP->new('192.168.2.2');
if (!$smtp){
$msg = "SMTPサーバ[$Server]との接続に失敗しました\n";
&jcode::convert(\$msg,'sjis');print $msg;exit;
}
$Sub = jcode($Sub)->mime_encode;
$Name = jcode($Name)->mime_encode;
$Value = jcode($Value)->jis;
$smtp->mail($FromMailAddr);
$smtp->to("$To");
$smtp->data();
$smtp->datasend("Content-Transfer-Encoding: 7bit\n");
$smtp->datasend("Content-Type: text/plain; charset=\"iso-2022-jp\"\n");
$smtp->datasend("From:\"$Name\"\n");
$smtp->datasend("To:$To\n");
$smtp->datasend("Subject:$Sub\n");
$smtp->datasend("$Value\n");
$smtp->dataend();
$smtp->quit;
しています。
pc AUの携帯だと通常どおりに見えるのですが、
jskyだと一覧で表示させたときにタイトルが変になり、
imodeだと内容が全く見えません。
エンコードの方法も内容はsjisでヘッダはmime_encodeで
エンコードしてるのでこれでよい気がするのですが・・・
原因ご存知の方教えてください
0897nobodyさん
02/07/02 15:09ID:???タイトルぐらいJISコードをBASE64にしろ。
0898896
02/07/02 16:27ID:gDEpS/GFうううう
これでタイトルをbase64にしている気がするのですが・・・ちがうのですか?・・
$Sub = jcode($Sub)->mime_encode;
0899nobodyさん
02/07/02 16:55ID:v6Enfs2h0900nobodyさん
02/07/02 19:48ID:???http://www.am.wakwak.com/~wild/cgi-bin/eb/ebs.cgi
エンドレスバトル
無料ネットゲーム
敷居は低いが駆け引き最高
0901nobodyさん
02/07/02 21:19ID:ctQuiyfJこんなのは、皆さん使ってますか?
http://homepage1.nifty.com/wizman/app/perlfactory/index.html
0902nobodyさん
02/07/02 21:35ID:???0903901
02/07/02 21:38ID:ctQuiyfJじゃあ、ヒット&アウェイですか?(謎
0904nobodyさん
02/07/02 21:50ID:???0905nobodyさん
02/07/02 21:53ID:???でいい。
0906901
02/07/02 22:10ID:ctQuiyfJなるほど!正直高いなぁ〜と思ってました。
ちゃんとコンパイル毎に確認します。ありがとうございました。
0907nobodyさん
02/07/03 06:33ID:???どこに聞いて良いやら迷いましたが・・・
ファイルをダウンロードさせるときに
print "Content-type: application/octet-stream\n";
print "Content-length: $fsize\n";
print "Content-Disposition: inline; filename=$name\n";
print "\n";
print `/bin/cat $dl_file`;
で提供してるんですが
サイズが5M越えたくらいのファイルを落とすと
空のファイルになってしまいます。
どうにかならのでしょうか?
直リンクでは落とせるのですが。
アパッチの制限とかなのかなー
0908nobodyさん
02/07/03 07:29ID:???ヒェー!((((((;゚Д゚))))))ガタガタブルブル
0909nobodyさん
02/07/03 08:54ID:???0911907
02/07/03 09:21ID:???$dl_fileはソースに固定で持っているので
任意には変えられないです。
それでもマズー?
0912nobodyさん
02/07/03 10:55ID:???それなら大丈夫だと思うけど、名前からしてファイル名(可変)だと思ったからなぁ(笑)
(ちゃんとチェックすればそれでも問題ないけどね)
>>907はやっぱりサーバの制限じゃないかなぁ・・。
0914nobodyさん
02/07/03 13:50ID:???それだと、5M以上のデータを一度まるまるメモリにためることになるんじゃない?
system( '/bin/cat', $dl_file );
ではだめ?
0915907
02/07/03 14:29ID:???自分でちっとやってみた。
catじゃなくて他のコマンドつかってみたら
ダメだったので/etc/passwdも読めないだろーとおもたら
(・∀・)デキチャッタ!!!
でもパスは暗号化されてるんだよねって、そういう問題じゃないかw
今後気をつけます。
>>912
ファイルをパラメータを入力するとしたら
パスを直に入れる仕様だと穴は避けられないような気もしますなぁ。
チェックいうても今のスキルではムズかしそうなんで
対象ファイルのリストを別に持っておくくらいが関の山かと。
>>914
はーなるほど。
一応
open(IN,$dl_file);
print <IN>;
close(IN);
でもやってダメだったような気もするです・・・
確認してみます、ドモドモ。
0917nobodyさん
02/07/03 14:36ID:lwKk8XgU読み込みopen(IN,"$log")と
書き込みopen(OUT,">$log")が
同時に発生したら
ログファイルが壊れる可能性は高いですか?
言語はperlv5.6.0です。
0919nobodyさん
02/07/03 15:27ID:???0920名無しさん
02/07/03 15:53ID:???しょうか?以下のようなスクリプトだと、エラーメッセージが返されてしまいます。
なお、スクリプト中の $message = ....の右辺を普通のhtmlファイルなど
(例えば"GET http://pc.2ch.net/php/subback.html HTTP/1.0\n\n";)
にすると何も問題なくゲットできるのですが。
#
#-------------以下、スクリプトの内容
#
use Socket;
$port = getservbyname('http','tcp');
$svname = "pc.2ch.net";
$ipaddr = inet_aton("$svname") or die "$svname が見つかりません。\n";
$socket_addr = pack_sockaddr_in($port,$ipaddr);
socket(SOCKET,PF_INET,SOCK_STREAM,0) or die "ソケットを生成できません。\n";
connect(SOCKET,$socket_addr) or die "$svname に接続できません。\n";
select(SOCKET); $|=1; select(STDOUT);
$message = "GET http://pc.2ch.net/test/read.cgi/php/1019561283/l5 HTTP/1.0\n\n";
SOCKET $message;
print <SOCKET>;
close(SOCKET);
0921nobodyさん
02/07/03 16:15ID:???0923920
02/07/03 16:46ID:???別にPerlに限った話ではないので、同趣旨の質問がどこかにある可能性
は大きいと思ったのですが、探しきれませんでした。
0924nobodyさん
02/07/03 16:54ID:???とあるperlで書かれたCGIを使おうと思うのですが、
そのまま、サーバへアップすると動くのですが、少しでもコードを変更する
と500エラーを起こします。
なぜだかさっぱりわからないのですが、何か分かる方いらっしゃいますか?
ちなみにコードは、スペースを増やすとかだけでもダメになります。
winからFFFTPで文字コードも改行コードも変換しなくでもだめです。
linuxのange-ftpとかで編集してもダメです。
鯖はlinuxです。
改行コードをLFにしてもダメでした。
文字コートか改行コードあたりだとは思いますが、よくわかりません。
手元のlinuxでperl -cw すると、i-modeの絵文字関係のコードが
ひっかかってるっぽいです。
でも、その辺のコードをいじってはいません。
色々試しましたがダメでした。
もし、何か頭に浮かぶものがありましたら、書き込んでいただけると
ありがたいです。
ちなみに、スクリプトは、以下のメル友サーチです。
ttp://download.torworld.com/data/mail/readme.html
0927nobodyさん
02/07/03 17:53ID:???read.cgi経由で2chのログを読むよりdatファイル直読みのほうが
サーバの負担が軽くてウマーではないか。
0929nobodyさん
02/07/03 18:50ID:???壊れないと思うけど、
open(OUT,">$log") でいったんファイルが空っぽになるので、
open(IN,"$log") の人が空ファイルを読み込んでしまう可能性はる。(っていうか同時ならそうなる)
>>924
いじった後、保存する時の文字コードが原因だと思う。
おそらくオリジナルはEUC-JPで保存されていて、いじった後Shift_JISで保存してるんじゃないかな?
それで 「i-modeの絵文字関係のコード」 ←がエラーになると。
0931nobodyさん
02/07/04 00:30ID:J1twAOP5へ飛ばすときのcgiを作っています。今の段階でできているのは、UserAgentが
何であるか判断し、入力データを分解して、参照したいURLを見るのまでです。
URLにくまれた引数の対応とか、mail toやPhone toなんかのリンクの場合
なんかもできなくています。
作ったのは、↓
my($encoding) = @_;
my($method) = $ENV{'REQUEST_METHOD'};
if ($method eq 'GET') { $query = $ENV{'QUERY_STRING'};}
local(@query) = split(/&/, $query);
foreach (@query) {
tr/+/ /;
($key, $val) = split(/=/);
$key =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c", hex($1))/ge;
$val =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c", hex($1))/ge;
$val =~ s/\r\n/\n/g;
$in{$key} = $val;
}
use LWP::UserAgent;
$ua = new LWP::UserAgent;
my $agent = $ENV{'HTTP_USER_AGENT'};
$ua->agent($agent);
my $req = new HTTP::Request POST => $val;
$req->content_type('application/x-www-form-urlencoded');
$req->content('match=www&errors=0');
my $res = $ua->request($req);
if ($res->is_success) {
print $res->content;
} else {
print "No!";
}
print $res->content; って出すと、外部のリンク先をよんだ
ままなんですよね?
0932nobodyさん
02/07/04 00:48ID:???ようするに飛ばしたいのか?
Location ヘッダを使えよ。
しかし、なんのためにLWPモジュールなんてつかってるんだ?
そんなもんつかうことなんてないだろ。TCP接続なんて自分で書いたほうが
コンパクトで軽いもんが書けるだろ。
0933nobodyさん
02/07/04 02:05ID:+/6rMDAWこの場合
if ($agent eq "0"||"1"){ print "携帯ページです\n"; }
ersif { print "PCページです\n"; }
と
if ($agent eq "2"){ print "PCページです\n"; }
ersif { print "携帯ページです\n"; }
この二つは同じ処理になるはずですが、なぜか上の場合"0"or"1"でもPCページです
と表示してしまいます。とりあえず下の方法はうまくいきます。
何が考えられるでしょうか?
0934907
02/07/04 02:29ID:???で(・∀・)デキタ!!
print <IN>;
ではやっぱりだめでした(0byte)
これも一気に読み込むんですかねぇ
なにはともあれ
ありがとうございますた。
0938nobodyさん
02/07/04 03:00ID:v+ukjorBディレクトリに気をつけて元のファイルと同じようにおいてindexにアクセス
しても何も起こりません。何が間違っているのでしょうか。。。
なにか他に気をつけるところとかあるのでしょうか。。
0940nobodyさん
02/07/04 04:18ID:v+ukjorBあ、ちゃんとwwwサーバにおきました・・・
「普通において」とか「元のファイルと同じようにおいて」とか言われても
わかりません。
スクリプトの配布先で説明でも見たら?
0942nobodyさん
02/07/04 11:10ID:uvCaP6/B>ちなみにコードは、スペースを増やすとかだけでもダメになります。
バイナリエディタを入手して、何が変えられたのか確認すること。
それ以前に、複数の文字コードに対応するテキストエディタを入手すること。
0943nobodyさん
02/07/04 13:27ID:/hy7azYFダウンロードになってしまいます。
しかたが無いのでMS-DOSで確認してから
WWWサーバーにアップロードしています。
ローカルでは見た目が分からないので困っています。
なんとかローカルでもhtmlから呼び出せるようにならないものでしょうか?
0944nobodyさん
02/07/04 13:30ID:???0945943
02/07/04 14:13ID:???ANHTTPDです。レス有難うございます。
漏れの使い方が間違っていました。
htmlをダブルクリックで開いていたのが原因でした
ローカルのアドレスでhtmlを呼び出して動作確認したら動きました。
回線切って逝って来ます。
0946nobodyさん
02/07/04 14:17ID:???ではなく、
file:///
だったわけか。
0947nobodyさん
02/07/04 15:24ID:f03h23nO>>929
文字コードは変えていません。
FFFTPでもコードを変えていません。
エディタはemacs系なので、EUCをS-JISでセーブしていないと思います。
というより元のコードがS-JISです。
>>942
テキストエディタは、winではxyzzy。linuxではemacsを使っているので、
文字コード関係ではないと思います。
んー、もうちょっと詳しく調べてみます。
0948nobodyさん
02/07/04 15:38ID:???>>924に鯖がLinuxって書いておきながら、今度は元コードがSJISってことが
わかっててアップ時もコード変えてないんならダメだろ。
0949nobodyさん
02/07/04 15:56ID:62lEfN1Mある文字列の後が、文の末尾又は ,
というような正規表現はどのようになるのでしょうか。
正規表現以外でもっと効率のいい方法を知っている方が居たら
ご教授いただければ幸いです。
0951nobodyさん
02/07/04 16:12ID:62lEfN1M文の先頭、文の末尾で ^ または $ を | 記号で使えたんですね。
使えない物として勝手に解釈してしまっていました。
ありがとうございます。
一応、やった方法としてはこのような感じです。
aaaという文字列を調べたい場合に、
$string =~ s/(?:^|\,)(aaa)(?:$|\,)/$1/;
やはりこれ以上、効率のいい方法はないのでしょうか?
0952nobodyさん
02/07/04 16:53ID:???分けて書くようにしろ。
$string=~ /^\,?aaa/; $string=~ /aaa\,?$/;
あと、なんで同じ文字に置換してるんだ?
0953nobodyさん
02/07/04 23:11ID:seos7CanPerlのCGI設置で悩んでおります。
当方家庭内向けにBBSを設置しようとVineLinux2.5 + Apache + jperlで構築中です。
ですが、WEBブラウザで表示させようとしてもInternalServerErrorになってしまいます。
バージョン及びPerlのプログラムは以下の通りです。
VineLinux2.5
Apache 1.3.24
perl 5.005_03
jperl 5.005_03_990822
REBBS3.2 http://www.ruuzu.com/
http://botan.sakura.ne.jp/~ruuzu/HTML/cgi2.htm
どうかご助言を宜しくお願いします。
0954nobodyさん
02/07/04 23:13ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。