トップページ⇒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
0598nobodyさん02/08/20 00:56ID:???
>>597
Cやったことある?
要するに、「定義されてない変数が出てきたよ」ってこと。

my ($dir, $url, @data, $style);
とかやるか、(推奨)

use strict;
↑の行を探して削除するか、どっちか。
059959202/08/20 01:16ID:???
16行目に my($dir,$url,@data,$style); を挿入したら
Global symbol 〜 についてのエラー表示は出なくなりました。以後気をつけます。
593さん、598さんありがとうございました。

しかし、
[rand_img.cgi:21:die] Can't open: home/自分のID/public_html/nantoka/style.
は依然として残っています。
これは home/・・・/style ディレクトリを開くことが出来なかったということはわかるのですが
なぜ開けないのでしょうか・・・
パーミッションのチェックはしましたが、問題はありませんでした。
教えて君ですいません。
0600nobodyさん02/08/20 01:19ID:hbbe/bFq
 
0601nobodyさん02/08/20 01:40ID:???
>>592
そもそもJavaScriptを使えよ、と思ったのは私だけですか?
0602nobodyさん02/08/20 01:51ID:???
自分でも多分違うと思います。

JavaScriptのほうがややこしいと思っていたら
CGIも結局2chで聞いている現状という罠
0603602=59202/08/20 01:52ID:???
です
0604nobodyさん02/08/20 02:59ID:???
>>599
>パーミッションのチェックはしましたが、問題はありませんでした。

は・は・は(大爆笑
0605nobodyさん02/08/20 11:32ID:???
>>592
homeの前にスラッシュはいらないのだろうか。
0606nobodyさん02/08/20 18:13ID:???
>>605
0607nobodyさん02/08/20 19:38ID:???

CGIには直接関係ないのですが、2chのあるスレに自動で
保全書き込みを行うPerlスクリプトをSJISで書いたのですが、
書き込みしようとすると SJISでかいてちょ。とか 文字化けしちゃうよ。
とか却って来ます。
どーすればいいのでしょうか?

$ua = new LWP::UserAgent;
$head = new HTTP::Headers;
$head->header( 'Content-type','text/html; charset=Shift_JIS');
$body = "FROM=$name&mail=$mail&MESSAGE=$message&bbs=板名&key=スレッドID";
$req = new HTTP::Request( 'POST', $BBSCGI, $head, $body );
$res = $ua->request($req);
print( $res->content );
0608nobodyさん02/08/20 20:53ID:???
>>607
あげ2chか?

SJISでかいてちょ。
って書いてるんだからSJISで書けよ
ヴァカ??
0609nobodyさん02/08/20 20:59ID:???

>608
氏ね
0610nobodyさん02/08/20 22:31ID:???
CGIの技術を学ぶためには、全くの基礎からやり始めるにはやはり書籍を参考に
するのが良いですかね? 何からやりはじめればCGIを操れるようになりますかね?

プロの皆さんは何の知識を得ることからはじめましたか?
0611nobodyさん02/08/20 23:08ID:???
他人のソースを見る。
0612nobodyさん02/08/21 06:23ID:???
素人ですが、KENT氏のbbsを見ることから始めました
0613ヤッシー ◆akL9r.oU 02/08/21 15:11ID:BtbltLri
質問です。
$form = $FORM{'form'};
$log =~ s/$form/<b>$form<\/b>/g;

print $log;

$logに、ログファイルから読み込んだ全データをぶち込んで、
$logに、ユーザーがフォームから送信してきた$formの文字列が含まれていたら、その文字列を太字にして表示する、という仕組みのCGIを作りました。
ここまでは完成したんですが、$logを、英数大文字・小文字関係なく検索させたいんです。
どうすれば、大小文字関係無く検索できるようになりますか?
お返事よろしくお願いします。
0614ヤッシー ◆akL9r.oU 02/08/21 15:25ID:BtbltLri
>>610
僕も>>612さんと同じように、KENT氏製掲示板を見たりこぴぺしてどう稼動するのか確かめて覚えてきました。
http://tohoho.wakusei.ne.jp/wwwperl1.htm
とほほ氏のページです。色々なプロの方が読まれているようです。
http://tohoho.wakusei.ne.jp/wwwperl2.htm
リファレンスは、多少慣れてきたらど〜ぞ。
0615nobodyさん02/08/21 15:30ID:???
>>613
i
0616ヤッシー ◆akL9r.oU 02/08/21 15:51ID:vNJ2y6lW
i…?
すみません、リファレンスで検索しても見つからないので、わかりません。
もうすこし詳しく教えていただけませんでしょうか…すみません。
0617nobodyさん02/08/21 16:45ID:???
もっと探せ。
0618nobodyさん02/08/21 16:53ID:???
$log =~ s/$form/<b>$form<\/b>/ig;
0619マム02/08/21 19:11ID:AE2ns9S9
はじめまして。今回初めてメールをさせていただきます。
MIDIを公開するためにジュークボックス的なCGIを導入したんですが、一つわからないことがあるので教えて欲しいのです。

使ったCGIは、大黒屋本舗さんの BGM++ というCGIなんですが、http://ohgro.pos.to/perl/bgm/bgm.cgi  このウィンドーを最小化すると、音が消えてしまうのです。そして、ウィンドーを元のサイズに戻すとまた音が再生されるのです。

実は、こういうJukebox的なCGIを探していて、もう一つ候補がありました。
POKEMON ENTERNAL さんの自作CGIでjukeboxというのがあります。
http://pme.cool.ne.jp/
のサンプルページが、http://pme.cool.ne.jp/download/jukebox/jukebox.cgi です。
こちらで配布されているものは、ウィンドーを最小化してもちゃんと音がなっているのです。

これは何をどうしたら違いが出るのか、調べても調べてもわからなくて、、、
それで今回こちらで質問させていただいたのです。
使いたいCGIは、大黒屋さんの方を使いたいと思っているのですが、どこをどういう風にしたら
音が停止しないようになるのか教えてください。宜しくお願いします。
0620nobodyさん02/08/21 19:19ID:???
>>619
つーか、HTMLレベルの問題だろ。
0621nobodyさん02/08/21 19:22ID:S1N5lHPt
質問です。NT4.0+IIS+ActivePerlでSQLServerに接続するcgiをWEBで表示したいです。
DBI,DBD::ODBCで接続でき、コマンドプロンプトで実行すると結果が表示されるのですが、WEBからアクセスすると「'C:\wwwroot\cgi-bin\test.cgi' script produced no output 」と表示されます。
多分IISの設定だと思うのですが、変更箇所が分かりません。
よろしくお願いします。
0622nobodyさん02/08/21 19:29ID:???
>>619
スレ立てた後に、よくこんなトコで聞けるよな
0623マム02/08/21 21:54ID:AE2ns9S9
教えてください。それだけなんです。。
教えていただいたら、すぐに消えます。HTMLの問題であれば、どういう風にすれば
いいのか、それだけを教えてください。
お願いします
0624nobodyさん02/08/21 21:58ID:???
>>619
BGSOUNDとEMBEDの違い。
板違いにつきsage
0625nobodyさん02/08/21 22:09ID:???
>>623
この板はサーバサイドプログラミングの話をするところなの。
それぞれの板で専門分野が決まってて、そこで話すのがルールなの。
HTMLの話は↓でしてるよ。
http://pc3.2ch.net/hp/
ルールは守ってね。
0626マム02/08/21 22:22ID:AE2ns9S9
結局わからないだけなのね。残念だわ
0627nobodyさん02/08/21 22:28ID:???
>>626
捨て台詞はいいからサッサと消えろよオマエ。
0628マム02/08/22 03:35ID:cGCA+Ih9
>> 624さんへ

ありがとうございました。あなただけでした。ちゃんと回答してくれたのは。
624さんには大変感謝です。問題も解決しました。
こんな2ちゃんねるみたいなところでもちゃんと回答してくれる人がいるん
ですね。お礼だけ言わせてください。
ありがとう624さん。

あと、なんかこの2ちゃんねるの板のルールもわかんないで書き込んだので
私も悪かったです。今日はじめて書き込みしたんで。
とにかく624さんには感謝してます。ありがとう
0629nobodyさん02/08/22 05:41ID:???
なぜ初心者は自分の行動が間違っていることを理解しないのだろう。
0630nobodyさん02/08/22 06:15ID:???
自作自演に気づけ!
0631nobodyさん02/08/22 15:21ID:OD++zTqz
あのぉ〜、iswebで画像up掲示板を設置しました。
んで、普通に投稿ボタンを押したら「設定エラー.データ保存用ファイル$tmp_file"が見つかりません.自動作成を試みましたができませんでした。
処理は中断されました.」って出ました。cgi-binのフォルダの中にcgiとか置いてるし
パーミッションもちゃんと設定されているハズなんですが・・・。
どうすればいいでしょうか?
0632nobodyさん02/08/22 15:29ID:???
>パーミッションもちゃんと設定されているハズなんですが・・・。
ディレクトリって分かるか?
ファイル作るディレクトリの権限を757にするか実行ファイルをsuid
0633nobodyさん02/08/22 15:34ID:OD++zTqz
suidってなんですか?すいど?
0634nobodyさん02/08/22 15:34ID:OD++zTqz
ディレクトリもわかりません。何回か見たことあるけど
0635nobodyさん02/08/22 15:39ID:???
>suid
だったら気にするな
>ディレクトリ
フォルダの事、検索な
http://www.google.com/search?q=%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA&sourceid=opera&num=100&ie=utf-8&oe=utf-8

これ以上やると荒れそうだから退散する
0636nobodyさん02/08/22 15:50ID:???
すまん、余りに不親切だ
FTPで、upboard.cgiとかのパミを設定しただろ? 755とか701に?
それと同じ様に cgi-bin/hogehoge/ と設置したのなら
hogehogeのパーミッションを緩めて行けば良いよ
それでもダメならcgi-binから順番に緩めて行くといい
頑張れよ、もう書かないから
0637nobodyさん02/08/22 16:05ID:???
imgboard.cgiなら
img-boxフォルダの属性を777
0638超初心者02/08/22 16:41ID:???
すいません、http://tolkien.s7.xrea.com/test/read.cgi/jikken/1026137983/
で配布されている物を設置したくhttp://www.xrea.com/にアカウントをとって
うpしたんですが、うまくいきません。
今現在http://camion.s15.xrea.com/x/test/admin.cgiなっています
パーミッションはフォルダ:755 .cgi.pl:700です
いったい何がいけないのでしょう?
0639nobodyさん02/08/22 16:59ID:???
>>638
配布元で相談に乗ってもらいつつマルチポストですか。豪気だねぇ
0640超初心者02/08/22 17:06ID:???
ゴメソ気を付けます
0641nobodyさん02/08/22 17:08ID:???
まあガンガレ漏れも昔はさっぱり分からんかったよ
0642nobodyさん02/08/22 17:11ID:???
Error Message: No such file or directory
Error Number: 2

て、そのまんまの意味では。
0643スクリプトエラー02/08/23 17:49ID:uC6hG1Tt
初めまして。

プログラムをWEBサーバにアップすると「ScriptError」と表示されてしまい動かないのです。
自分のノートパソコンではきちんと動いてくれるのですが・・・・・。どのような事が原因でこのような事が起こるのでしょうか?。
0644nobodyさん02/08/23 17:50ID:N5Ib5rbJ
CGIで特定のホスト名を別のページに飛ばす、アクセス制限みたいなことをするやり方を
教えてください。
何回かやったけど無理でした。
0645nobodyさん02/08/23 18:13ID:???
>>643>>644
原因を特定するために
何のプログラムで
どのようにしたら
どの段階で
どうなったかを書き込むヨロシ
0646nobodyさん02/08/23 18:29ID:N5Ib5rbJ
#! /usr/local/bin/perl

$url = http://○.com;
$host_name = &GetHostName($ENV{'REMOTE_ADDR'});
if (host_name = *******) {
print "Location: $url";
exit;

sub GetHostName {
my($ip_address) = @_;
my(@addr) = split(/\./, $ip_address);
my($packed_addr) = pack("C4", $addr[0], $addr[1], $addr[2], $addr[3]);
my($name, $aliases, $addrtype, $length, @addrs);
($name, $aliases, $addrtype, $length, @addrs) = gethostbyaddr($packed_addr, 2);
return $name;
}

0647スクリプトエラー02/08/23 18:51ID:uC6hG1Tt
>>645
掲示板に書かれた言葉を置換するCGIプログラム(Perl)です。
http://dosv.s10.xrea.com/test/keijiban-hyouji_cgi.txt
http://dosv.s10.xrea.com/test/keijiban-toukou_cgi.txt
0648nobodyさん02/08/23 18:57ID:???
>>646

× $url = http://○.com;
○ $url = 'http://○.com';

× if (host_name = *******) {
○ if ($host_name = *******) {
0649648 訂正02/08/23 18:58ID:???
× if (host_name = *******) {
○ if ($host_name eq '*******'){
065064402/08/23 20:07ID:N5Ib5rbJ
648,649のとおりにやりましたが
http 500 鯖エラーが出ます。
なぜでしょう?
0651nobodyさん02/08/23 20:25ID:???
× print "Location: $url";
○ print "Location: $url\n\n";

これかな?
0652nobodyさん02/08/23 20:34ID:???
>>647
なんか FORM 作るの面倒だから試してないけど。
動くみたいだから、転送に失敗したか、パーミッションくらいしか思いつかん。

にしても >>646 さんは優しいのね。
065365202/08/23 20:44ID:???
横槍ですが } が足りないデショ。
$url = "http://○○.com";
$getout = "http://××.com";
$host_name = &GetHostName($ENV{'REMOTE_ADDR'});
if ($host_name eq $getout) {
print "Location: $url\r\n\r\n";
exit;}

sub GetHostName {
my($ip_address) = @_;
my(@addr) = split(/\./, $ip_address);
my($packed_addr) = pack("C4", $addr[0], $addr[1], $addr[2], $addr[3]);
my($name, $aliases, $addrtype, $length, @addrs);
($name, $aliases, $addrtype, $length, @addrs) = gethostbyaddr($packed_addr, 2);
return $name; }
0654スクリプトエラー02/08/23 20:51ID:uC6hG1Tt
>>652
それが動いてくれないんです(T_T)。
転送もきちんと出来てるし、パーミッションもきちんと設定したのになぁ〜。
謎です。

▼入力フォームです。
http://dosv.s10.xrea.com/test/toukou.html
0655nobodyさん02/08/23 21:45ID:???
>>654
flock 使えるの?
0656nobodyさん02/08/23 22:03ID:???
動作には関係ない所だけど、文字コードは正しく記述してください。
×EUC
○euc-jp
0657nobodyさん02/08/23 22:06ID:???
Perl CGIでProxyアクセスを制限する方法はありますか?
例えば、80番ポートが開いていたらアクセスを拒否するとか。

よろしくお願いします。
0658nobodyさん02/08/23 22:19ID:???
>>657
ttp://www.ugtop.com/spill.shtml
くらいの情報は取得可能。
0659nobodyさん02/08/23 22:26ID:???
>>657
http://taruo.net/e/?
トカ
0660スクリプトエラー02/08/23 23:36ID:uC6hG1Tt
>>655
flockは使えます。

>>656
持っている書籍通りにしたはずなんですけど、違うんですね。直しておきます(^^;
0661nobodyさん02/08/23 23:46ID:???
>>660
キャッシュが残ってたりしない?
066265702/08/24 12:28ID:eiO+XJZG
>>658
>>659
ご協力どうもです。

疑問ですが、2ちゃんねるの「Proxy寄生虫です」を出すのはどういう仕組みなんですか?
0663nobodyさん02/08/24 13:20ID:???
>>662
ソースが欲しいんですか?
0664nobodyさん02/08/24 13:54ID:???
http://www.parkcity.ne.jp/~chaichan/qanda/qa3061.htm?02-08-24-13-50
0665スクリプトエラー02/08/24 14:54ID:8HRWTAMT
>>661
それはないと思います。今アップロードしてもスクリプトエラーでしたから。
0666nobodyさん02/08/24 14:57ID:???
>>665
とりあえず flock 外したり、最低限どの状態なら動くか確認すべ氏
0667nobodyさん02/08/24 15:04ID:???
KCatch使うとか出力リダイレクトするとかじゃダメなの?
0668nobodyさん02/08/24 15:13ID:???
>>665
サーバの環境は?
066964402/08/24 20:57ID:sqmHF1To
今更ですが、644です。
えと、指定のホストの奴を飛ばすことは出来ました。
が、今度は、それ以外の人を、また別のところへ飛ばすにはどうすればよいのでしょうか?
0670スクリプトエラー02/08/25 02:47ID:CiBcCHZS
>>665
わかりました。確認してみます。

>>665
ttp://www.xrea.com/?action=spec
0671nobodyさん02/08/25 17:13ID:???
しぇんせい質問です。

$img = "http://www6.ocn.ne.jp/~boyakkie/php.gif";

if ($img){
print "<a href=http://pc.2ch.net/php>;<img src=$img></a>";
}else{
print "<a href=http://pc.2ch.net/php>;Webプログラミング板</a>";
}

画像が見つかれば表示させて画像が無ければ(タイムアウトなど繋がらない)なら、
テキスト文を表示させるにはどしたらいい?
javascript perl php なんでもいいのでおしえて。
067267202/08/25 19:38ID:???
掲示板で、URL・メールアドレス・本文の3つ書き込む場所があり、
もしURLへの書き込みがない場合→全角空白1つを表示したいのです。$value =~ s// /g; ←この置換だけではうまくいきませんでした。

テーブルを使っている関係で、記入なしだと形が崩れるのでそれを防ぎたいのです。
よろしくお願いします。
0673nobodyさん02/08/25 19:43ID:???
if($url eq ""){
$url = " "
}
067465702/08/25 22:08ID:5Sl7GuzD
>>664
だから何?
0675nobodyさん02/08/25 23:31ID:???
>>671
-e $imgかな?
0676 02/08/25 23:46ID:???
$url = $url ? $url : " ";
0677nobodyさん02/08/26 00:34ID:???
>>676
$url ||= " ";
0678nobodyさん02/08/26 01:50ID:UjnC3nLS
掲示板でログを保存するためのdatファイルが、書き込みが増えるにつれて
どんどん肥大化するのですが。たとえば掲示板を見たり書き込んだりするたびに
10MBクラスのdatファイルを開いたり更新したりするのはサーバーに負担が
かかるんでしょうか?問題ある場合どのように対処すべきでしょうか?
ちなみにCGIはTripodに置いています。
0679nobodyさん02/08/26 03:57ID:???
>>678
更新する前にデリられるという罠
カキコの前にBenchmark
でも、諸氏の分割サイズということには便乗
0680nobodyさん02/08/26 08:15ID:???
えっと、アプロダ系のCGIは、掲示板を作るのと同じような感覚で作成・設置する事が
できるんですか?
あまりにも抽象的な質問ですみません。
0681nobodyさん02/08/26 13:27ID:WJ0ASq8o
ある数値をを多い順にソートしたいんですけど、
@hoge = reverse sort { (split(/<>/,$a))[1] <=> (split(/<>/,$b))[1] } @hoge;
こんな方法もあるんですが、(split(/<>/,$_))[1]を変数に当てはめた後にソート処理をするにはどうすれば宜しいのでしょうか?
0682nobodyさん02/08/26 13:37ID:???
$hensu = (split(/<>/,$_))[1];
@hoge = reverse sort { (split(/<>/,$a))[1] <=> (split(/<>/,$b))[1] } @hoge;
0683nobodyさん02/08/26 14:03ID:TifdgD6o
【絶対】バンテリン【有利】

つかってほしいねー、サロンパス
0684nobodyさん02/08/26 14:44ID:???
>>681>>682
レベル低いね
0685nobodyさん02/08/26 16:11ID:???
>>684
奈良答えてヤレ
0686困ったチャン02/08/26 16:20ID:???
ジャバスクリプトのバージョンをしりたいんですけど
どうしたらよいのでしょうか?
どなたかお知恵を拝借ください
0687nobodyさん02/08/26 16:35ID:???
>>686
Web製作板に逝け。
0688nobodyさん02/08/26 20:53ID:???
ループの時に使う$iって何か意味があるんですか?
0689nobodyさん02/08/26 20:55ID:???
*** 殺伐スレにほのぼのキャンペーン ***

http://www.icnet.ne.jp/~jaguar/
寂れ切ったミュージシャン・ジャガーのHPを、100万アクセスの
超人気サイトにしてあげる、夏休み特別企画です。

(現在ここがターゲットです)

どんどんコピペして他の板にまいてください
0690nobodyさん02/08/26 21:22ID:???
$i #int integer
慣習。
0691 ◆JAPH9PWA 02/08/26 21:24ID:???
私はiteratorだと聞いたことがあるなぁ
ま、慣習だね
0692nobodyさん02/08/26 21:27ID:???
>>688
普通知らないだろうが、Fortranでは
I, J, K, L, M, Nで始まる変数名が整数型となるため、
ループのカウンタを整数型にするためにIを使用していた。その名残り。
2重ループなんかは、次Jになってるでしょ。
0693nobodyさん02/08/26 21:29ID:???
物知り自慰さんじゃあ!
0694nobodyさん02/08/26 21:31ID:???
>>690-692
よくわかりました。
ありがとうございました。
0695nobodyさん02/08/27 00:20ID:???
yybbsで管理者が全てのスレッドを発言修正できるようにしたいのですが、
方法ありますか?
0696nobodyさん02/08/27 00:32ID:q0U4FNMc
>>679
分割サイズとはどういうことなのでしょうか?
0697nobodyさん02/08/27 01:02ID:CX5s0ack
>>695
プチボードの管理モードを移植する
■ このスレッドは過去ログ倉庫に格納されています