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

CGIだけどなんか質問ある Pert 5.01

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/03/03 12:49ID:673UxTI5
print"くだらない質問はここにかけや!";

0666nobodyさん02/04/01 21:20ID:???
>>665
/*
グーぐるで探したら、河村かつまという人のサイトで仕様書の作り方を開設していたのですが、すごくわかりにくい文章で、
挫折してしまいました。やっぱり文章は本職の人が書かないとだめですね。
http://www.st.rim.or.jp/~k-kazuma/SD/SD.html
*/

何もしない奴が何かやっている奴を批評する権利はない。
帰れ。
0667nobodyさん02/04/01 21:28ID:gjG2j3IK
CGIの掲示板を書いているのですが、記事削除システムの構造が理解できません( ̄− ̄;
レス機能のない掲示板です。どなたか、記事削除システムを、どのようにすれば作れるか、教えてください。
0668nobodyさん02/04/01 21:29ID:???
>>667
削除対象のログ消すか対象ログにマークを付けて表示時に無視させればいい。
当然といえば当然の話。
0669WebBeginer02/04/01 21:39ID:FPTql6Ah
携帯両用の掲示板を開設しているのですが、PCでもiモードの絵文字が見たいので、ログファイル(@lines)を読み込んだ後に、

foreach(@lines){
$_ =~ s/♪/<img src=pic_i\/onpu.gif width=12 height=12>/ig;
}
foreach(@lines){
$_ =~ s/!/<img src=pic_i\/bikkuri.gif width=12 height=12>/ig;
}
           ・
           ・
           ・

※「♪」「!」は実際はiモードの絵文字を直接入力してます。

としているのですが、この構文をiモードの絵文字の数、つまり百数十回繰り返すと、サーバに負担がかかりすぎるため、エラーとなってしまいます。
何回かやった結果、この構文10個くらいが限界のようです。
なんとかサーバに負担をかけずに全ての絵文字を変換するスクリプトってできますか?
0670nobodyさん02/04/01 21:41ID:???
>>669
foreach(@lines){
$_ =~ s/♪/<img src=pic_i\/onpu.gif width=12 height=12>/ig;
$_ =~ s/!/<img src=pic_i\/bikkuri.gif width=12 height=12>/ig;
・
・
・

こういう発想が普通のような気もしますが。

length(@lines)とlength(@lines)^2じゃ全然処理量が違います。
ループはできるだけ少なく。これが基本。
0671nobodyさん02/04/01 21:44ID:???
>>669
とりあえずiオプションは必要ないのでやめなさい。
絵文字に詳しくないのでなんとも言えんが、たぶんもっと簡単になると思う
0672nobodyさん02/04/01 21:47ID:???
ってゆうか、↓このあたりが参考にならないか?
http://specters.net/cgipon/labo/dt_emoji.html
あとは自分でやってくれ。
0673WebBeginer02/04/01 21:53ID:FPTql6Ah
>>670 & >>671
即レスありがとうございます。
この構文自体、他の掲示板CGIから引用したもので、自分でも理解しきれていないのですが、

length(@lines)とlength(@lines)^2じゃ全然処理量が違います。

自分の構文の場合だと具体的にどうすれば・・・
自分でも669の構文の繰り返しは幼稚だとは思うのですがなにぶん知識が浅くて改良できませんでした。

あと、iオプションってなんですか?
0674nobodyさん02/04/01 21:54ID:vgH2l50K
お勧めのCGIリファレンスページを教えてください。
杜甫々さんの所以外で・・
0675nobodyさん02/04/01 21:57ID:???
>>673
>>670のコードが思いっきり答えじゃん。
0676nobodyさん02/04/01 21:58ID:???
>673
>670さんがきっちり教えてくれてるだろ。
読んでないのか?

iは大文字小文字を区別しないって事。

>674
とほほがダメな理由を言え。
そうでないと紹介できん。
0677WebBeginer02/04/01 22:05ID:FPTql6Ah
>>676
すいません、つい669の時の構文とおなじものだと勘違いしてました。
670さんのやりかたも前に試したのですが、百数十回だとやはりエラーがでてしまうんですよね・・・
0678nobodyさん02/04/01 22:08ID:???
>>673
ハッシュの変換テーブルを使うべし。
具体的にはCGIrescueでやってるから見てみれ。
0679nobodyさん02/04/01 22:15ID:???
>>677
ところでエラー内容は?

>>678
ああ、

s/.*?(.*?).*?(適当)/$data{$1}/g

みたいな?
0680WebBeginer02/04/01 22:20ID:FPTql6Ah
>>679
internal server errorですよ。

>>678
わかりました。早速見てみます。
0681nobodyさん02/04/01 22:26ID:???
>>680
>internal server errorですよ。

私はなめられているのでしょうか?
0682WebBeginer02/04/01 22:32ID:FPTql6Ah
>>680
いや、そういう意味で書いたのでは・・・
失礼でしたら申し訳ないです。サーバーエラーが複数あることを知りませんでした。
ただ、繰り返しを10回以内にするとエラーが起こらないのでやはりサーバに負担をかけたからエラーになったのかな、と。
0683nobodyさん02/04/01 22:33ID:???
>681さん
まあまあ落ち着いて
ごめん、わらてしまたよ
0684nobodyさん02/04/01 22:59ID:???
>682
埒あかん。
ソース丸ごとアップしろ。
多分説明してもお前には理解できないし、こっちが求めている情報をお前が選別して掲示できる事もない。
0685nobodyさん02/04/02 01:46ID:???
>>665
そうかなぁ?俺もそこは2年ぐらい前から知っているけど
よく書けていると思ったよ。
きみ基礎知識がないんじゃないの?
0686nobodyさん02/04/02 01:46ID:???
>>668
削除マーク付ける方が、データに不整合起こしにくくておすすめだよね。
0687nobodyさん02/04/02 01:48ID:???
>>679-683
の流れが秀逸すぎる(笑)
ワラタ。
0688nobodyさん02/04/02 10:06ID:???
>687
なにかにつけ、「ワラタ」ということばを連発したいがためにむりくり
さがすやつ! さびしいのネ!

0689nobodyさん02/04/02 20:33ID:???
サイト閉鎖されてるんやけど、どこかにある?
imgboard v1.22 R6のスクリプト
http://www.big.or.jp/~talk/t-club/soft/index.html
0690nobodyさん02/04/02 20:56ID:???
>>689
おまえのプロバのdnsがいかれてるだけ
0691nobodyさん02/04/02 21:13ID:???
>>688
むりくりって何!?( ̄□ ̄;)
0692nobodyさん02/04/02 22:24ID:???
>>689
マルチポスト死ね。
0693nobodyさん02/04/03 02:20ID:2Lh4+kxY
どこで質問するべきか迷いましたがここで質問します
%17%ea%17%e8%17%ec%17%a8%17%dd%17%e8%17%d3%17%e3%17%b8%17%d1%17%f7%17%de%17%a8%17%fa%17%d2%18i%06%b5%18j
これの解読方法ありますか?
ネスケでテキスト表示させてもできなかった
ちなみに文字化けメールじゃありません
とあるチャットのデータファイルで内緒話の部分だけがそうなるんです

ちなみにそのチャットはこれ
http://www.teachat.org/download.php
0694nobodyさん02/04/03 02:29ID:???
はじあやで同じ事聞いてたな。氏ね。

>>693はマルチポストです
お手を触れぬようお願いします
0695nobodyさん02/04/03 03:56ID:???
%17ばっかだね?
0696nobodyさん02/04/03 10:35ID:WrEAhQK7
my($date)
my $tmp

このmyってなんすか・・・
0697Dream ★02/04/03 10:41ID:???
便乗なんだけど、my宣言って、パフォーマンスやメモリ使用量に
好結果があるのかなぁ?

たとえば、複数人で同じソース使っていて、各自の担当部分の
変数を漏らさないようにする目的、とかだったら十分効果あるし
理解できるけど、素人程度の(要するに俺程度の)書くスクリプトでも、
充分、何らかの効果があるものなんですかね?
0698nobodyさん02/04/03 11:16ID:???
メモリやパフォーマンスの為にmy使ってるやつなんていないだろ。
無きゃ困るから使う。それだけ。
0699nobodyさん02/04/03 12:17ID:???
アプロダ掲示板作りたいんですけど
perlとphpどちらが宜しいですかね?
各々メリットデメリット教えて。
0700nobodyさん02/04/03 14:46ID:YEM9HsOO
#! /usr/local/bin/perl -w
の、「-w」オプションて、どういう場合に必要なんでしょう?
0701nobodyさん02/04/03 16:33ID:???
 -w       enable many useful warnings (RECOMMENDED)
0702解読できないよー02/04/03 16:48ID:???
実はわたしもどうしても解読できないものがありまして、それが693さんの書かれた
ものとなんとなく形式が似ているのです。どなたかわかるかたがおられましたら教えて
いただけないでしょうか? 以下に書いたものがそれなんですが...

%83l%83^%82%be%82%e6%83o%81[%83J!+%83I%83}%83G%82%cd%82%a2%82%a2%83J%83%82%82%c9%82%c8%82%ea%82%e9%82%ba!+by+%89%f0%93%c7%82%c5%82%ab%82%c8%82%a2%82%e6%81[
0703nobodyさん02/04/03 16:51ID:???
CGIへの直リンク禁止処理を追加する
ということをやろうと思いましてやってみたのですが、
許可をしたアドレスからもはじかれてしまいます。
どこかが間違っているのでしょうか?
お願いします。

##特定したURL以外アクセス禁止(1ならする、0ならしない)
$badurl = '1';
##上記で1にした場合そのURL指定(CGIを設置するページ)
#リンク許可ページのURL (正確に記入。複数指定可)
$url[1] = 'http://';
$url[2] = 'http://';
$url[3] = '';
$url[4] = '';

if($badurl) {
$url[0] = $script;
$ENV{'HTTP_REFERER'}=~ s/%(..)/pack("C",hex($1))/eg;
if($ENV{'HTTP_REFERER'}){
for(@url){
if($_ && $ENV{'HTTP_REFERER'} =~ /^\Q$_\E/){
$flag = 1;
last;
}
}
}
if($badurl && $flag != 1) { &error("CGIへの直リンクは禁止です"); }
}
0704nobodyさん02/04/03 17:12ID:???
>703
パーソナルファイヤーウォールを導入されてるとREFFERERを返さない事もある。
ソフトによって隠されるから。
0705nobodyさん02/04/03 17:29ID:???
>703
オマエはアホだろ? とんだイカレ野郎だな!
0706nobodyさん02/04/03 17:49ID:???
>if($_ && $ENV{'HTTP_REFERER'} =~ /^\Q$_\E/){

if($_ && ($ENV{'HTTP_REFERER'} =~ /^\Q$_\E/)){

0707nobodyさん02/04/03 19:38ID:???
>>702
http://www.google.co.jp/search?q=%83l%83%5E%82%BE%82%E6%83o%81%5B%83J!+%83I%83%7D%83G%82%CD%82%A2%82%A2%83J%83%82%82%C9%82%C8%82%EA%82%E9%82%BA!+by+%89%F0%93%C7%82%C5%82%AB%82%C8%82%A2%82%E6&hl=ja&sa=N&tab=dw
0708nobodyさん02/04/03 20:03ID:YEM9HsOO
>>701
ありがとうございます。必須というわけではないのですね。
私のローカル環境(Win32Apach+ActivePerl)ではつけてもつけなくても警告文に変化が見られないようですが、
そういうものなんでしょうか。
0709nobodyさん02/04/03 20:33ID:???
>708
-wcで構文チェックでもしてください。
071070302/04/03 22:15ID:???
>>704
FWが原因だったようです。
切ったら行けました。ありがとうございました。
0711nobodyさん02/04/03 23:34ID:???
>>709
つまんない質問にきちんとレスありがとうございました。
おかげで理解できました。
0712nobodyさん02/04/04 09:51ID:daqR1eJx
自分のホームページにつけたいのでファイルアップローダーcgiが欲しいんですが、
どこで入手できますか?yahoo!の検索ではどうにも行き詰まりまして・・・
0713nobodyさん02/04/04 09:54ID:???
>>712
そら、2ちゃんねるもまともに使いこなせない奴には無理だろうな。

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

ここはプログラマの板だ。コンシューマは消えてくれ。
0714nobodyさん02/04/04 10:10ID:daqR1eJx
失礼しますた
0715nobodyさん02/04/04 12:02ID:1G0Zf8mT
くだらない質問ですが

$ENV{'TZ'} = "JST-9";
$time = time;
($sec,$min,$hour,$mday,$mon,$year,$wday,$dmy) = localtime($time);

@week = ();
$date = sprintf("%04d/%02d/%02d",
$year+1900,$mon+1,$mday,$week[$wday],$hour,$min);

で$timeをlogに書き込むと12桁の数字になるのですが
なんででしょうか?
0716nobodyさん02/04/04 12:11ID:???
そりゃ$timeが12桁の数字だから。
せっかくだから$dateを書き込めって。
0717nobodyさん02/04/04 12:14ID:???
>>715
($sec,$min,$hour,$mday,$mon,$year,$wday,$dmy) = localtime($time);

@week = ();
$date = sprintf("%04d/%02d/%02d",
$year+1900,$mon+1,$mday,$week[$wday],$hour,$min);

までしてなぜ$timeを保存する・・・。

timeは1870年だったっけ?の1/1からの秒数です。
0718nobodyさん02/04/04 12:16ID:???
>715
timeで帰ってくる数字は1970年1/1 0:00からの秒数。
localtimeとかはそれを年月日の配列に変えてくれるもの。
大まかに言えばこんな感じ。
0719nobodyさん02/04/04 12:23ID:???
>>717
1970年1月1日0時0分0秒(GMT)だぉ。
072071502/04/04 12:36ID:???
理解しました。

皆さんありがとうございます。m(__)m
0721nobodyさん02/04/04 12:43ID:???
ちなみに1970年はUNIXのキゲンね。
0722nobodyさん02/04/04 12:47ID:???
>>721
死ぬほど勉強になった。なるほど。
0723nobodyさん02/04/04 21:50ID:U+Q0+BV/
えーと、
最近になってオペラが結構来てるんですけど。
表示が乱れてくるんです。
で、IE6とかに合わせてから、NN6とかみると微妙に違ってたりして、
そこでなおすとこんどはオペラが変で、
それをなおすとIEが変でいったいどうすれば、、、。
0724nobodyさん02/04/04 22:03ID:???
>>723
それはCGIとはほそろしいほど無関係。
Web製作板に行きなされ。

まぁあれだ。コレを期にCSSやStrict HTMLを覚えなさいってこった。
0725Q02/04/04 23:07ID:2wyFXP2l
Accessで作ったデータベースファイルをFTPでプロバイダのサーバにアップロードしてそのデータベースにPerlで記述したCGIからアクセスできますか?
AccessでできなかったらなにかCGIでアクセスできるようなデータベースはないでしょうか?
セキュリティが大事なことはやらなく、ただ単にFTPでアップロードしたデータベースファイルを扱いだけなんです。
0726nobodyさん02/04/04 23:23ID:???
>>725
サーバーにその「Accessで作ったデータベースファイル」を解析する何らかのブツが入ってりゃ余裕で出来るだろうよ。
0727Q02/04/04 23:35ID:2wyFXP2l
解析するブツですか・・想像もつきません。
CGIにSQL文を埋めこめられるのか、とかそんなことを想像してました。
0728nobodyさん02/04/05 00:05ID:9OfkLjEm
CGI_Lite.pmで複数のファイルを一度にアップできるかな?
<form action=upload.cgi enctype=multipart/form-data method=post>
<input type=file name=file1>
<input type=file name=file2>
・・・・
てな感じで。

0729nobodyさん02/04/05 01:38ID:???
>>728
1個のファイルのアップロードCGIが作れるなら、
同じ要領で2個出来るか試せば良いだろ。
なんでもかんでも聞くなよ。
0730nobodyさん02/04/05 01:52ID:???
>729
1個のファイルのアップロードCGIが作れるなら、
同じ要領で2個出来るか試せば良いことぐらい言うまでもないだろ。
なんでもかんでも答えるなよ。
0731nobodyさん02/04/05 03:41ID:???
>729
1個のファイルのアップロードCGIが作れるなら、
同じ要領で2個出来るか試せば良いことぐらい言うまでもない事はいくらおまえでもわかるだろ。
なんでもかんでも答えるなよ。
0732nobodyさん02/04/05 06:59ID:???
>>730-731 アフォ発見
0733nobodyさん02/04/05 10:20ID:???
>728
くれぐれもローカルで試してくれな。
0734nobodyさん02/04/05 17:53ID:???
Perlを使ってCGIを書いています。
親ウインドウから子ウインドウを開き、子ウインドウに入力された値をsubmitで親ウインドウに飛ばしています。
親ウインドウに値が渡った1回目はいいのですが、その画面でリフレッシュすると値がなくなってしまいます。
どのようにすれば、リフレッシュ時でも値を保持していれるのでしょうか?
0735nobodyさん02/04/05 18:44ID:???
>>734
cookieかね?
0736nobodyさん02/04/05 18:59ID:???
>>734
<input type=hidden>で持ち回る。
0737 02/04/06 01:52ID:twEq+RYw
i-modeで使える動作軽めのDLカウンタが欲しいのですが・・・
0738nobodyさん02/04/06 02:15ID:???
>>737
こんなCGI探してますスレッド Ver.5
http://pc.2ch.net/test/read.cgi/php/1013282469/
0739nobodyさん02/04/06 02:30ID:wejSs/vG
$text = "2ch2ちゃんねる";
と宣言した変数の初めの数文字だけを表示させる方法を教えてください。
$text には、半角文字と全角文字が混同しているという仮定です。
例えば、初めの4文字とすると、
「2ch2」としたいです。
0740nobodyさん02/04/06 05:21ID:???
>739
宣言と定義の違いもわかってなければ環境の文字コードも書いてないから
答えようがないネ! ネタか?
0741nobodyさん02/04/06 10:12ID:???
ついでに使用言語も書いてないし。
0742nobodyさん02/04/06 11:33ID:H1m5OFT0
perlで、実行しているcgiの絶対パスの取得方法を教えてください。
0743nobodyさん02/04/06 12:16ID:???
>>742
$ENV{'SERVER_NAME'}
$ENV{'SCRIPT_NAME'}
0744nobodyさん02/04/06 12:17ID:???
use FindBin;
$FindBin::Bin;
0745nobodyさん02/04/06 13:17ID:???
>>744
use FindBin;
$FindBin::Bin->radin;;
0746nobodyさん02/04/06 16:11ID:+jTWd3mh
>>739
すみません。説明不足でした。
文字コードは、Shift-JISです。
使用言語は、Parlです。
よろしくお願いします。
0747(-_-)02/04/06 16:16ID:Pfw6jEuQ
【コピペ1周年】4月7日同時多発オーダーIN吉野家【祭り】
(1)馴れ合い禁止。(一人で来る事。同伴禁止:いても知らぬ顔)
(2)「大盛りねぎだくギョク」を頼むこと。(並盛りねぎだくギョクも可)
(3)各会場ごとに指定時間厳守で現地集合。
(4)食ったら即帰る。
注)吉野家は家に帰るまでが吉野家です。

本スレ
http://ex.2ch.net/test/read.cgi/entrance/1017935504/l50
スレよりぬき等
http://www2.mnx.jp/carvancle/yoshigyu/
お祭り板
http://live.2ch.net/test/read.cgi/festival/1014549688/l50
0748(・∀・) ◆g183fDaI 02/04/06 16:27ID:???
http://elainfeene.vr9.com/
http://emupro.dk3.com/ pass:忍耐
http://isweb32.infoseek.co.jp//play/kyabema/urakai.html
http://noize2002.hypermart.net/
http://www.geocities.com/syamuneko1234/index.123.html
http://noir.dk3.com/
http://ryusei224.port5.com/index3.html
http://book-i.net/rboard/
http://isweb42.infoseek.co.jp/sports/snake2jp/
http://www.geocities.co.jp/Technopolis-Mars/7064/
http://geocities.com/pileekwd/accs/main.html
http://angelfire.lycos.com/ab7/cosmos2000/emyu.htm
http://wind.prohosting.com/theepage/thee.html
http://uniten.vr9.com/gate.cgi ID:defultuser PASS:0938
http://rainx.undonet.com/rain112165.html
0749 02/04/06 17:28ID:nd67Ze2k
レンタルサーバを借りていますがで dbmを使ったcgiがうまく動きません。
普通のCGIは動いているのですが、dbmが入っていないということはありえますか?
普通は、使えると聞いたのですが、使えないサーバもけっこうあるんでしょうか?

ちなみに本に↓のプログラムをためせば入ってるdbmが分かるといわれましたが
「表示すべきページがありません」になりました。

#! /usr/bin/perl

use Config;
print "Content-type: text/plain\n\n";
print "Result = ", $Config{extensions},"\n";
exit;
0750nobodyさん02/04/06 21:46ID:???
>>749
$Config{extensions}を調べてわかるのはデフォルトのエクステンションモジュールのみ。
システム(つか管理人)によっては他のブツも入れてるから、必ずしも正確ではない。
更に言うと、標準モジュールが存在しない環境ではConfigを調べる事すら失敗する。

このコードにしてみれ。

#!/usr/bin/perl

print "Content-Type: text/plain\n\n";
print eval{ require AnyDBM_File } ? "ok" : "not ok ($@)";


0751CGI初心者No.109502/04/06 22:53ID:???
今、UICの掲示板を借りています>もっと書き込み隊
複数設置してるんですが、どうも重い・・・。
そこで、エクスリアに自分で同じような掲示板を作ろうと思うんですがレンタルと
自作で表示速度とかって変わるものなんですか?
0752nobodyさん02/04/06 22:54ID:???
>>751
置くな。頼むから。
0753nobodyさん02/04/06 23:19ID:???
>751
Cで組め。
さもなくばカエレ
0754nobodyさん02/04/06 23:23ID:???
>>751
共用で置くな。頼むから。
075574002/04/07 01:17ID:???
>739==746
どうやらネタではなくほんとの初心者のようですね。これからはParlではなくPerlと書きましょう。
以下に処理例を書いておきます。

$len = 4;     # 抜き出したい文字数設定
$text= "2ch2ちゃんねる";

;# 印字するなら
print $text=~ /^((?:[\201-\237\340-\374][\100-\176\200-\374]|[\241-\337][\336\337]?|.|\n){$len})/o;

;# 代入するなら
($get)= $text=~ /^((?:[\201-\237\340-\374][\100-\176\200-\374]|[\241-\337][\336\337]?|.|\n){$len})/o;
0756nobodyさん02/04/07 02:32ID:GbMi0GS6
>>755
すみません。
PerlをParlと書いていました・・・。(鬱

参考になりました。
ありがとうございました。
0757nobodyさん02/04/07 05:50ID:???
>>751
そんなことも知らずに自作を考えている君はすごいよ。
0758川上02/04/07 17:12ID:adMQ+yzY
ご教授頂きたく宜しくお願い致します。

UNIXサーバーからNTサーバーへCGI(Perl)の
移転に伴いエラーが発生し原因が究明できず困っております。
プログラムとしてはCSV形式でデータを保存するデータベースです。
UNIXサーバーでは問題なく稼動しておりました。
状況としてはデータベースの検索処理を行っている部分では
データファイル($logfile)の読み込みは[open(IN,"$logfile")]で
処理しており問題なく動作しています。
しかし、新規書込みにおいて、[open(OUT,">>$logfile")]
また、修正において、[open(OUT,">>$logfile")]で処理したところ
ファイルが開けないというエラーが発生しております。

これは何が原因で起きているのか解らない為 どこをどう調べれば
いいのか困っております。
情報の至らぬ質問かと思いますが是非
考えられうる原因をご意見を拝聴致したく
何卒 宜しくお願い致します。
0759nobodyさん02/04/07 17:17ID:???
>>758
ソースとエラーメッセージを正確に提示していただければお力になれるかと思います。
0760川上02/04/07 17:52ID:adMQ+yzY
>>759さま
ありがとうございます。まず エラーメッセージですが
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
The headers it did return are:

と表示されreturn are:以降にエラー箇所の表示が出ておりません。
open(OUT,">>$logfile1") || &error("Write Error : データファイル1");で
ファイルが開けなかった時にエラー画面を出すようにしておりまして
そのエラー画面が表示されおります。
本件には関係ないと思いますが
当初 移転設定時にjcode.plの設定エラー時にはreturn are:以降にプログラム内での
require './jcode.pl';のラインをエラーとして表示してくれました。
0761川上02/04/07 17:52ID:adMQ+yzY
ソースにつきましては
まず新規書込処理としてはフォームから受取ったデータを下記にて書込みをさせています。
----データの書込処理----
# ログを読み込み
open(IN,"$logfile1") || &error("Open Error : データファイル1");
@lines = <IN>;
close(IN);
# 1つ前の記事を取得し分解
($bno,$bp1,$bp2,$bq1,$bq2,$bq3,$bq4) = split(/<>/, $lines[$#lines]);
# 登録Noを取得
$no = $bno + 1;
# ログ更新処理
open(OUT,">>$logfile1") || &error("Write Error : データファイル1");
print OUT "$no<>$p1<>$in{'P2'}<>$in{'q1'}<>$in{'q2'}<>$in{'q3'}<>$in{'q4'}<>\n";
close(OUT);

----データの受取処理----

if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else { $buffer = $ENV{'QUERY_STRING'}; }
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 文字コード変換
&jcode'convert(*value,'sjis');
# 禁止文字変換
$value =~ s/<>/<>/g;
# 削除情報
if ($name eq 'del') { push(@DEL,$value); }
$FORM{$name} = $value;
$no = $FORM{'no'};
$DEL = $FORM{'del'};
$in{$name} = $value;
}
--------
0762川上02/04/07 17:53ID:adMQ+yzY
私が至らないために情報が不足しているかと思いますが、
他にどのような情報をご提示させて頂けばいいか
わからないために とりあえず こちらを書き込ませて
頂きました。 ご教授 宜しくお願い致します。
0763nobodyさん02/04/07 18:22ID:???
>>760
指定されたCGIアプリケーションは、HTTPヘッダーの完全なセットを返さないことにより
無作法に振る舞いました。それが返したヘッダーは次のとおりです:
0764nobodyさん02/04/07 18:25ID:???
>>763
Content-typeなどなどが変と。
0765川上02/04/07 18:41ID:???
>>763さま
早速 ご教授頂きありがとうございます。

情報としてヘッダー部分の表示が抜けておりました。
申し訳ございません。
ヘッダーのソースは
print "Content-type: text/html\n\n";
print "<html>\n<head>\n";
print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n";
print "<title>タイトル</title></head>\n";
print "<body>\n";
としております。
エラーが発生した際に エラー画面を表示させておりますが
表示されたソースをみると出力されるべきソースが途中で終わっておりました。
今回のエラーとは関係ないかもしれませんが追記させて頂きました。
UNIX環境では問題なく動きNT環境ではデータファイルに書込みが出来ないのは
どういったときに発生するものなのでしょうか。
ご教授 宜しくお願い致します。
■ このスレッドは過去ログ倉庫に格納されています