CGIだけどなんか質問ある Pert 5.01
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/03 12:49ID:673UxTI50666nobodyさん
02/04/01 21:20ID:???/*
グーぐるで探したら、河村かつまという人のサイトで仕様書の作り方を開設していたのですが、すごくわかりにくい文章で、
挫折してしまいました。やっぱり文章は本職の人が書かないとだめですね。
http://www.st.rim.or.jp/~k-kazuma/SD/SD.html
*/
何もしない奴が何かやっている奴を批評する権利はない。
帰れ。
0667nobodyさん
02/04/01 21:28ID:gjG2j3IKレス機能のない掲示板です。どなたか、記事削除システムを、どのようにすれば作れるか、教えてください。
0669WebBeginer
02/04/01 21:39ID:FPTql6Ahforeach(@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:???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じゃ全然処理量が違います。
ループはできるだけ少なく。これが基本。
0672nobodyさん
02/04/01 21:47ID:???http://specters.net/cgipon/labo/dt_emoji.html
あとは自分でやってくれ。
0673WebBeginer
02/04/01 21:53ID:FPTql6Ah即レスありがとうございます。
この構文自体、他の掲示板CGIから引用したもので、自分でも理解しきれていないのですが、
length(@lines)とlength(@lines)^2じゃ全然処理量が違います。
自分の構文の場合だと具体的にどうすれば・・・
自分でも669の構文の繰り返しは幼稚だとは思うのですがなにぶん知識が浅くて改良できませんでした。
あと、iオプションってなんですか?
0674nobodyさん
02/04/01 21:54ID:vgH2l50K杜甫々さんの所以外で・・
0676nobodyさん
02/04/01 21:58ID:???>670さんがきっちり教えてくれてるだろ。
読んでないのか?
iは大文字小文字を区別しないって事。
>674
とほほがダメな理由を言え。
そうでないと紹介できん。
0677WebBeginer
02/04/01 22:05ID:FPTql6Ahすいません、つい669の時の構文とおなじものだと勘違いしてました。
670さんのやりかたも前に試したのですが、百数十回だとやはりエラーがでてしまうんですよね・・・
0682WebBeginer
02/04/01 22:32ID:FPTql6Ahいや、そういう意味で書いたのでは・・・
失礼でしたら申し訳ないです。サーバーエラーが複数あることを知りませんでした。
ただ、繰り返しを10回以内にするとエラーが起こらないのでやはりサーバに負担をかけたからエラーになったのかな、と。
0683nobodyさん
02/04/01 22:33ID:???まあまあ落ち着いて
ごめん、わらてしまたよ
0684nobodyさん
02/04/01 22:59ID:???埒あかん。
ソース丸ごとアップしろ。
多分説明してもお前には理解できないし、こっちが求めている情報をお前が選別して掲示できる事もない。
0688nobodyさん
02/04/02 10:06ID:???なにかにつけ、「ワラタ」ということばを連発したいがためにむりくり
さがすやつ! さびしいのネ!
0689nobodyさん
02/04/02 20:33ID:???imgboard v1.22 R6のスクリプト
http://www.big.or.jp/~talk/t-club/soft/index.html
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
0695nobodyさん
02/04/03 03:56ID:???0696nobodyさん
02/04/03 10:35ID:WrEAhQK7my $tmp
このmyってなんすか・・・
0697Dream ★
02/04/03 10:41ID:???好結果があるのかなぁ?
たとえば、複数人で同じソース使っていて、各自の担当部分の
変数を漏らさないようにする目的、とかだったら十分効果あるし
理解できるけど、素人程度の(要するに俺程度の)書くスクリプトでも、
充分、何らかの効果があるものなんですかね?
0698nobodyさん
02/04/03 11:16ID:???無きゃ困るから使う。それだけ。
0699nobodyさん
02/04/03 12:17ID:???perlとphpどちらが宜しいですかね?
各々メリットデメリット教えて。
0700nobodyさん
02/04/03 14:46ID:YEM9HsOOの、「-w」オプションて、どういう場合に必要なんでしょう?
0701nobodyさん
02/04/03 16:33ID:???0702解読できないよー
02/04/03 16:48ID:???ものとなんとなく形式が似ているのです。どなたかわかるかたがおられましたら教えて
いただけないでしょうか? 以下に書いたものがそれなんですが...
%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:???ということをやろうと思いましてやってみたのですが、
許可をしたアドレスからもはじかれてしまいます。
どこかが間違っているのでしょうか?
お願いします。
##特定した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:???パーソナルファイヤーウォールを導入されてるとREFFERERを返さない事もある。
ソフトによって隠されるから。
0705nobodyさん
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環境ではデータファイルに書込みが出来ないのは
どういったときに発生するものなのでしょうか。
ご教授 宜しくお願い致します。
■ このスレッドは過去ログ倉庫に格納されています