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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/09/22 23:15ID:???
CGIの運用に関する質問スレッドです。

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

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

過去ログ・関連スレッドは >>2
0751nobodyさん02/11/29 08:21ID:???
>>750
777じゃ動かん可能性大
せめて755に
0752nobodyさん02/11/29 08:30ID:???
>>750
FTP Proxy Serverと書いてあるが・・・。
0753nobodyさん02/11/29 14:00ID:pnw7T/xi
>>747
いんくるーどヴぁーちゃるでいけ
0754nobodyさん02/11/29 15:41ID:dN9JwVyp
質問です。
Apacheを使わずにCGIだけを使って、個別ファイルのアクセス制御をしたい
です。例えば、最初のページで認証を行なって、ディレクトリやファイル毎に
アクセスを許可したり、拒絶したりするようなものです。
どのようなやり方が一般的でしょうか?

私の考えた方法は、アクセス毎にsession-idをつくって、session-idと同じ
名前のディレクトリをつくるというものです。もっとスマートなやり方が
ありそうです。よろしくお願いします。
0755nobodyさん02/11/29 18:19ID:???
>>754
普通ファイルアクセスに必ずCGI噛ますだろ。

いちいちディレクトリ作るって中身はどうなのさ?
いつ削除されるのさ?
0756nobodyさん02/11/29 18:30ID:dN9JwVyp
あっ、そうか。
アクセスするファイルを、Apacheでアクセスできないディレクトリ
(ex /home/hoge/data/)に置いて、CGIからアクセスすればいいの
かな。そういう感じですか?

ディレクトリは、アクセスする度にSession-idと時間を見て、作ったり
消したりかなーと思ったの。初学者なんで、すんまそん。
0757nobodyさん02/11/29 20:09ID:I1ECfjSv
> Apacheを使わずにCGIだけを使って
Apacheは鯖プログラム。
使いたくないならAnhttpdでもIISでもなんでもどうぞ。
0758nobodyさん02/11/29 20:10ID:I1ECfjSv
とか書いた上で、
.htaccessだけじゃだめ?>認証
したいことがわかりません。
0759nobodyさん02/11/30 00:16ID:01xWlARz
>>755-758
すいません。すこし自分の頭、整理します。
0760nobodyさん02/11/30 08:31ID:???
ApacheのBasic認証を使わずに
と言いたいんでしょう。
0761nobodyさん02/11/30 08:35ID:01xWlARz
>>760
そのとおりです。
0762nobodyさん02/11/30 17:56ID:YbgwiT2O
The Roomのranklinkで複数のカテゴリを1つにする
総合ランキングのカテゴリを作りたいのですがどなたか
作成している人おりますか?

http://breed.kir.jp/moro/

サイトの総合ランキングの見たいな感じです。
0763nobodyさん02/11/30 19:43ID:Lc6V5akA
>>762
CGI探していますスレにどうぞ。
0764nobodyさん02/12/01 03:58ID:???
cgiをどこに置いてもオッケーというプロバイダでホームページを作ってるんですが、
トップなどを置くディレクトリ(html)に入れたら動くのに、
そこからさらにサブディレクトリを作って、その中にcgiを入れると
動かなくなってしまいます。
Q&Aにはとくに対処法が書いてないのですが、
サブディレクトリをつくることで、cgi本体のparlの位置などを変える必要があるんでしょうか?
076576402/12/01 04:01ID:2MJb4ZlN
書き忘れましたが、バーミッションの設定などは合っていて、
関連ファイルの位置も合っています。
htmlフォルダの直下では動くのに、サブフォルダに移動させると動きません。
スクリプトは、作者によると、KENTさんの日記CGIのアレンジだそうです。
076676402/12/01 04:57ID:???
すみません、自己解決しました。
お騒がせいたしました。
0767nobodyさん02/12/01 16:53ID:EvFcbEYB
掲示板を設置して削除キーみたいのがあるんですが投稿したあとに
logファイルを見るとキーの場所が「2EJAvX55iWfkQ」みたいな感じで
投稿の際に書いた削除キーと異なるようになるのはどうしてですか?
0768nobodyさん02/12/01 17:17ID:???
>>767
暗号化してるから。
入力されたキーを同じように暗号化して比較することでチェックしてる。
暗号化されたキーから元のキーに復元することは不可能だから、漏れても安心。
076976702/12/01 17:19ID:EvFcbEYB
>>768
ありがとうございました。
0770nobodyさん02/12/01 18:31ID:w1QS1aFK
ロックファイルの設定を失敗してしまい、
消せないフォルダが大量に出来てしまいました。
CGIのほうは今修正しているんですが
とりあえず今はそのサーバスペースにモノをおきたいので
消せないフォルダを削除する方法は無いでしょうか?
ちなみにiswebです。
0771nobodyさん02/12/01 18:33ID:???
ROM表示ができて簡単に設置できるチャット探してます(´д`;)
0772nobodyさん02/12/01 19:28ID:s6SWntCi
・フォームに書き込む
↓
・送信ボタンを押す
↓
・そのサイト内の指定したページにフォームに書き込んだ文章が書き込まれていく
 書き込まれた内容は、管理人が削除しない限り書き込まれたまま

ということをしたいんですが、どうやったらできるんですか?
0773nobodyさん02/12/01 19:34ID:???
>>770 どういう方法で消そうとしてできなかったの?

>>772 どこでつまずいてるのかを書いたほうが答えやすい

なんでこう具体性を欠いた質問ばっかなんだ?
077477202/12/01 19:51ID:s6SWntCi
>>773
躓いているのではない。
1からわからないんです・・・
0775nobodyさん02/12/01 20:00ID:ripvnwrq
>772
T-cupか何かの無料レンタル掲示板使えば?
0776nobodyさん02/12/01 20:20ID:???
>>772=>>774
何から何まで聞くつもりか。
氏ねとは言わんがCGI作るのはやめろ。迷惑過ぎ。

こんなCGI探してますスレッド Ver7
http://pc.2ch.net/test/read.cgi/php/1031910901/

これがお似合い。
0777nobodyさん02/12/01 21:16ID:???
>>770
きっとnobody権限でCGIが動くサーバーなんだろう。
1行目にPerlのパス、次の行以下に
rmdir "消したいディレクトリ";
って書いたCGIファイルを作ってアップしてパーミッション設定して実行。
中にファイルがあったらそっちを先に削除してからな。
0778nobodyさん02/12/02 00:40ID:???
PERLでもPHPでもそうなんだけど
locationでjpgに飛ばした場合その画像を
IEの名前付けて保存とすると無題.bmpになるんだけど
どうしてよ?
0779nobodyさん02/12/02 00:50ID:???
>>778
「インターネット一時ファイルの削除」はやってみた?
0780nobodyさん02/12/02 01:18ID:???
>>779
やってみた locationで飛ばした場合だけ無題.bmpになる。
フツウにアクセスした場合は問題ないです。
078178002/12/02 01:59ID:???
Operaだとなんの問題も無い
ヤパーリIEがクソなのか
0782nobodyさん02/12/02 16:00ID:???
君がウンコ
0783nobodyさん02/12/02 16:24ID:???
確かに
0784nobodyさん02/12/02 17:21ID:vPWFuwnv
wwwupl2を使って、現在使っている掲示板に画像アップロード機能を
付けたいんですが、掲示板にその画像を表示させるには
どうしたらよいのでしょうか?もしよろしければご教授くださいませ。
0785bloom02/12/02 17:48ID:Ss+94/LC

http://www.agemasukudasai.com/bloom/
0786nobodyさん02/12/02 20:29ID:???
>784
素直にアップロードのできる掲示板に切り替えろ。それが一番問題がない。
デザインが気に入っているとかほざくんなら、アップロードのできる掲示板のデザインを変えた方がマシ。
0787nobodyさん02/12/03 01:45ID:???
とりあえず暫定的にタグ入力を促した解説文を書いて
掲示板内に設置しました。
でもこれだとかなり不親切だ・・・。
まぁ、あまり使われても困るわけだけど。
どっかに落ちてないかな・・・簡単に導入できるやつ。
078877002/12/03 15:54ID:???
>777さん
解決しました!
ありがとうございました
0789nobodyさん02/12/03 19:21ID:hVzOazjk
Limeアクセスカウンターでページ毎に集計を取ろうと思ってもトップ
しかできません。
<IMG SRC="パス/lime.cgi?page=識別番号&name=ページ名&hp=ウエブページのURL">
を各ページに貼ってるのですが。
よろしくおながいすます。4
0790nobodyさん02/12/03 19:44ID:???
Limeアクセスカウンターって何よ?

識別番号,ページ名,URLは各HTMLごとにちゃんと変えてるのか?
079178902/12/03 19:45ID:hVzOazjk
>>790 http://www.kent-web.com/count/lime.html?
変えてます。
0792nobodyさん02/12/03 21:39ID:???
>>789
そーゆーのは配布元に聞け。
0793102/12/03 23:05ID:???
こんなのはどうでしょうか・・・?

【ついに】Winnyで逮捕者【タイーホ?】
まさか!と思うあなたは
↓↓↓↓↓↓実況スレ↓↓↓↓↓↓↓
http://choco.2ch.net/test/read.cgi/bobby/1038742045/

ありえない!と思ったら
↓↓↓↓↓↓実況スレ↓↓↓↓↓↓↓
http://choco.2ch.net/test/read.cgi/bobby/1038742045/

すんません言葉がおもいつかないですw
0794nobodyさん02/12/04 20:59ID:vkFoEBtZ
雛型PDFから文字列置き換え某の処理やって、PDF出力っていうのを
オープンソースでやりたければ www.zope.org のやつを使うのがベスト。

っていうことでOK?
0795nobodyさん02/12/04 22:27ID:???
http://tohoho.wakusei.ne.jp/lng/199808/98080025.htm
の所に書いてある

>#!/usr/local/bin/perl
>print "Content-Location: http://localhost/jumpto.html\n\n";
>という2行CGIスクリプトを実行したら、Locationと同様にジャンプ
>できました。
って出てるんですがうちでは全く動かないのですが
本当にこれで動くんでしょうか?
0796nobodyさん02/12/04 22:39ID:???
>>759
うちってどこだよ。もしかしてそのままスクリプトをコピペしたのか?
だったら行くわけないだろうに。ApacheかAnHTTPD入れてんのか?
079779602/12/04 22:48ID:???
795に対してだった。スマソ
079879502/12/04 23:01ID:???
もちろんlocalhostのままじゃないよん
ANHTTPDでもUnixApacheでも同じだった。
全くの白いページが表示されますた。
0799nobodyさん02/12/05 09:01ID:???
>>795
4年前の記事。
今は使えない。
0800nobodyさん02/12/06 08:32ID:???
軽く質問です。

CGIの掲示板を改造していまして、デザインを改造していたのですが、なぜか
「送信ボタン」を押すと、次のページで生のソースが表示されてしまいます。

どんなことが原因をして考えられるでしょうか?

ヘッダを書き出す部分は、以下のようになっているのでOKだと思うのですが…

print qq|Content-type: text/html;charset=Shift_JIS\n\n|;
0801nobodyさん02/12/06 08:49ID:???
>>800
すみません。解決しました。

デバッグ用のprint文がcontent-typeを吐き出す前にあったからのようです。
Mozillaではソースが表示されるのにIEはOKなんですね。

ご迷惑おかけしました。
0802nobodyさん02/12/06 12:42ID:???
>>801
細かいことだが「IEがOK」とはこれ如何に。
0803来ないので02/12/06 12:56ID:JJQHVPDo
作ったCGIをオフラインでチェックできるツールってない?
0804nobodyさん02/12/06 13:37ID:???
>>803
環境変数を適宜セットして、実行すれは?
0805nobodyさん02/12/06 13:41ID:ClEQp28P
>>803
ローカルにサーバたてればいいんでないの?
0806来ないので02/12/06 20:00ID:JJQHVPDo
>>804-805
やり方がわからんんす
805のほうが簡単そうなのでそれについて調べてみます
0807nobodyさん02/12/06 21:10ID:???
>803
ttp://tohoho.wakusei.ne.jp/wwwcgi6.htm
検索すりゃいくらでも解説ページ見つかるぞ。
0808nobodyさん02/12/07 00:11ID:PIFiAPiz
登録してもらったメールアドレス(登録件数は1万件とかだとすると)に
一斉にメールを送る処理って重いでしょうか?
0809nobodyさん02/12/07 00:14ID:JEYT/ti0
ttp://pc.2ch.net/test/read.cgi/php/1032704121/-100

このURLってread.cgiはどのように引数を受け取っているの?
相対パスの設定はどのように行なっているの?
0810nobodyさん02/12/07 00:29ID:???
きしゅつ
0811nobodyさん02/12/07 06:30ID:???
>803

perl -d しろ。

#perlだったらだが。
0812nobodyさん02/12/07 11:28ID:RaxMjdVa
質問です。
携帯のau用に着メロのダウンロードCGIを設置しようと思ったのですが、上手くいきません。
CGIは、
ttp://www.kt.rim.or.jp/~marca/ezget/index.html
ここの物を選んだのですが、設定がまずいのか動作していないようです。
設置しているのはBIGLOBEの自分のHPスペースなので、そっちの方は問題ないのですが‥。
どなたかお分かりになる方、ご教授頂けませんでしょうか?
CGIに触れたのは初めてなもので、正直よく分かりません‥。オマケに自分はauを持っていないもので‥。
0813nobodyさん02/12/07 11:43ID:???
>>812
そこのサイトのサンプルは動くのか?

エラーは出るのか?
081481202/12/07 11:54ID:RaxMjdVa
>>813
PC上からアクセスしても、意図する動作はしないようです。
自分で設置したものにアクセスすると、filename requiredと表示されます。
読んで字のごとくなのですが、ここからが詰まってます。
PC上でezWebをエミュレートできるツールでもあれば、auが無くても動作確認できるのでしょうが‥。
0815nobodyさん02/12/07 12:01ID:???
<A TASK="GOSUB" DEST="ez.cgi?f=tahi.pmd">ダウンロード</A>

見たいなやつを書いてないんじゃない?
081681202/12/07 12:11ID:RaxMjdVa
>CGIは自分のディレクトリ下からのみ起動可能です。
との事なので、public_htmlディレクトリの下にindex.htmlを置いて、そっちに、

<A TASK="GOSUB" DEST="ez.cgi?f=ファイル名">ダウンロード</A>

を置いてます。
別にcgi-binディレクトリを作り、その下にCGIを置いているのですが、
上記の記述だと「ダウンロード」とただ表示されるだけで、リンクが貼られません。
直接CGIにアクセスすると「filename required」となります。
置いているのは着メロなのですが、どうすればCGIを通してauでDL出来るようになるのでしょうか‥?
0817813=81502/12/07 12:19ID:???
<A TASK="GOSUB" DEST="../cgi-bin/ez.cgi?f=ファイル名">ダウンロード</A>

こういうことかな? サーバの設定で .. は使えないかも知れないから

http://BIGLOBEの自分のHP/cgi-bin/ez.cgi?f=ファイル名

にしたほうがいいかも。
081881202/12/07 12:59ID:RaxMjdVa
>>817
<A TASK="GOSUB" DEST="http://cgi.www5d.biglobe.ne.jp/~自分のID/cgi-bin/ez.cgi?f=ファイル名">ダウンロード</A>
index.htmlにこう記述しているのですが、これだと>>816の通りになってしまいます。
やはりauもないと駄目なのでしょうか‥?
0819813=81502/12/07 13:04ID:???
そうしたら、5行目は設定してる?

$datadir = './data';

CGIファイルから見て、ダウンロードさせたいファイルのあるディレクトリの設定
082081202/12/07 13:37ID:YhJyx1dy
この際晒してしまいますが、
http://cgi.www5d.biglobe.ne.jp/~coolier2/cgi-bin/ez2.cgi?f=s_moon2_au.pmd
ここまでは漕ぎ付けました。
ただ、auが無い為チェックできないので、これであってるのかどうかが分かりません。
記述を見る限りCGIにはアクセス出来ているようなのですが、
携帯からDL出来るのかどうかが分かりません。
CGIの中身を見てもチンプンカンプンだし‥。
0821813=81502/12/07 13:56ID:???
489バイトのファイルがPCからDLできましたが、わたしも携帯持ったことないのでわかりません。
なんで持ってないau用のDLページを設置するの?
082281202/12/07 14:03ID:YhJyx1dy
>>821
着メロのHPをやっているのですが、auは機種によってDL出来なかったりするそうです。
ただ、ダウンロードCGIを置くと、16和音対応なら大体どのauの携帯でも聴けるようになるそうなので、
だったら置いてみようかなと思って‥。
とにかく、色々やってみようと思います。ありがとうございました。
0823nobodyさん02/12/07 21:12ID:???
>>808
それ、レンタル鯖でやったらたぶんたたき出されるよ。
0824nobodyさん02/12/07 22:48ID:???
別ウィンドウから親ウィンドウのページ(CGIページ)を更新したいのですが、
URL欄にパラメータを晒さないで更新することって不可能しょうか。
JavaScriptでやろうとするとPOSTが使えないので、?a=b&c=d って感じになってしまいますよね?
0825nobodyさん02/12/07 23:10ID:???
>>824
できるよ。

JavaScript使ってPOST送信することもできるし。。。でも板違いだからね!
0826nobodyさん02/12/07 23:37ID:yo5a65Nq
カレント下のディレクトリに移動してpwdで表示させたいんですが、
以下のスクリプトでできません。なぜだろう。

$dn=0;
chop($ls=`ls`);
@DIR=split(/\n/,$ls);
$lim=@DIR;
while($dn<$lim){
chdir './$DIR[$dn]/';
print `pwd`;
$dn++;
}
082730202/12/07 23:44ID:???
>>826
Cwdモジュール使おうぜ。

use Cwd;
$cwd = cwd;
# $cwd = カレントディレクトリ
082882602/12/07 23:50ID:???
>>827
ディレクトリに移動できていないようなんだよね。。
0829nobodyさん02/12/07 23:58ID:???
chdir $DIR[$dn];
083082602/12/08 00:04ID:???
あ、ほんとだ。ありがとです。
0831nobodyさん02/12/08 00:17ID:1lV1fu3e
プログラミング板から移って来ました。
perl(5.00503)のCGI.pmで

CGI::ReadParse(\%FORM);

とやった後に、$FORM{'〜'}の中身をどうやっても空にすることが
できないんだけどこれって仕様?

CGI::ReadParse(\%FORM); #この時点で$FORM{'url'}に値が入る
$FORM{'url'}='';
print("Content-type: text/html\n\n");
print($FORM{'url'}); #空になっていない。
0832nobodyさん02/12/08 00:25ID:???
>>831
悪い事は言わんから、いまいちどソースを確認すること
083382402/12/08 01:37ID:???
>>825
ありがとうございます。調べたらPOST送信の方法わかりました。
別ウィンドウから親ウィンドウの関数呼び出してPOST送信、でやってみます。
ちなみに同じことをCGIだけではできないってことでいいんでしょうか。
083482402/12/08 02:46ID:???
板違い・・すみません、逝ってきます。
0835nobodyさん02/12/08 18:20ID:???
@test= split(/\//, $ENV{'PATH_INFO'});
で -w のオプションつけると
Use of uninitialized value in split
と出ます 何で出るんでしょう?
0836nobodyさん02/12/08 18:50ID:???
環境変数 PATH_INFO が無いから。
0837nobodyさん02/12/08 20:42ID:???
>>835
意味がわからん。
質問と答えを同時に書いちゃってるよ。

>Use of uninitialized value in split
>と出ます 何で出るんでしょう?
Use of uninitialized value in split だからでしょ?
0838nobodyさん02/12/09 01:56ID:???
今度から「エラーメッセージ=答え」の質問には回答しないってことにしね?
0839nobodyさん02/12/09 02:53ID:q8HyJSpD
すいません、特定のcgiファイルにだけssiを使用可能にしたいので
.cgi2という拡張子だけcgiとssiの両方を通すようにサーバー側で設定しました。
これって何か問題あるんでしょうか?
084083902/12/09 03:09ID:q8HyJSpD
と思ったらcgi2に拡張子変えたらcgiがサーバーエラーになって動かなくなった。

ssiを通すと動作が重くなると聞いたので、
やはり特定のcgiファイルにだけssiを使えるようにしたいんですが
何かいい方法はありませんか?
お願いします。
ちなみにサーバー側の設定はコントロールパネルを使ってブラウザ上から
するようになってます。
0841nobodyさん02/12/09 03:20ID:???
SSIを通すってのが意味不明なんですが
084283902/12/09 03:51ID:q8HyJSpD
ファイルをssiを使ったものとして認識させる、って意味です。
すいません、たぶん勘違いも多いと思います。
084383902/12/09 04:06ID:q8HyJSpD
質問の仕方がマズかったかも知れません、
あれから色々試してわかったことを含めて質問し直します。

cgiで表示させるニュースサイトにssiでアクセスログを取ろうとしてます。
ssiの使用はサーバーに拡張子を登録しないといけないのですが
「.cgi」という拡張子を登録しようとすると、すでに使用されています、
とエラーになる(当たり前か)

この場合どうあがいてもcgiファイルを呼び出したときのログを取るのに、
ssiのアクセスログは使えないのでしょうか?
0844Name_Not_Found02/12/09 04:47ID:???
>>843
やろうとしていることが理解不能。
そのSSIのアクセスログってどんなのか説明してみ?

0845nobodyさん02/12/09 06:33ID:???
SSIとCGIの記述言語が同じならいっしょくたにしちゃえばいいじゃん
084683902/12/09 06:36ID:q8HyJSpD
説明下手ですいません、、、。僕自身ssiについてよくわかっていないもので。

えーとアクセスログはcgiなんですけど、それにssiモードっていうのがあって
そちらを使おうとしてるんです。urlはココです。

http://air.vis.ne.jp/at-works/access/readme/detail.html#detail2
0847nobodyさん02/12/09 10:41ID:???
.shtml に設定してもダメ?
0848nobodyさん02/12/09 11:09ID:???
CGIで
print "<!--#exec cgi="hoge.cgi"-->";
とかやってもダメだよ。(Apache2なら出来ないことも無いが全部CGIにすればいいだけの話)
0849nobodyさん02/12/09 11:18ID:???
"〜"内の"は\"にしないとダメだと思いマース


と揚げ足取ってみるw

まあどの道ダメだけど。
085083902/12/09 11:34ID:???
>>848
わかりました、元々SSIのことはよーわからんのでいじるの止めときます。
ていうかその説明聞いて無理だとわかりました。
■ このスレッドは過去ログ倉庫に格納されています