CGIだけどなんか質問ある Pert 5.01
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/03 12:49ID:673UxTI50705nobodyさん
02/04/03 17:29ID:???オマエはアホだろ? とんだイカレ野郎だな!
0706nobodyさん
02/04/03 17:49ID:???if($_ && ($ENV{'HTTP_REFERER'} =~ /^\Q$_\E/)){
0707nobodyさん
02/04/03 19:38ID:???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ありがとうございます。必須というわけではないのですね。
私のローカル環境(Win32Apach+ActivePerl)ではつけてもつけなくても警告文に変化が見られないようですが、
そういうものなんでしょうか。
0709nobodyさん
02/04/03 20:33ID:???-wcで構文チェックでもしてください。
0712nobodyさん
02/04/04 09:51ID:daqR1eJxどこで入手できますか?yahoo!の検索ではどうにも行き詰まりまして・・・
0713nobodyさん
02/04/04 09:54ID:???そら、2ちゃんねるもまともに使いこなせない奴には無理だろうな。
こんなCGI探してますスレッド Ver.5
http://pc.2ch.net/test/read.cgi/php/1013282469/l50
ここはプログラマの板だ。コンシューマは消えてくれ。
0714nobodyさん
02/04/04 10:10ID:daqR1eJx0715nobodyさん
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:???せっかくだから$dateを書き込めって。
0717nobodyさん
02/04/04 12:14ID:???($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:???timeで帰ってくる数字は1970年1/1 0:00からの秒数。
localtimeとかはそれを年月日の配列に変えてくれるもの。
大まかに言えばこんな感じ。
0720715
02/04/04 12:36ID:???皆さんありがとうございます。m(__)m
0721nobodyさん
02/04/04 12:43ID:???0723nobodyさん
02/04/04 21:50ID:U+Q0+BV/最近になってオペラが結構来てるんですけど。
表示が乱れてくるんです。
で、IE6とかに合わせてから、NN6とかみると微妙に違ってたりして、
そこでなおすとこんどはオペラが変で、
それをなおすとIEが変でいったいどうすれば、、、。
0724nobodyさん
02/04/04 22:03ID:???それはCGIとはほそろしいほど無関係。
Web製作板に行きなされ。
まぁあれだ。コレを期にCSSやStrict HTMLを覚えなさいってこった。
0725Q
02/04/04 23:07ID:2wyFXP2lAccessでできなかったらなにかCGIでアクセスできるようなデータベースはないでしょうか?
セキュリティが大事なことはやらなく、ただ単にFTPでアップロードしたデータベースファイルを扱いだけなんです。
0727Q
02/04/04 23:35ID:2wyFXP2lCGIにSQL文を埋めこめられるのか、とかそんなことを想像してました。
0728nobodyさん
02/04/05 00:05ID:9OfkLjEm<form action=upload.cgi enctype=multipart/form-data method=post>
<input type=file name=file1>
<input type=file name=file2>
・・・・
てな感じで。
0730nobodyさん
02/04/05 01:52ID:???1個のファイルのアップロードCGIが作れるなら、
同じ要領で2個出来るか試せば良いことぐらい言うまでもないだろ。
なんでもかんでも答えるなよ。
0731nobodyさん
02/04/05 03:41ID:???1個のファイルのアップロードCGIが作れるなら、
同じ要領で2個出来るか試せば良いことぐらい言うまでもない事はいくらおまえでもわかるだろ。
なんでもかんでも答えるなよ。
0733nobodyさん
02/04/05 10:20ID:???くれぐれもローカルで試してくれな。
0734nobodyさん
02/04/05 17:53ID:???親ウインドウから子ウインドウを開き、子ウインドウに入力された値をsubmitで親ウインドウに飛ばしています。
親ウインドウに値が渡った1回目はいいのですが、その画面でリフレッシュすると値がなくなってしまいます。
どのようにすれば、リフレッシュ時でも値を保持していれるのでしょうか?
0737
02/04/06 01:52ID:twEq+RYw0738nobodyさん
02/04/06 02:15ID:???こんなCGI探してますスレッド Ver.5
http://pc.2ch.net/test/read.cgi/php/1013282469/
0739nobodyさん
02/04/06 02:30ID:wejSs/vGと宣言した変数の初めの数文字だけを表示させる方法を教えてください。
$text には、半角文字と全角文字が混同しているという仮定です。
例えば、初めの4文字とすると、
「2ch2」としたいです。
0740nobodyさん
02/04/06 05:21ID:???宣言と定義の違いもわかってなければ環境の文字コードも書いてないから
答えようがないネ! ネタか?
0741nobodyさん
02/04/06 10:12ID:???0742nobodyさん
02/04/06 11:33ID:H1m5OFT00744nobodyさん
02/04/06 12:17ID:???$FindBin::Bin;
0746nobodyさん
02/04/06 16:11ID:+jTWd3mhすみません。説明不足でした。
文字コードは、Shift-JISです。
使用言語は、Parlです。
よろしくお願いします。
0747(-_-)
02/04/06 16:16ID:Pfw6jEuQ(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://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普通の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:???$Config{extensions}を調べてわかるのはデフォルトのエクステンションモジュールのみ。
システム(つか管理人)によっては他のブツも入れてるから、必ずしも正確ではない。
更に言うと、標準モジュールが存在しない環境ではConfigを調べる事すら失敗する。
このコードにしてみれ。
#!/usr/bin/perl
print "Content-Type: text/plain\n\n";
print eval{ require AnyDBM_File } ? "ok" : "not ok ($@)";
0751CGI初心者No.1095
02/04/06 22:53ID:???複数設置してるんですが、どうも重い・・・。
そこで、エクスリアに自分で同じような掲示板を作ろうと思うんですがレンタルと
自作で表示速度とかって変わるものなんですか?
0753nobodyさん
02/04/06 23:19ID:???Cで組め。
さもなくばカエレ
0755740
02/04/07 01:17ID:???どうやらネタではなくほんとの初心者のようですね。これからは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すみません。
PerlをParlと書いていました・・・。(鬱
参考になりました。
ありがとうございました。
0758川上
02/04/07 17:12ID:adMQ+yzYUNIXサーバーからNTサーバーへCGI(Perl)の
移転に伴いエラーが発生し原因が究明できず困っております。
プログラムとしてはCSV形式でデータを保存するデータベースです。
UNIXサーバーでは問題なく稼動しておりました。
状況としてはデータベースの検索処理を行っている部分では
データファイル($logfile)の読み込みは[open(IN,"$logfile")]で
処理しており問題なく動作しています。
しかし、新規書込みにおいて、[open(OUT,">>$logfile")]
また、修正において、[open(OUT,">>$logfile")]で処理したところ
ファイルが開けないというエラーが発生しております。
これは何が原因で起きているのか解らない為 どこをどう調べれば
いいのか困っております。
情報の至らぬ質問かと思いますが是非
考えられうる原因をご意見を拝聴致したく
何卒 宜しくお願い致します。
0760川上
02/04/07 17:52ID:adMQ+yzYありがとうございます。まず エラーメッセージですが
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:???指定されたCGIアプリケーションは、HTTPヘッダーの完全なセットを返さないことにより
無作法に振る舞いました。それが返したヘッダーは次のとおりです:
0765川上
02/04/07 18:41ID:???早速 ご教授頂きありがとうございます。
情報としてヘッダー部分の表示が抜けておりました。
申し訳ございません。
ヘッダーのソースは
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環境ではデータファイルに書込みが出来ないのは
どういったときに発生するものなのでしょうか。
ご教授 宜しくお願い致します。
0766nobodyさん
02/04/07 18:42ID:???にしてみて。どっちでもいいんだけどこっちが正式。
0767nobodyさん
02/04/07 20:49ID:???use CGI::Carp qw(fatalsToBrowser);
して、出力されたエラーメッセージ書け。
0768川上
02/04/07 21:25ID:???レスありがとうございます。
試して エラーメッセージを書かせて頂きますので
宜しくお願い致します。
0769やさしいお兄さん
02/04/07 23:26ID:???NPHスクリプトじゃない限りやってもやらなくても意味がないと思うゾ!
あと、Windows環境では、\r\n だと、印字するときに前もって binmode(STDOUT)
(標準出力の場合の例)をやっておかないと \x0d\x0d\x0a と3バイトになって
しまうのでは?
0770川上
02/04/07 23:57ID:???レスありがとうございます。
私がご教授をお願い致しました件(758 760 761)で
他より頂きました情報に
ファイルへの書込権限がないので ファイルオープンが失敗しているのでは
と頂いたのですがNTサーバーでもパーミッション設定が必要なのでしょうか?
0771nobodyさん
02/04/08 00:03ID:???そりゃいくらなんでも$Mをバカにしすぎ
0772やさしいお兄さん
02/04/08 00:54ID:???ファイルロックのとことかどうやってる?
まぁ、どちらにしろソースを全部みないとなんとも言えないから
どこかにアップしてくれや。
0773nobodyさん
02/04/08 05:15ID:AyL3x1HLと書いたんですが、オペラでやるとナナシタンとならずに空白で
そんままログファイルに書き込んでしまいます。
NN6やIE6では出来たんですが、なにか対処法などはあるのでしょうか?
0774nobodyさん
02/04/08 05:16ID:AyL3x1HLナンシタンじゃなくてナナシタンでした。
あと、そんままではなくてそのままでした。
言語と同時に日本語を学びます。
0775みかど ◆D9/neH06
02/04/08 10:54ID:???(既出なら悪い)
0776交付じゃないけどな
02/04/08 10:59ID:???ttp://www.gedoh.org/aki/2ch/current/bbs/
C言語でいいなら。
0777nobodyさん
02/04/08 23:55ID:???0778nobodyさん
02/04/09 11:12ID:TGMHutEB0779nobodyさん
02/04/09 14:24ID:c4h4V4YQいま、LWPのSimpleってやつを使って、cgiの変数を色々を変えて
結果をどばっと落とすプログラムを書いてます。
それで、変数の指定の仕方ですが、変数がtextだと
http://hogehoge/cgi-bin/hoge.cgi?hoge=hero
で上手くいくのですが、
変数がtextareaだと上手くいきません。
どしたらよいでしょうか?
0780nobodyさん
02/04/09 14:28ID:???0781nobodyさん
02/04/09 15:16ID:???0782初来板
02/04/09 17:08ID:H7fQTBug去年のスレが平然とゴロゴロ転がってるわけ?
0783nobodyさん
02/04/09 17:52ID:/BtheE/Chttp://member.nifty.ne.jp/hippo2000/perltips/Cgi.htm
を読みながら作ってたんですが、
upload()で取ってきたinputの値がファイルハンドルになってくれません。
マニュアルに「use strict;だとperlが文句を言う」と書いてあったので
その関数の最初でno strict;しています。
それから、my $file = upload("file"); print ref($file);
とすると<UPLOAD>file</UPLOAD>という文字が帰ってきました。
これは関係ないですか?
0784nobodyさん
02/04/09 17:56ID:???このスレの1がCGI.pm使ったアプロダを作っていた気がする
http://pc.2ch.net/test/read.cgi/php/1001950501/l50
0785nobodyさん
02/04/09 18:59ID:XYR/ZMS70786nobodyさん
02/04/09 20:24ID:/BtheE/Cソース読んでみるとFile::Copy::copy()で保存してるみたいなので、
use File::Copy;
:
copy($file, "save") || die("error: $!");
としても、<UPLOAD>file</UPLOAD> No Such File or Directory
というエラーで終了してしました。
CGI.pmを関数として使ってるんですが、それが悪いのかなあ、と。
0787nobodyさん
02/04/10 04:17ID:???0788nobodyさん
02/04/10 04:18ID:c6LIImpcネットの読み物を探してみても、どうしても分からないです。
下のテストソースを実行させても出力が無いのはなぜですか?
#!/usr/bin/perl -w
use CGI qw(upload);
print <<"END";
Content-type: text/html
<html>
<body>
<form method="POST" action="$0" enctype="multipart/form-data">
<input type="file" name="upfile" value="" />
<button type="submit">send</button>
</form>
END
if ($ENV{"REQUEST_METHOD"} eq "POST") {
$file = upload("upfile");
print <$file>; # print <STDIN>; では出力がありました。
}
print '</body></html>'
__END__
0790nobodyさん
02/04/10 08:07ID:???あまりに古いと一部の機能が使えない。
0791nobodyさん
02/04/10 14:49ID:U5pgjWQyhttp://yokohama.cool.ne.jp/icefall/
にリロードボタンをつけるにはどうしたらいいんでしょうか。
投稿欄全て空白で書きこみボタンを押すと
「名前を入れて下さい」「内容を…」
と出る仕組みになってるのでリロードボタンを別に設置したいと思っています
ブラウザのリロードボタンを押しても更新されないようで (;´Д`)
0792初心者ですいません
02/04/10 14:54ID:pqz8X1Tu{$tanka = $gearn / $gvtnum;}
などと割算をしているのですが、割り切れないと処理が止まってしまいます。
(割り切れると大丈夫みたいなのです)
こういう場合はどうしたら良いのでしょうか?
どなたか宜しくお願いいたします。
0793nobodyさん
02/04/10 15:25ID:???$tanka = $gvtnum ? $gearn / $gvtnum : undef;
0794初心者ですいません
02/04/10 16:10ID:pqz8X1Tuどうも有り難う御座います。
こうするものなのですね・・・
0795nobodyさん
02/04/10 21:44ID:NYy94cTHたとえばたとえば発言をする前にセレクトフォームで「大きい」を選ぶと
発言が大きくなるとか。つまりはここのような機能です。
http://c.cgiboy.com/test/
0796nobodyさん
02/04/10 21:50ID:???http://pc.2ch.net/test/read.cgi/php/1012839651/l50
0797nobodyさん
02/04/10 21:51ID:???セレクトフォームの内容によって出力内容を変えるだけ。
if($FORM{'select'} == 1){
$message = qq(<FONT SIZE=+2>$message</FONT>);
}
表示行数変えるのと一緒だろ。
頭使えよ。
0798nobodyさん
02/04/10 21:57ID:ZuHoR8rNスクリプトを改造してエラー処理を無くす。(おそらく&error("hoge")になってるだろう)
その代わりにコメント等が無い場合はスルーしてそのままリロードさせるようにする。
(書き込み処理をifで囲む)
それとブラウザの更新ボタンを試してみたけどちゃんと更新されるよ?
>>795
チェックボックスのvalueをifで受けてチャットのコメントの始めと終りに
<font size=4>hoge</font>というふうに付くよう、
if($DATA{'checkbox'} eq "middle") {$hoge=~s/(.+)/<font size=4>$1<\/font>/; }
みたいな感じで改造する。
以上パールで書かれていると仮定してのお話でした。
というかソース見てないけど多分パールだよね?w
0799nobodyさん
02/04/10 22:10ID:???上の者だけど、普通にリンクを貼ればいい話でした。すんまそん。
更新できないってのはおそらくformのvalueが残ったままで更新しようと
してるからエラー処理にひっかかってると思われ。
2チャンのリロードのリンクと同じようにそのCGIのURLを貼ればいいだけ。
0800nobodyさん
02/04/10 22:41ID:???0802nobodyさん
02/04/11 22:02ID:xrC+7yeQNetscape6.2で繋げた画像の先頭だけがおかしくなります。
これは、仕様なのでしょうか?
某有名CGI頒布サイトのサンプルでも同じようになります。
言語は、Parlです。
0803nobodyさん
02/04/11 23:39ID:???Parlなんて言語は知りません。
0804nobodyさん
02/04/11 23:50ID:xrC+7yeQすみません。また間違えてしまいました。
Perlです。
■ このスレッドは過去ログ倉庫に格納されています