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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/07/06 13:41ID:Mpxtn4bk
CGIの運用に関する質問スレッドです。

※CGIは特定の言語に依存するものではありません。

※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
  ↓
  Perl 初心者コーナー Part13
  http://pc.2ch.net/test/read.cgi/php/1022731565/l50

過去ログ・関連スレッドは >>2
0778nobodyさん02/09/01 12:02ID:???
>771
<form action"..." target="...">
とかいう問題じゃないよね?
0779nobodyさん02/09/01 12:10ID:???
>>777
どこの鯖?
0780nobodyさん02/09/01 12:17ID:???
>>777
glob使えばいいんじゃねの?
0781nobodyさん02/09/01 12:18ID:???
>778(自己レス)
action「=」が抜けてた。
鬱死。
0782nobodyさん02/09/01 12:20ID:???
>>780
こういうのは軽いほうがいいからopendirのほうがまだいいだろ
0783nobodyさん02/09/01 13:33ID:???
CGIの運用に関する質問とは言い難いかも知れないが。

CGIって言葉の意味ってどんなもんでしょう。
「デジタル用語辞典」とかに載ってる様な、「HTMLでは実現できない云々」
とか言う方はわかるんですが、

「PHPはCGIより速い」
という場合の「CGI」の意味がちょっとわからんす。
先ほどの定義ではPHPとかもCGIなような気がするんで。
もしかしてこういう場合は、
mod_phpとかmod_perlに対して、mod_cgiという意味で使っているのでしょうか?
078478302/09/01 14:21ID:???
いちおーあげとくんべか。
0785nobodyさん02/09/01 15:18ID:???
>783
>「PHPはCGIより速い」
こんな馬鹿なこと言ったの誰だ?
0786nobodyさん02/09/01 16:33ID:???
CGI=CommonGatewayInterface
CGIは言語ではなく技術を総称した言い方
>>783の「PHPはCGIより速い」っていった人はCGI=Perl言語と勘違いしてるだけ
0787どうでもいいが02/09/01 18:13ID:???
>>786
「PHPはPerlより速い」っていうのもどうかと思う。
いや、もちろん>>783の引用元がアホなだけなんだが。
078878302/09/01 19:08ID:???
えーと、なんか誤解(かどうか自信無いですが)かもしれないんで、

http://pc.2ch.net/test/read.cgi/php/1005122528/46-47n
例えばこういう使い方での「CGI」って言葉の意味です。
078978302/09/01 19:17ID:???
またsageで書いちまったage

>>788リンク先みたいな場面だと普通にCGI <-> mod_perlがどうこうなどと書いてあんですよね。
0790nobodyさん02/09/01 19:32ID:???
>788
それはmod_perlの命令の一つに「CGI」というのがあるだけと思われ。
0791<>02/09/01 20:55ID:8fmb+fu6
ttp://members.tripod.co.jp/rps/tips/tips15.html
ここに、

半角→全角
tr/A-Za-z0-9/A-Za-z0-9/;
その反対
tr/A-Za-z0-9/A-Za-z0-9/;

と書いてありましたが本当でしょうか?
0792 ◆JAPH9PWA 02/09/01 21:21ID:???
>>791
自分で試してみようとは思わないの…?
とりあえず、perl5.6以上で文字コードutf8にしてuse utf8;でなら可能だけど。
さもなくばJcode.pmのJcode::trメソッドを使う、とか
0793nobodyさん02/09/01 21:22ID:???
>>791
JPerl なら本当。一般的には嘘。
0794nobodyさん02/09/01 21:24ID:???
>>787
確かに。
PHP と引き合いに出すなら mod_perl と比較しないと意味ないよね。
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

としましたがだめでした。
0796nobodyさん02/09/01 21:33ID:???
>795
>>793
0797nobodyさん02/09/01 22:13ID:???
>>794
いや、PHPにもApache組み込み型じゃなくてCGI型があったはず。
インタプリタ言語としての性能差比較なんだろうか??
0798nobodyさん02/09/02 15:54ID:2dKvJqig
>>763
やっぱり和鳥ってCGI使いにくいんですか?
0799nobodyさん02/09/02 16:43ID:???
>>798
訊く前にFAQみれ
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:???
C
わかるかっ!
0802俺02/09/02 17:47ID:???
Please,だれかおしえてくれ・・・
0803nobodyさん02/09/02 18:20ID:???
>>800
私はできますが、あなたが出来るかはわかりません。
0804俺02/09/02 21:28ID:???
サンキュー
0805nobodyさん02/09/02 21:29ID:fApWiCnr

http://www.leverage.jp/bloom/qry/search.qry?function=Search
080678302/09/02 22:55ID:???
>>797
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:???
>>801
C言語CGI専用スレッド
http://pc.2ch.net/test/read.cgi/php/988918264/
の事か?
0808nobodyさん02/09/03 10:38ID:+fworGnI
シンプルに現在時刻をdatファイルに書き出す方法ないですか?
0809nobodyさん02/09/03 11:34ID:???
>>808
現在時刻ってUNIXタイムスタンプでいいの。
0810nobodyさん02/09/03 12:12ID:dMsxDOGy
下のcgiを動かすと文字化けしてしまうんですが何故ですか?

#!/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";
081180802/09/03 12:15ID:05tL4XNt
>>809
GMT-8で時間を取得したいです。
あとdatに書き出す方法が分からないです。

すみません。調べても分からなくて。
0812nobodyさん02/09/03 12:54ID:???
>>810
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 $_;
}
}
はどちらが良いのでしょうか?
081481302/09/03 22:32ID:???
>ログがファイルの書き込み処理で
ログファイルでした。すみまちぇん。
0815nobodyさん02/09/03 22:33ID:???
foreach(@HOGE){
  if(index($_,"$aaa,") == 0){
    print OUT $gola;
  }else{
    print OUT $_;
  }
}
漏れならこうかな?
081681302/09/03 22:35ID:???
>>815
素早い回答ありがとうございました!
815さんのやり方の方がかっくいいのでこれからそのやり方にさせて板抱きます!!
ありがとうございました。
0817nobodyさん02/09/03 22:57ID:qCA/TmZF
>>816
かっくいいわるい以前に負荷が全然違う。
(split(/,/))[0]
は普通にsplitするよりも負荷高いから余程の理由が無い限りは
ループ内で使うもんじゃない。

ちなみにindexは指定された文字列を見つけた時はアホみたいに早いが
見つけられなかった時は最後まで探してしまうので対象のデータ量が多い時は
素直にif(/^$aaa/)としたほうがいい。この場合は$aaaで始まってるか始まって無いか
分かった時点で判定終了する。
0818nobodyさん02/09/03 23:03ID:???
カンマ忘れた
(/^${aaa},/)
0819nobodyさん02/09/04 02:56ID:???
>>817
そうなんですか。
わかりました。
負荷と速度を気にしているんでよく覚えておきます。
0820nobodyさん02/09/04 10:04ID:lAlY0Cd6
yahooのジオシチーにCGIのプログラムを
ダウンロードしてみたのですが動きません。
なぜですか?
バーナーを張り付けたからでしょうか?
0821nobodyさん02/09/04 10:07ID:???
日本語から習いなおしてください。
0822nobodyさん02/09/04 16:22ID:A3ZRMRKj
ある有料サーバーを使っているのですが、ファイルを出力するCGIを
実行する際に、専用のSSLサーバー(ttps://***.site-secure.net/)
を通すとInternalServerErrorが出てしまいます。
どなたか分かる方いたらお願いします。
0823nobodyさん02/09/04 16:23ID:???
>>822
つーか、有料サーバならサポートくらいあんだろ。
そっちで聞けよ
0824nobodyさん02/09/04 16:25ID:???
>>822
マルチはいやです。
0825nobodyさん02/09/04 23:36ID:9zek6dkE
methodで指定する送信方式ってGETやPOSTが一般的だけど、他にも
HEAD, PUT, DELETE, LINK, UNLINK, OPTIONS, TRACE, PATCH
とかあるらしい。
この送信方式って、どう違うの?
0826nobodyさん02/09/05 00:03ID:???
検索ぐらい汁。
漏れはHEADよく使うけどな。
0827nobodyさん02/09/05 01:47ID:???
レンタルサーバ(共有)を利用していますが、cronでPHPスクリプトを動かしたいとき、
CGIにしなけりゃいけないの?
0828nobodyさん02/09/05 02:18ID:???
>>827
レンタルサーバで聞いてくれ。
0829nobodyさん02/09/05 02:44ID:???
>>827
そのとうり
0830nobodyさん02/09/05 07:09ID:???
>>825
乱暴な言い方すると通信のしかたはどれも一緒。
0831nobodyさん02/09/05 11:57ID:rTTP6Czn
アクセスログ解析するcgiで良い奴、便利なものってなんですか?
0832nobodyさん02/09/05 13:54ID:???
>> 831
#! /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さん@EMACS2102/09/05 14:12ID:???
$fh->close; 過去悪いな(藁
0834nobodyさん02/09/05 14:50ID:???
http://www.i-say.net/cgi/tips_view.php3?id=44 を使って

$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:wlSd51fU
掲示板CGI「挨拶しちゃろう!」でIPを抜くにはどうすればいいデスか?
0836nobodyさん02/09/05 17:08ID:ffAWCECf
CGIに特化した質問じゃないんだけど、リファラーを取得して
処理をするプログラムを作ろうとしています。

主要なブラウザやその複数に渡るバージョンで、リファラーを
渡さない(返さない?)ものはあるのでしょうか?
ご存知でしたら教えてください。
0837nobodyさん02/09/05 17:10ID:9DT7IxqZ
Operaは設定でリファラをオフに出来る。
セキュリティソフトの一部はHTTPリクエストからリファラ行を削除する。
一部の人はProxomitronなどでリファラを消している。
083883602/09/05 17:34ID:ffAWCECf
>>837
「セキュリティソフトの一部」とはノートンとかウィルススキャンとか
メジャーな部類に入るものでしょうか?

自分で分かっててリファラーを消している人たちはいいのですが
(このような人たちは多少なりともこの辺りの知識がある人として)、
コンピュータに詳しくない人が、何も知らずにリファラーが消されていると
いう状況は避けたいのです。
0839nobodyさん02/09/05 19:53ID:???
それ無理だろ。
0840nobodyさん02/09/05 20:20ID:???
>>838
なんで?
0841nobodyさん02/09/05 20:41ID:???
「Referer を吐いてないことで正常に処理されてないな」
と思って、一時的に Referer を吐くように設定し直すからでは?
0842nobodyさん02/09/05 22:14ID:9DT7IxqZ
?
0843nobodyさん02/09/05 22:17ID:???
>>834

>>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";
}
}
0844sage02/09/06 01:41ID:NZiXunYP
プログラムはRefererをONにしないと正常に動作しない可能性があります。

[そんなこと知っている]
[よくわからないが見る]
[戻る]
0845nobodyさん02/09/06 03:25ID:???
>>836
そうしようとしないかぎり、リファラ送らないことはほとんど無いので、
とりあえず安心しとけ。

>> 844
プログラマの視点からしか物が見られない典型的な事例ですか?
せめて、
「このウェブサイトはRefererをONにしないと正常に閲覧できない可能性があります」
ぐらいにしてくれ。
0846nobodyさん02/09/07 02:39ID:???
プログラム -> ウェブサイト
動作しない -> 閲覧できない
出力に置換のラップかけとく。
0847nobodyさん02/09/07 19:30ID:???
>>1
特にないです。
0848nobodyさん02/09/07 22:01ID:IU7eXXom
ヤッホー
0849nobodyさん02/09/08 16:20ID:QxRWekvC
Windowsで作成したiモードサイトのcgiを直すことになったとき、
Macなので、どうやって動作テストすればいいか分かりません。
iモードツールみたいなもののMac版ってあるんでしょうか?
0850nobodyさん02/09/08 16:28ID:???
マルチ氏ね
0851nobodyさん02/09/08 17:40ID:lY3xuSDW
>>846
閲覧←これってなんて読みますか?
漢字にしたいときにどうしてもでてこない。
0852nobodyさん02/09/08 17:42ID:Nhv16nwZ
小学生かよ
0853nobodyさん02/09/08 17:47ID:???
辞書引けボケ
0854nobodyさん02/09/08 18:02ID:y2CqVjI0
えつらん
0855nobodyさん02/09/08 18:03ID:???
>>854
。・゚・(ノД`)・゚・。ありがとうございます
0856nobodyさん02/09/08 19:51ID:vC+G3Rc8
はじめまして。夢カウンタなるものを設置したいのですが、うまく表示されません。
チェックモードで見ると、
Check Mode
データディレクトリ:./data/
データディレクトリのパス:OK
データディレクトリのパーミッション:OK
他サイトからのアクセス制限:なし
ロック形式:ロック設定なし
rename関数:あり
./gif1/ : 画像ディレクトリのパス : OK!
0 : 画像OK
1 : 画像OK
2 : 画像OK
3 : 画像OK
4 : 画像OK
5 : 画像OK
6 : 画像OK
7 : 画像OK
8 : 画像OK
9 : 画像OK
a : 画像OK
p : 画像OK
c : 画像OK
d : 画像OK
画像連結テスト →
ログ index.dat : パーミッションOK
となって、画像連結テストが×となって表示されません。
他の過去のログを見てみると、
$base_urlを指定しない。&base_urlを空にすれば直る。
となっているのですが、何度やってもNGです。
どなたか、教えていただけるとありがたいです。よろしくお願いします。
0857nobodyさん02/09/08 20:26ID:???
>>856
鯖どこ?
Xreaとかだとカウンタは使えなかったような・・・
0858nobodyさん02/09/08 20:58ID:???
>>856
サポート掲示板で相談にのってもらいながら2ちゃんねるにマルチポストですか。
0859nobodyさん02/09/09 09:21ID:eKCzcjoF
より沢山情報を集めたいわけだから、
いちいち嬉しそうにマルチポストとか言うのやめてくれ。
分からない奴にしたら必死なんだから。
0860nobodyさん02/09/09 10:10ID:???
>>859
より簡単に。ダロ。
自覚があるなら、文頭に「マルチポストで済みません」とでも書くべきだ。
0861nobodyさん02/09/09 16:31ID:ZrHLFC/J
すみません、ファイルアップローダ(画像じゃなくてMP3とかUPする)
探してるんですが良いのが見つかりません。。
はずきちゃんねるにあるのよりもうちょっとオシャレな奴で、
何かいいのあれば教えて下さい。
0862nobodyさん02/09/09 16:39ID:???
>861
こんなCGI探してますスレッド Ver6
ttp://pc.2ch.net/test/read.cgi/php/1021897804/

スレ一覧くらい見ろ。
086386102/09/09 16:40ID:ZrHLFC/J
>>862
どうもすみませんでした
0864nobodyさん02/09/09 21:50ID:IRt9L7Rw
あるディレクトリィが存在するのを確認する為にはどうすればいいのでしょうか?
if(-e "$dir"){print "ある";}
では駄目でした。
-eはファイルの存在を確認するのに使いますよね?
ならディレクトリィは?
0865nobodyさん02/09/09 21:57ID:6CRW+SNV
できたけど
0866v02/09/09 21:59ID:LueiQolI
■10.000円の高額収入
1件につき最大10.000円の高額収入。月収100万円以上も可能。
■画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
■誰でも出来ます!
インターネットができる環境の方なら誰でも参加可能です。
インターネットを利用したビジネスですので、自宅や会社で好きなときにで
きるビジネスです。
■専門的な知識は一切不要!
ビジネスに必要なツールは全て当社で用意いたします。
また、サポートも万全です。
■詳細は今すぐこちらから
http://www.bea.hi-ho.ne.jp/paisen/
0867オッゾ02/09/09 22:04ID:HEASrRw7
CGIをパソコンのサーバでテストをしたいのですが、
CGIファイルを何処に預ければいいか分かりません。

お手数でしょうが教えてください。
0868nobodyさん02/09/09 22:06ID:IRt9L7Rw
>>865
ほんとにできました!
ありがとうござまし!!!!!!!
0869nobodyさん02/09/09 22:07ID:???
>>867
どこにでも。
0870nobodyさん02/09/09 22:09ID:???
>>868
ワロタ
0871オッゾ02/09/09 22:09ID:HEASrRw7
>>869様
レス、ありがとうございます。
ですが、まだよく分かりません。

アドレスはどういうふうに書けば良いのでしょうか?
0872nobodyさん02/09/09 22:12ID:???
そのサーバーの管理人にでも聞け。
ローカルでテストなら、自分で決めろ。
0873オッゾ02/09/09 22:16ID:HEASrRw7
自分のPCで確認テストをやろうと
思っているのです。

Cドライブにcgiというフォルダを作成し、
cgiフォルダの中にtesu.cgiというファイルを作成しています。

そのtesu.cgiファイルを自分のPCの
wwwサーバでテストをするには
URLをなんとすればよいのでしょうか。

教えてください。
0874nobodyさん02/09/09 22:17ID:6CRW+SNV
サーバは何使ってるんだよ
0875nobodyさん02/09/09 22:18ID:???
>>873
設定がどうだか知らんが、
http://127.0.0.1/cgi/tesu.cgi
でいいんじゃねぇの。
C:\がルートとして設定されてるならな。
0876オッゾ02/09/09 22:23ID:HEASrRw7
>>874様
>>875様
レスをつけてくださって
ありがとうございます。
>>875様のレスの通りやってみたら
できました。

ありがとうございました。
0877nobodyさん02/09/11 01:28ID:Iryg/10A
i-modeサイト用のCGIで質問があります。
入力フォームに対して確認画面を出したいのですが、
i-modeだとjavascript使えないので、

<a href="javascript:history.back()">戻る</a>

というのは、どうすればいいですか?
■ このスレッドは過去ログ倉庫に格納されています