トップページ⇒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
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
プチボードの管理モードを移植する
0698nobodyさん02/08/27 02:14ID:???
>>696
データ分割を行うサイズかと
0699送料02/08/27 02:22ID:xgv3aSxO
HTML の一部を別ファイルから読むようになっているのですが、
そこに変数を書いても、変数として扱われません。
$abc とかが、そのまま$abc とプリントされてしまう。
こういう場合、そうすたらいいんでしょうか?
0700nobodyさん02/08/27 02:25ID:???
>>698
データ分割とはログをいくつかのファイルに分けるっていうことでしょうか?
0701nobodyさん02/08/27 03:03ID:???
>>699
s/\$abc/HOGEHOGE/で置換させれば良いのでは?
0702nobodyさん02/08/27 03:50ID:???
>61
そうきたか、逝ってくる( ´ー`)
0703nobodyさん02/08/27 05:11ID:xgv3aSxO
>>701
レスありがとう。
変数の中身は変わるから、その中身を表示させたいのです。
HTML を読み込んだ場合、変数が変数として
扱われないのはなぜなんでしょう?
0704nobodyさん02/08/27 05:20ID:???
>>変数の中身は変わるから、その中身を表示させたい
だったらs///で置換してもだめだな。
HTMLを読み込むってのは、openでHTMLの各行を配列にするんだろ?
そうだと、例えば$file[3]に"<h1>$title</h1>"という文字列が代入されるわけだから、
変数$titleは変数ではなく文字列として扱われるんだと思う。
0705nobodyさん02/08/27 09:08ID:baAoy2SY
perlでFTPモジュールを使ってファイルをダウンロードしたいのですが
うまくいきません。ログインやディレクトリ移動は問題ないのですが、
ダウンロードしようとするとタイムアウトで終了してしまいます。

use Net::FTP;

$ftphost = "xxxx.xxxx.xxxx";
$ftpuser="xxxxxxx";
$ftppass="********";
$remotedir="C:";
$filename = "index.dat";
$ftpdbg = 0;

$ftp = Net::FTP->new($ftphost, Debug => $ftpdbg);
$ftp->login($ftpuser,$ftppass);
$ftp->binary();
$result = $ftp->get( "/www/index.html",$remotedir."/".$filename);
$ftp->quit;

これでちゃんと動くと思うのですが…。
もしかしたらftpサーバの設定やローカル環境に問題があるのでしょうか。
0706nobodyさん02/08/27 09:53ID:???
>>699
s/\$([a-zA-Z_]+)/($$1)/eg;
かな。
0707nobodyさん02/08/27 10:53ID:Pwc6QKdg
sleep(36000);
等はsleepしている間、かなりサーバに負荷がかかるんでしょうか?
また、これ以外、何時間後かに動作させるにはどうするいいんでしょうか?
070870502/08/27 11:31ID:???
解決しますた。原因はパッシブモード。

$ftp = Net::FTP->new($ftphost, Debug => $ftpdbg, Passive => 1)||die "Net::FTP FAILED";

で動きますた。
0709nobodyさん02/08/27 11:53ID:???
>>708
オメデトウ
0710nobodyさん02/08/27 11:53ID:+xL6Nd0D
タウンページのようなPOSTメソッドでCGIを呼び出すサイトに
GETメソッドでキーワードを渡すようなCGIを仲介させたいのですが、
可能でしょうか?
0711nobodyさん02/08/27 11:58ID:???
>>710
叶です
0712nobodyさん02/08/27 12:48ID:???
CGI-proxyの使い方が分りません円
0713nobodyさん02/08/27 13:25ID:OV4vTErY
半角カタカナを文字化けしないようにするには
どうしたらいいですか?
0714nobodyさん02/08/27 13:38ID:???
>>712
勉強して下さい。

>>713
ユーザーエージェント側で対応する必要があります。
0715nobodyさん02/08/27 13:51ID:bSwaE/gx
携帯専用の連続アクセスを制限できるアクセスカウンタを作成したいのですが、
同じ機種の携帯2台で実験したところ、環境変数で変化する項目はIPとポートのみで、
IP→接続するたびに変化、ポートリロードするたびに変化で
個々の端末の判別に利用できず、COOKIEを食わせようにも食ってくれず、
どうにもできない状態です。
よい方法知ってる人いたら教えてください。
071671302/08/27 13:52ID:OV4vTErY
>714さんへ
ユーザーエージェントってなんですか?
ちなみにネタじゃないです。
0717nobodyさん02/08/27 14:05ID:???
>>715
最近のIDが取れる機種なら可能。
EZWebとかi-modeでは個体特有のIDをUSER_AGENTに吐き出す
0718nobodyさん02/08/27 14:06ID:I18kXluB
>>716
I.Eとかのブラウザのこと。
0719nobodyさん02/08/27 14:07ID:???
>>716
ボク怒っちゃうE
検索してから質問してネ
アト、板違いなので Web制作板に逝ってクレ
http://pc3.2ch.net/hp/
072071302/08/27 14:17ID:OV4vTErY
718&719さんへ
スイマセン。検索したら大体わかったのですが、
私の説明不足だったので改めて質問しなおします。
i-modeのショッピングカートのCGIで、かごの中を
見た時に商品名が文字化けしてしまうのです。
それを直すにはどうしたらいいでしょうか?
素直に全角で商品名を書いた方が賢明でしょうか?
何か他の板で「CGIで半角カタカナを表示させるのは難しい」って
読んだんです。

長々とすいませんが、ご指導お願いします。
072171702/08/27 14:20ID:???
スマソ
i-modeではutn指定しないとID送られないようです。
072271502/08/27 14:20ID:???
>>717
全対応。。。とまで行かなくても、503辺りまでとかは無理ですか?
D503iSを2台使ってやってみたら、HTTP_USER_AGENTがまったく同じだったもので(汗
072371502/08/27 14:25ID:???
>>717
utnというのがよくわかりませんが、ぐぐってみます。
どうもです
0724nobodyさん02/08/27 14:31ID:M6gPKX3j
>>720
i-modeだったらShift_JIS固定なのでCGIをShift_JISで書けば良い。
0725nobodyさん02/08/27 14:44ID:???
>>697
cgi素人なんですが、管理モードの部分をコピペするだけでいいんですか?
0726nobodyさん02/08/27 15:00ID:???
参考になるか知らないけど、三十分かけてスレ探したから見てくれ。
http://pc.2ch.net/test/read.cgi/php/990173593/
072769702/08/27 15:08ID:???
>>725
単純なコピペじゃ動かないだろうから、移植とかいたのだが、通じていないね。
素人なら、KENTさんや、KENTスクリプトの改造配布している人に頼むしかないのでは?
# 俺は改造YY-BOARD(YYnote)を改造したから、オリジナルの事は正直知らないんだ(スマソ
072872802/08/27 15:21ID:XC6qe5bd
先輩方に質問があります。

TOPページに小さいBBSを埋め込んでいるサイトを見つけて、
同じようなソースを探したんですけど、見つかりませんでした。
何かいいソースはご存知ないですか?
072971302/08/27 15:23ID:OV4vTErY
>724さんへ
「CGIをShift_JISで書けば良い。」ですが、
最初に何か宣言したりするんですか?
それともエディタのモードをShift_JISにして書く
という事ですか?
当方、エディタは秀丸です。
CGIはもとから改造なのでどこを修正するのか
分かりません。
0730nobodyさん02/08/27 15:33ID:u+z2O7j8
>>728
http://www.bulldog.co.jp/
定番でしょ。

>>729
Content-Typeヘッダでcharset=Shift_JISを指定する。
スクリプト自体もShift_JISで書く。
Jcode.plでも使ってデコード時にShift_JISに変換する。
i-mode専用だったら、最後はいらない。
073173002/08/27 15:34ID:???
直リンしてしまった…鬱だし脳
0732nobodyさん02/08/27 15:37ID:???
>>730
通報しました!!
0733nobodyさん02/08/27 15:52ID:???
>>728
html javascript cgi の、どれを指しているか解りません。
場合によっては、て言うかむしろ板違いだと思われ。

>>729
思いついたことを試してみてから質問するようにして下さい。
出力を Shift-JIS にする必要があります。
Shift-JIS で保存するだけでも動作する可能性はあります。

>>730
えこひいきすんな。
073471302/08/27 17:48ID:OV4vTErY
>733
色々試してるんですが、まだ上手くできません。

&jcode'convert(*name,'jis');
&jcode'convert(*value,'jis');
↑
のjisをShift_JISにすればいいんでしょうか?
後、「Shift-JIS で保存するだけでも動作する可能性はあります。 」は
動作しませんでした。
>730
「Jcode.plでも使ってデコード時にShift_JISに変換する。」って
どこをどうさわるのか分からないのでまだ試せません。
0735nobodyさん02/08/27 17:51ID:???
ゴメン。 jcode.pl 知らないんだけどさ。
&jcode'convert(*name,'Shift-JIS');
トカじゃないの?
0736nobodyさん02/08/27 17:56ID:qVb9I/tB
>>734
jcode.plのシフトジスは 'sjis' です。
0737nobodyさん02/08/27 18:00ID:???
>>735
知らないのだったら適当なこと答えないほうがよいと思われ

>>734
検索しる。
google で jcode.pl だけのキーワードで検索しても
jcode.plの公式サイトとjcode.plの私的な解説書ってサイトがすぐ見つかる
0738nobodyさん02/08/27 18:01ID:qVb9I/tB
&jcode'convertというのがjcode.pl使うということです。
073971302/08/27 18:03ID:OV4vTErY
みなさん素早いレスありがとうございます。
さっそく検索して試して見ます。
後ほど報告します。
074073502/08/27 18:16ID:???
なんだよー。全然動きないから誰も見てないと思ったんだよ。
なんだ。このレベルならみんな答えられるのか。
0741nobodyさん02/08/27 18:46ID:???
答えられない人もいますがね



プ
0742優香02/08/27 22:04ID:41JLJ2p7
sub datacheck{
if ($id eq ""){&error("IDを設定してください。");}
elsif ($siteurl eq ""){&error("サイトURLを入力してください。");}
elsif ($email eq ""){&error("メールアドレスを入力してください。");}}

この記述の中に一部のメールアドレスやURLを禁止語句として組み入れるにはどうすれば良いでしょう?

別のCGIの記述の中にこういうのもあったのですが・・
@badmail = ('090');foreach(@badmail) { if ( $in{'email'} =~ /$_/ ) { &error("メールアドレスに不正な文字が含まれています。");}

単純につなげてもダメですね・・・素人ですいません。
0743nobodyさん02/08/27 22:12ID:???
 _γ⌒⌒ヽ
 \\ノハ)ヽ)∩
  (○) ´∀`ノ丿  / ̄ 謝ってからかきこんでねー
  ⊂二 y /   < if ($email =~ m/^090/){&error("メール欄が 090 ではじまってるよー");}
    / _二⊃  \_マルチポスト(いろんなところで同じ質問をすること)はダメだよー
 ⊂二ノ
0744優香02/08/27 22:18ID:41JLJ2p7
ありがとうございました。
0745タオル02/08/28 15:14ID:C5teLTv+
HTML の img タグから cgi で gif 画像を表示させたいのですが、

HTML内
<img src="../xxx/xxx/aaa.cgi" alt="GIF">
で、cgiを指定して

cgi内
#!/usr/local/bin/perl
print "Content-type: image/gif\n";
print "\n";

open(IMG, '/xxx/xxx/bbb.gif');
print <IMG>;
close(IMG);

と書いたのですが、画像を表示できません。
何がいけないんでしょうか?
0746nobodyさん02/08/28 15:32ID:???
>>745
1. 画像ファイルのパスが違う
2. 広告が入るサーバ使ってる
0747nobodyさん02/08/28 16:16ID:???
バイナリモードでは?

open(IMG,"./xxx/xxx/bbb.gif");
print "Content-type: image\/gif\n\n";
binmode(IMG);
binmode(STDOUT);
print <IMG>;
close(IMG);
0748nobodyさん02/08/28 16:43ID:???
もしくは \r\n\r\n
0749_02/08/29 00:10ID:???
>>748
( ´,_ゝ`) プッ
0750nobodyさん02/08/29 01:10ID:???
$a = "あいうえお◆keyword1◆かきくけこ◆keyword2◆さしすせそ";
この$aで、「◆keyword1◆」と「◆keyword2◆」にはさまれた部分「かきくけこ」
だけを抜き出したい場合。

indexで「◆keyword1◆」の位置を、rindexで「◆keyword2◆」の位置を調べて
substrで抜き出すという方法はすぐおもいつきましたがもっとスマートな方法が
あればお知恵拝借したいと存じます。
0751nobodyさん02/08/29 01:17ID:???
>>750
抜き出すのが「かきくけこ」ってわかってるんだから抜き出す必要もなかろう。
0752nobodyさん02/08/29 01:28ID:???
いや、750はあくまでも例です。
本当は抜き出す部分が何であるかは事前にわかりません。
0753nobodyさん02/08/29 01:34ID:???
>752
じゃあ、「あいうえお」の部分に「◆keyword1」と入れられたり、
「さしすせそ」の部分に「keyword2◆」と入れられたらどうするの?
■ このスレッドは過去ログ倉庫に格納されています