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
622とはまた変わったのにしたな。
読み書きともCGIからなら600にできるように直したら?
0236nobodyさん
02/07/23 12:22ID:HNBPTziwたとえば
<!--#exec cmd="./cgi-bin/read.cgi?hoge"-->
だと何もかえってこない(多分CGIが実行されない)
また
<!--#exec cgi="./cgi-bin/read.cgi?hoge"-->
だと[an error occurred while processing this directive]に
なります。
ちなみにCGI単体ではうまく動いています。
もちろんSSIのときは"Content-type: text/html\n\n"をけしてます。
また、データを与えないタイプのCGIは上の方法(cmd=)でうまくいきます。
SSIからCGIにデータをあたえて呼び出すのって無理なんですか?
0237.
02/07/23 12:29ID:???返ってくる値は「修正」ではなく「syuusei」でしょ?
nameが同じだから後に書いてあるほうが有効になってるだけ。
別々の名前にすればいい。
0238234
02/07/23 12:42ID:???いえ、それが漢字の「修正」が入っているのです。
確かめるとわかると思うのですが、nameを別のにしたら
あとでパラメーター受け取る時modeで読めなくなってしまいますよ。
0239nobodyさん
02/07/23 12:51ID:HNBPTziw<input type="submit" name="mode" value="修正">
にすれば
mode="削除"とmode="修正"がはいるよ
buttonはべつに押したとき値が入るってわけでもなかった気がするな。
どうしてもsyuuseiがいいなら知らん。
0240nobodyさん
02/07/23 13:13ID:YKQaMhWj<input type="submit" name="del" value="削除">
<input type="submit" name="edit" value="修正">
でdelがdefinedなら削除、editがdefinedなら修正でいいんじゃないの?
0242234
02/07/23 16:40ID:???formの中にsubmitが二つあるのに違和感があったのと、
submitのvalueの値がそのままパラメータになるのに気づきませんでした。
ありがとうございました。
0244nobodyさん
02/07/24 16:09ID:???$|=1;
print <<_HEADER_;
HTTP/1.0 200 OK
Server: NPH-Script
Connection: close
Content-Type: text/html
_HEADER_
$count=0;
while(1) {
sleep(1);
$count++;
print("$count<hr>\n");
}
こんなスクリプト書いて実験してるんだけどNN4.x/Mozilla/NN6/Operaでは
予想通りに約1秒ずつカウントしてくれるんだけどIEだと何も出ないんです。
何が悪いのか教えてください。
0245nobodyさん
02/07/24 18:09ID:F9mOipAg自分の利用しているプロバイダのサーバにCGIを置き、
テスト書き込み等動作確認をしました。
その際のテスト書き込みを消したいと思うのですが、
記事を削除するしかないでしょうか?
削除しても記事に削除されたものを含んだ通し番号がついているので、
テスト書き込みをする前の何も書き込みのない状態に戻したいのですが…。
どこかのサイトでファイルを再度アップロードすればいいというような文章を
読んだ気がしたのでプロバイダにやってもらったのですが、消えませんでした。
私が使うCGIはKENTさんのCGIを改造したものをとあるサイトから
ダウンロードしたもので、もともとのスクリプトをテンプレート対応にするため
複数のファイルに分けています。
現在プロバイダにはそのCGIを動かすための2つのファイルを
アップロードしていて、その2つともを再度アップロードしてもらったのですが、
それではだめなのでしょうか?
質問の書き方が悪かったらすみません。
0247245
02/07/25 03:23ID:sjq0OBfOすみません、確かにバカでした…。
CGIの根本がまだ判っていないので…言い訳ですけどね。
>>246さんのレスがちょっと悔しかったので(w それ以上のことがしたくなり、
何とかテスト書き込みをすべて消すことが出来ました(勿論記事削除ではないですよ)。
お世話になりました〜。
0250nobodyさん
02/07/25 10:48ID:???0251nobodyさん
02/07/25 11:18ID:???投稿データの削除処理についてなんですけど、データは一個ずつ1行に入っています。
で、削除する対象を判別した後は、data.txtからdata2.txtに1行づつコピーしていって
削除する対象の行になったらその時だけ飛ばして、最後の行まで到達する。
で、data.txtを削除。data2.txtをdata.txtにリネーム。
このやり方しか知らないのですがこれでもいいですか?
他にやり方ありますか?
0253nobodyさん
02/07/25 11:30ID:???サーバサイドはそれで問題無い、それはクライアントの癖だな
多分IEのバッファが効いてる
>>248
ちょっと違うんじゃ無い? 要は少しずつ転送したいだけだと思う
>>252
意味不明、そんなブラウザは無い
0256nobodyさん
02/07/25 14:01ID:???2回目からはいいけど初回実行はやっぱりバッファリング
されてる感じ
0257nobodyさん
02/07/25 14:08ID:???そもそもcache関係ないじゃん。
さっきから連続で醜態晒してるな >俺
もういい!寝る!
0258nobodyさん
02/07/25 14:40ID:???$hoge =~ tr/あ-ん/ア-ン/;
print "$hoge";
これでひらがなをカタカナにする事可能ですか?
0259nobodyさん
02/07/25 14:43ID:???$hoge=~ s/あいうえお/アイウエオ/;
0260nobodyさん
02/07/25 14:57ID:???他のひらがなが入った時はどうするんですか?
0262nobodyさん
02/07/25 15:01ID:???環境ってwin2000とかの事ですか?
perlでやってます。
0263nobodyさん
02/07/25 15:07ID:FEL1JQfu0264nobodyさん
02/07/25 15:15ID:???tr/ぁ-ん/ァ-ン/;
だから、これのSJISコードをサブスティチュートで置換すればいいと思う。
0265nobodyさん
02/07/25 15:17ID:oLz9j3NEその方法を聞いてるんだがね
0267nobodyさん
02/07/25 15:23ID:???s/\x82([\x9f-\xf1])/"\x83".chr(ord($1)-95)/ge;
0268nobodyさん
02/07/25 16:02ID:???use Jcode;
my $s = Jcode->new("てきとー")->tr('あ-ん' => 'ア-ン')->sjis();
0270nobodyさん
02/07/25 16:18ID:???0271nobodyさん
02/07/25 16:23ID:???0272ハニホ・ヘニハ
02/07/25 16:23ID:???0273nobodyさん
02/07/25 16:23ID:???0274nobodyさん
02/07/25 16:29ID:???use Jcode.pm;
my $hoge = Jcode->new("てきとー")->tr('あ-ん' => 'ア-ン')->sjis();
print "$hoge";
----------------------
Internal Server Error
Jcode.pmというのをダウンロードしてcgiと同じディレクトリに置きましたが・・・。
0276nobodyさん
02/07/25 16:46ID:???jcodeをuseしないでtr〜〜♪
0277nobodyさん
02/07/25 16:58ID:???0278nobodyさん
02/07/25 17:00ID:???0279nobodyさん
02/07/25 17:05ID:???それでも駄目かも知れないけど
0281nobodyさん
02/07/25 19:05ID:???0282nobodyさん
02/07/25 19:53ID:???0283nobodyさん
02/07/25 20:05ID:???0286nobodyさん
02/07/26 00:54ID:L9BP6kAT「インストールがこの計算機で無事に終了したことを意味します。」は見れました。
また、ルートフォルダにあるhtmlファイルも開くことは出来ました。
が、CGIファイルを起動すると
Internal Server Errorが表示され、最後の行には Apache/1.3.14 Server at localhost Port 80と表示されます。
何が原因なんでしょか?(win meです)
0287nobodyさん
02/07/26 01:03ID:???ActivePerlはインストールした?
0288nobodyさん
02/07/26 01:04ID:???ttp://tohoho.wakusei.ne.jp/wwwxx048.htm
ここ見て勉強しとけ。
0289286
02/07/26 01:17ID:L9BP6kATしました。
>>288
そこに書いている設定は一通りしてみました。
が、だめでした。一度アンインストしてやり直してみても同じでした。
0290nobodyさん
02/07/26 01:21ID:???じゃあ、CGIのソースを確認しろ。
HellowWorld!試せ。
0291nobodyさん
02/07/26 01:23ID:???ってオチな気がする・・・。
0293nobodyさん
02/07/26 05:06ID:???Perlのパスが間違っているんじゃねーの?
0296nobodyさん
02/07/26 08:53ID:???Content-Typeとかね。
0298nobodyさん
02/07/26 10:29ID:???0299nobodyさん
02/07/26 10:35ID:Ppnf9uEO# ライブラリ
require 'cgi-lib.pl';
# デコードサブルーチン
&ReadParse(*form);
# ライブラリ
require 'jcode.pl';
# 文字コード変換サブルーチン
&jcode'convert(*form,'sjis');
# 連想配列から値だけを取り出し、区切りのハイフンを追加
# HTMLタグと衝突する記号などを変換
$name = $form{'name'};
# -----ここから出力 -----
print "Content-type:text/html\n\n";
print << "END_OF_HTML";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
$name
<BODY>
</BODY>
</HTML>
END_OF_HTML
上のエラー出るんだけどどこか間違ってる?
0300nobodyさん
02/07/26 10:48ID:???0301nobodyさん
02/07/26 10:54ID:Ppnf9uEO# ライブラリ
require 'cgi-lib.pl';
# デコードサブルーチン
&ReadParse(*form);
# ライブラリ
require 'jcode.pl';
# 文字コード変換サブルーチン
&jcode'convert(*form,'sjis');
# 連想配列から値だけを取り出し、区切りのハイフンを追加
# HTMLタグと衝突する記号などを変換
$name = $form{'name'};
# -----ここから出力 -----
print "Content-type:text/html\n\n";
print <<END;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
$name
</BODY>
</HTML>
END
[EOF]
またまたエラー
0302nobodyさん
02/07/26 11:00ID:???syntax OK
0303nobodyさん
02/07/26 11:03ID:???0305nobodyさん
02/07/26 16:04ID:owWjrwtahttp://love.2ch.net/test/r.i/pure/1027606635
スレタイに藁タ!
0307nobodyさん
02/07/26 17:26ID:???こんど携帯対応の掲示板を作ることになったのですが、
このタイプの掲示板ってPCか携帯かで処理を分けるのですよね??
それはどのように判別するのですか?
また、携帯対応掲示板を作る上での注意点などありますか?
0308307
02/07/26 17:28ID:JyrdDHk30309nobodyさん
02/07/26 17:33ID:???$ENV{"HTTP_USER_AGENT"}
ただし、どんな場合でもすでにあるものを見た方がはやい。
「携帯 対応 掲示板 CGI」で検索すれ。
0311307
02/07/26 18:02ID:JyrdDHk3素早いレスありがとうございました!
”携帯対応無料BBS!”なんてのはいっぱい見つかったけど、
肝心の中身がみれないしなぁ・・・と思っていたら、
検索キーワードに”CGI”を付ければいいわけですよね
ああ、漏れって逝ってよしです・・・
早速またググってきます。ありがとうございました
0312nobodyさん
02/07/26 23:57ID:???print "Content-type: text/html\n\n";の変わりに書くとページを開いた瞬間に移動し、
cgiの最後に記述すると、移動しないです。
掲示板なんですが、別ページでフォーム記入し、送信すると書き込みのページを表示したいのです。
0315nobodyさん
02/07/27 01:37ID:???レンタル鯖で動いていたCGIを自前の鯖で動かすべく赤帽で鯖組んでみました。
すると405エラーが出てきてどこをどうすればいいやら途方に暮れてます。
The requested method POST is not allowed for the URL /form/form2mail.cgi.
っていわれてるんですけど、どこを見ればいいでしょうか?Apache/1.3.22 です。
教えて君ですまそ
0317☆
02/07/27 04:05ID:QFoQxGUe0318nobodyさん
02/07/27 07:45ID:QHfRaVBXダウンロードのダイアログが開かずに再生をはじめてしまいます。
Contents-Typeはapplication/octet-streamにしています
出力するファイルの拡張子を.binなどにすると、ちゃんとダウンロードのダイアログが開きます。
サーバ側の設定だけで拡張子をmp3のままダウンロードをさせたいんですが、どうすればいいのでしょうか。
0321nobodyさん
02/07/27 09:13ID:???MIME/拡張子から判断ではなく、ファイルの先頭を見て自分で勝手に判断する。
GIF89a が最初にかかれているテキスト文ですら、GIFと誤認する。
0323315
02/07/27 10:11ID:???httpd.confを見直してAddHandler cgi-script .cgi pl のコメントを解除したら動くよう
になりました。ありがとうございました。
0324nobodyさん
02/07/27 20:45ID:iu2+Su0iこのCGIにパスワードをつけたいと思っています。
どうすればいいでしょうか?
スレ違いでしたらすみません。
ttp://www.gem.hi-ho.ne.jp/fortunefield/cgi/fflog.html
0325nobodyさん
02/07/27 21:00ID:???どうぞ。
ttp://pc.2ch.net/test/read.cgi/php/1012839651/
スクリプト改造工房 Part4
0326324
02/07/27 21:15ID:???誘導ありがとうございます。
行ってみます。
0327nobodyさん
02/07/27 22:07ID:k7snFjtSexit はプロセスを終了する関数とのことですが、web用のcgiでしか
プログラム作成経験していない僕には、いまいち感覚的に、何が
どう終了するのかわかりません。
web用のcgi専門なので、今ははだいたい、ブラウザに画面を出力する前に
いろいろ処理して、表示が終わったところで exit という風にしか使っていません。
だからほとんどHTMLフッター書き出しようのサブルーチンの最後ぐらいにしか
僕のプログラムにはexitってでてこないんですが。別に問題ない?
例えばこんな感じで。
代わりにdieで済ませることも多いけどね。
#!perl
use Getopt::Std;
our $opt_h;
getopts 'h';
if($opt_h)
{
print <<HELP;
$0 [-h]
-h ヘルプを印字して終了する
... その他、簡単な説明
HELP
exit;
}
# いろいろと処理…
__END__
ちなみに、使用しなくても全然問題ないので、無理して使う必要は無いです。
0329nobodyさん
02/07/28 03:52ID:W8D+zAzJttp://www.gt.sakura.ne.jp/~ocosama/garakuta/soft/paintbbs/pbbs.html
どうも文字サイズが小さくならないんです。
http://maebari.net/oekei/bbsnote.cgi
この程度まで全ての文字を小さくしたいのですが、
どうすればできるんでしょうか?
CGIの設定ページには文字サイズの設定がないし、試しに「oekaki.cgi」の中の
FONT SIZEをすべて1にしてみましたが、全く変化がありませんでした。
どなたか教えてください。お願いします。
0330329
02/07/28 03:52ID:???あ、「Web制作板」の
☆ Webサイト制作初心者用スレッドver28 ☆
http://pc3.2ch.net/test/read.cgi/hp/1027428903/
からの誘導です。
0331329
02/07/28 03:57ID:???http://pc.2ch.net/test/read.cgi/php/1012839651/
ってのがありました。
焦りすぎてこっちで質問してしまいましたが、あっちで質問してきます。
すみませんでした。
0332nobodyさん
02/07/28 17:05ID:Q5YYp1UwWin2000proのIIS5.0を使ってるんですが、
SSIを使った.shtmlファイルを出そうとすると
「CMD のオプションは #EXEC の呼び出しに対して使用可能になっていません」
と出てしまいます。
IISの設定は、
.shtmlと.shtmと.stmに
「C:\WINNT\System32\inetsrv\ssinc.dll」
を「GET,POST」に制限した動詞で設定してあります(初期設定のままです)
どうすればいいでしょうか?
0333nobodyさん
02/07/28 19:58ID:???0334nobodyさん
02/07/29 02:17ID:???cgiですか?
■ このスレッドは過去ログ倉庫に格納されています