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
調べる場所が'.'の場合はちゃんと1になるんですけど、./aaaとかの場合はダメです。
原因がわかる方、教えてください。
$_[0]には、ディレクトリの場所'.'とか./directory とかを受け取ります。
sub search_dir{
if ($_[0] =~ /\.\./){
$forbidden = 1;
}
else {
opendir(DIRECTORY, $_[0]) or die "カレントディレクトリを開けません。";
@dir_contents = readdir(DIRECTORY);
closedir DIRECTORY;
foreach $con (@dir_contents){
if ($_[0] != '.'){ $con = $_[0] . $con; }
if ($con eq "."){
} elsif ($con eq ".."){
} elsif (-d $con){
$child_dir[$cd_index] = "./" . $con;
$cd_index++;
} elsif ($con =~ /(.html|.htm)$/) {
$child_html[$ch_index] = $con;
$ch_index++;
} else {
$child_otherfile[$co_index] = $con;
$co_index++;
}
}
}
}
0533532
02/08/13 02:46ID:???sub search_dir{
if ($_[0] =~ /\.\./){
$forbidden = 1;
}
else {
opendir(DIRECTORY, $_[0]) or die "カレントディレクトリを開けません。";
@dir_contents = readdir(DIRECTORY);
closedir DIRECTORY;
foreach $con (@dir_contents){
if ($_[0] != '.'){ $con = $_[0] . $con; }
if ($con eq "."){
} elsif ($con eq ".."){
} elsif (-d $con){
$child_dir[$cd_index] = "./" . $con;
$cd_index++;
} elsif ($con =~ /(.html|.htm)$/) {
$child_html[$ch_index] = $con;
$ch_index++;
} else {
$child_otherfile[$co_index] = $con;
$co_index++;
}
}
}
}
0534532
02/08/13 02:51ID:???0535nobodyさん
02/08/13 03:00ID:???にあるCGIで
/usr/local/src/
以下に貯めてきたソースを閲覧しようと試みますが、
エラーが出ます。
恐らくアパッチのセキュリティが働いている模様です。
Googleでしらべてもワカリマセンでした。
どなたか、cgiからあくせすできる
ディレクトリの設定方法をゴキョウジュしていただけませんか?
0536nobodyさん
02/08/13 03:00ID:???この行の $con って、$con= $_[0] . '/' . $con; では?
0537532
02/08/13 03:10ID:???おっしゃる通りにしても解決しませんでした。
もう少し整理してみます。ありがとうございます。
0539532
02/08/13 03:25ID:???でもファイルタイプを調べるのに失敗してしまいます。
0540532
02/08/13 03:49ID:???で解決しました。アドレスと等価演算子が原因でした。
初歩的なミスでご迷惑をかけてしまって申し訳ないです。
0541nobodyさん
02/08/13 10:16ID:O/STFm+BCookieに適当な値をセットして次のページに移動。
その値が見つからなければCookieが無効になってる。
0542526
02/08/13 12:08ID:Z6o18Dpl…して、その方法すら分からないのです。
0544nobodyさん
02/08/13 16:53ID:Yx7h0BT7>ファイルの書き込み、読み込みをCGIで行う場合には、
>必ずお客様のホームディレクトリ(環境変数$ENV{'HOME'})
>を基準に書いて下さい。
の意味がさっぱり分かりません。使えるネット等のフリースペースでは
設置できますが、ここではInternalServerErrorとなるばかりです
これはCGIをどのように書き換えれば良いのでしょうか
http://www.ogaki-tv.co.jp/internet/int_cgi/hp_cgi_chui.html
0547nobodyさん
02/08/13 17:48ID:LLsp0K0M誰か情報ください。
0548nobodyさん
02/08/13 17:54ID:cQCAQtqSphpなら
http://fitness.s7.xrea.com/index2.php
0549nobodyさん
02/08/13 17:57ID:???0550nobodyさん
02/08/13 18:00ID:LLsp0K0Mマルチて何?
0551nobodyさん
02/08/13 18:30ID:GLxdMhFgモップ片手に重複投稿するカワイイメイドロボ
0552nobodyさん
02/08/13 18:34ID:???「ここの掲示板に質問したけど馬鹿ばっかみたいだからこっちにも同じ質問しとこう。」
「早く答えろよ、しょうがねーな、こっちの掲示板にも書いとくか。」
0553_
02/08/14 01:13ID:???上のページにいって、適当になメールアドレスに
ユーザ名とパスワードを決めて登録してログインすると。
proxy経由でも生IPを抜かれます。
下と同じ方法ではないと思うのですが、どなたかわかる人いますか?
http://www2s.biglobe.ne.jp/~cru/library/java/index.html
今日は、遅いので私も明日調べてみます。
0554nobodyさん
02/08/14 12:40ID:???ファイルの拡張子などをちゃんと自動認識して判別をしてくれたりするのでしょうか?
0556nobodyさん
02/08/14 14:12ID:VGnnPFt3Script execution errorとでてしまいます。
ビッグローブサーバーに設置しているのですが、
この文字が出たときはどうすればいいのでしょうか?
0557553
02/08/14 15:22ID:???telnet削除してあります。
現在の経路は、socks_proxy→http_proxyでアクセスしてます。
でも抜かれる。なぜだろう。
0558553
02/08/14 16:14ID:???127.0.0.1のIPしか抜かれませんでした。
これが出ない場合もありますよね。
この違いは、サーバの設定に依存するんでしょうか。
0560nobodyさん
02/08/15 07:23ID:???JavaとかXとか全部切ったけど
0561最適PG人生とは。
02/08/15 19:28ID:+AitDXiahttp://www.kemokemo.com/products/picchabo/picchabo203.lzh
上(掲示板CGI)に下(ランダム広告CGI※呼び出しによりSSI使用しない方)を設置したいのですが『インターネットサーバーエラー』になります。(;_;)
一通りパーミッション設定などを説明どうりやってみたのですが設置できないんです。。(;_;)なぜでしょう??(;_;)
どうか教えていただけないでしょうか。。(;_;)
また呼び出しのときの記述が『require 'rand.pl'; rand::main($Op1,$Op2,$Op3);』を記述しろと書いてあったので正確に記述したのですが『インターネットサーバーエラー』になってしまうんです。。(;_;)
『$buffer』でも記述したんですがだめでした。
http://taihei.cc/pc/cgis/random.html
http://taihei.cc/pc/cgis/randban11.lzh
0562WebProg板初カキコ
02/08/15 20:18ID:???「買い物かごに入れる」
というふうなボタンがついていて
オンラインで購入できるようなページは
CGIで作られているのでしょうか?
0564nobodyさん
02/08/15 20:57ID:???うん。
CGI RESCUE の ショッピングバスケットプロ とか
http://www.rescue.ne.jp/
0566
02/08/15 22:24ID:Sv5BCHdr↑
コレ追加したいのですが。。。
if(($CHECK{'body'}==1)&&($body eq '')){$error_message .= "本文がありません。<BR>";}
0567nobodyさん
02/08/15 22:29ID:???0568nobodyさん
02/08/15 22:54ID:???そんな質問で意図がわかるか。アフォ。
if(($CHECK{'body'}==1)&&($body eq '')){$error_message .= "本文がありません。<BR>";}
elsif (($CHECK{body}==1)&&length((sort{length$b<=>length$a}split/\r\n/,$body)[0])>100)
{$error_message .= "ERROR:長すぎる行があります!<BR>";}
こういうことか?
0569nobodyさん
02/08/15 23:38ID:???DispError("ERROR!","ERROR:サブジェクトが長すぎます!");
}
if(length($FORM{'FROM'}) > $SETTING{"BBS_NAME_COUNT"}){
DispError("ERROR!","ERROR:名前が長すぎます!");
}
if(length($FORM{'mail'}) > $SETTING{"BBS_MAIL_COUNT"}){
DispError("ERROR!","ERROR:メールアドレスが長すぎます!");
}
if(length($FORM{'MESSAGE'}) > $SETTING{"BBS_MESSAGE_COUNT"}){
DispError("ERROR!","ERROR:本文が長すぎます!");
}
if(length($FORM{'MESSAGE'}) == 0){
DispError("ERROR!","ERROR:本文がありません!");
}
#行数&行長さ制限
my @msg = split(/ <br> /, $FORM{'MESSAGE'});
my $cnt = @msg;
if($cnt > ($SETTING{'BBS_LINE_NUMBER'} * 2)){
DispError("ERROR!","ERROR:改行が多すぎます!");
}
foreach(@msg){
#$cnt = tr/[\041-\177]//;
if(length($_) > 256){
DispError("ERROR!","ERROR:長すぎる行があります!");
}
}
$FORM{'MESSAGE'} =~ s/<br> <br> <br> <br>/<br> <br> <br>/g;
0570nobodyさん
02/08/15 23:46ID:???0571nobodyさん
02/08/15 23:49ID:???0572nobodyさん
02/08/15 23:52ID:???0573名無しさんに接続中...
02/08/16 00:03ID:???第一に、元々携帯に対応した掲示板使えば早かろうと。
0574nobodyさん
02/08/16 02:09ID:???0575nobodyさん
02/08/16 09:39ID:???で、自分でどこまでやってみたのさ?
携帯向けでまず気にするのは1ページのサイズを抑えることだろ。
iモード、J-SKY、ezWebが1ページ何バイト以内なのかぐらい調べたのか?
1ページに表示する発言を減らすとか、無駄なタグ削るとか、何かやってみろ。
0576nobodyさん
02/08/16 13:47ID:r3LEM9ymapebaordスキンかunicoスキンのどっちかを使おうと思ってるんですが、
どっちの設置方法のほうが簡単なんでしょうか?
unicoの方が比較的簡単と聞いたんですが。
ショボイ質問で本当に申し訳ない。
0577nobodyさん
02/08/16 15:12ID:???0578ひよこ名無しさん
02/08/16 15:21ID:???そんなことより 聞いてくれよおっちゃん
このサイト面白いぞ 小一時間ワラタ
http://www.ogaki-tv.ne.jp/~zeus/
0579nobodyさん
02/08/17 04:06ID:qkaHYdxTOSはウィンドウズ、HTMLがちょこっと書けるくらいのスキルしかないです。
0581nobodyさん
02/08/18 13:20ID:???質問の意味が分からん。分かりやすく書け
KENTのY!BBS風の掲示板だっけ?
あれ見に行ったけど、クレクレ帽が多すぎ
KENTもよくやるよな・・・
0582nobodyさん
02/08/19 12:13ID:h1gbkZ0Xこちらで発行したIDやパス等の登録情報を管理するCGIを作っていて、
登録情報専用のディレクトリのファイルリストを表示する中に
そのリスト中のファイルの最終更新時刻を取得する部分があるんだけど、
「.」「..」を除いて全てがThu Jan 1 09:00:00 1970になってしまいます。
色々試しているとどうやらCGIを置いているディレクトリ以外の
ディレクトリをオープンするとそうなるらしく、
CGI本体をオープン先のディレクトリに移動すると問題無く動作します。
しかし登録情報を置いたディレクトリにCGIを置くのは出来る限り避けたいのです。
何か良い方法はありませんでしょうか?
あるいは何らかの手落ちでこういった状態になるのであれば、それも教えて頂けると幸いです。
0583nobodyさん
02/08/19 12:42ID:???最終更新時刻を取得するCGIをデータディレクトリに入れて、
他のディレクトリのCGIから時間取得のCGIを操作してやれば?
0584nobodyさん
02/08/19 13:40ID:h1gbkZ0X何かいい方法はとは言ってもそれ位しか選択肢ありませんよね
とりあえず仰せの通り別ファイル化で対処しておきます
0585nobodyさん
02/08/19 15:12ID:h1gbkZ0Xchdirで作業ディレクトリを移動させる事によって、
別ディレクトリのファイルの時刻を取得出来るようになりました。
CGIを分離する必要も無くなりました。
(というより別ファイルにしてもカレントディレクトリは変わらない為意味がなかった)
0586nobodyさん
02/08/19 15:51ID:???ご質問です。
CGIと同じかそれに近いディレクトリにMicrosoft Accessがあるとします。
CGIからMicrosoft Accessにアタッチする事は可能なんでしょうか?
可能であれば、その方法が記載されているURLなんぞを教えて貰えないでしょうか?
もしくはサンプルでもあれば非常に助かります・・・
Googleで検索もして見たんですがなく、、、
上記って特殊なやり方なんでしょうかねぇ・・・
0587586
02/08/19 15:56ID:???普通のプロバイダが無料でくれるスペースでのお話です。
・・・ダメ?
0589nobodyさん
02/08/19 17:42ID:???プロバイダが無料でくれるスペースにMicrosoft Accessがあるところがあるの?
サーバがWindows系のプロバイダってどこ?
0590nobodyさん
02/08/19 21:56ID:???0592nobodyさん
02/08/19 23:23ID:RiRw9vU9ランダムで背景画像を変えたくて、
5つの違うCSS(background-imageのみ記述してあります)
をランダムで選び、それをタグに書き出したいと思うんですが
[an error occurred while processing this directive]
とエラーが出てしまいます。
$dir = 'home/自分のID/public_html/nantoka/style';
$url = 'home/自分のID/public_html/nantoka/style';
opendir(DIR, "$dir") || die "Can't open: $dir";
@data = grep(!/^\.\.?$/, readdir(DIR));
closedir(DIR);
srand(time|$$);
$style = $data[rand(@data)];
print qq(<link rel="stylesheet" type="text/css" href="$url/$style">);
exit;
これを、index.shtmlから
<!--#exec cgi="home/自分のID/public_html/nantoka/randomimg.cgi" -->
と呼び出しています(CGI本体とindex.htmlは同じディレクトリにあります)。
dirは使える鯖と使えない鯖がある、という話は聞いたことがあるんですが
どこかおかしな所があったら、教えていただけないでしょうか・・・
0593~
02/08/19 23:34ID:???0594nobodyさん
02/08/19 23:44ID:hYzoL+XKperlからphpをincludeのようなことはできますでしょうか?
また、逆にphpからperlプログラムを呼び出して変数を受け取ったりできますでしょうか?
もうひとつお聞きすると、
perlで既に年月日の形になっているものからLinux標準時間に戻す関数はないのでしょうか?
よろしくお願いします。
0596594
02/08/19 23:55ID:hYzoL+XK0597592
02/08/20 00:14ID:???[rand_img.cgi:17:die] Global symbol "$dir" requires explicit package name.
Global symbol "$url" requires explicit package name at (eval 1) line 17, <DATA> line 27.
Global symbol "$dir" requires explicit package name at (eval 1) line 18, <DATA> line 27.
Global symbol "$dir" requires explicit package name at (eval 1) line 18, <DATA> line 27.
Global symbol "@data" requires explicit package name at (eval 1) line 20, <DATA> line 27.
Global symbol "$style" requires explicit package name at (eval 1) line 24, <DATA> line 27.
Global symbol "@data" requires explicit package name at (eval 1) line 24, <DATA> line 27.
Global symbol "@data" requires explicit package name at (eval 1) line 24, <DATA> line 27.
Global symbol "$url" requires explicit package name at (eval 1) line 25, <DATA> line 27.
Global symbol "$style" requires explicit package name at (eval 1) line 25, <DATA> line 27.
となりました。
この「requires explicit package name」とは具体的にどういう意味なのですか?
0598nobodyさん
02/08/20 00:56ID:???Cやったことある?
要するに、「定義されてない変数が出てきたよ」ってこと。
my ($dir, $url, @data, $style);
とかやるか、(推奨)
use strict;
↑の行を探して削除するか、どっちか。
0599592
02/08/20 01:16ID:???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/bFq0602nobodyさん
02/08/20 01:51ID:???JavaScriptのほうがややこしいと思っていたら
CGIも結局2chで聞いている現状という罠
0603602=592
02/08/20 01:52ID:???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 );
0609nobodyさん
02/08/20 20:59ID:???>608
氏ね
0610nobodyさん
02/08/20 22:31ID:???するのが良いですかね? 何からやりはじめればCGIを操れるようになりますかね?
プロの皆さんは何の知識を得ることからはじめましたか?
0611nobodyさん
02/08/20 23:08ID:???0612nobodyさん
02/08/21 06:23ID:???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僕も>>612さんと同じように、KENT氏製掲示板を見たりこぴぺしてどう稼動するのか確かめて覚えてきました。
http://tohoho.wakusei.ne.jp/wwwperl1.htm
とほほ氏のページです。色々なプロの方が読まれているようです。
http://tohoho.wakusei.ne.jp/wwwperl2.htm
リファレンスは、多少慣れてきたらど〜ぞ。
0616ヤッシー ◆akL9r.oU
02/08/21 15:51ID:vNJ2y6lWすみません、リファレンスで検索しても見つからないので、わかりません。
もうすこし詳しく教えていただけませんでしょうか…すみません。
0617nobodyさん
02/08/21 16:45ID:???0618nobodyさん
02/08/21 16:53ID:???0619マム
02/08/21 19:11ID:AE2ns9S9MIDIを公開するためにジュークボックス的な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は、大黒屋さんの方を使いたいと思っているのですが、どこをどういう風にしたら
音が停止しないようになるのか教えてください。宜しくお願いします。
0621nobodyさん
02/08/21 19:22ID:S1N5lHPtDBI,DBD::ODBCで接続でき、コマンドプロンプトで実行すると結果が表示されるのですが、WEBからアクセスすると「'C:\wwwroot\cgi-bin\test.cgi' script produced no output 」と表示されます。
多分IISの設定だと思うのですが、変更箇所が分かりません。
よろしくお願いします。
0623マム
02/08/21 21:54ID:AE2ns9S9教えていただいたら、すぐに消えます。HTMLの問題であれば、どういう風にすれば
いいのか、それだけを教えてください。
お願いします
0625nobodyさん
02/08/21 22:09ID:???この板はサーバサイドプログラミングの話をするところなの。
それぞれの板で専門分野が決まってて、そこで話すのがルールなの。
HTMLの話は↓でしてるよ。
http://pc3.2ch.net/hp/
ルールは守ってね。
0626マム
02/08/21 22:22ID:AE2ns9S90628マム
02/08/22 03:35ID:cGCA+Ih9ありがとうございました。あなただけでした。ちゃんと回答してくれたのは。
624さんには大変感謝です。問題も解決しました。
こんな2ちゃんねるみたいなところでもちゃんと回答してくれる人がいるん
ですね。お礼だけ言わせてください。
ありがとう624さん。
あと、なんかこの2ちゃんねるの板のルールもわかんないで書き込んだので
私も悪かったです。今日はじめて書き込みしたんで。
とにかく624さんには感謝してます。ありがとう
■ このスレッドは過去ログ倉庫に格納されています