CGIだけどなんか質問ある Pert 5.01
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
02/03/03 12:49ID:673UxTI50002nobodyさん
02/03/03 12:50ID:???0003nobodyさん
02/03/03 12:51ID:673UxTI50004nobodyさん
02/03/03 12:51ID:???Part 3 http://pc.2ch.net/test/read.cgi/php/988727833/l50
Part 4 http://pc.2ch.net/test/read.cgi/php/1000804655/l50
Pert 5:http://pc.2ch.net/test/read.cgi/php/1009331505/l50
CGI以外のPerlに関する質問スレッド
Perl 初心者コーナー
http://pc.2ch.net/test/read.cgi/php/1003900311/l50
CGIに依存しないPerlの話題一般
http://pc.2ch.net/test/read.cgi/php/991313362/l50
Perl以外のCGIスレッド(別にこのスレで良いんだけど参考に)
RubyでCGI
http://pc.2ch.net/test/read.cgi/php/988948655/l50
C言語CGI専用スレッド
http://pc.2ch.net/test/read.cgi/php/988918264/l50
TclでCGI作ってる人いる?
http://pc.2ch.net/test/read.cgi/php/993648764/l50
/*Perl.Ruby.php以外でCGI*/
http://pc.2ch.net/test/read.cgi/php/1004107967/l50
0005nobodyさん
02/03/03 12:51ID:???【PHP】 質問スレッド
http://pc.2ch.net/test/read.cgi/php/1003283567/l50
◆JSP◆
http://pc.2ch.net/test/read.cgi/php/984840356/l50
==ASP==
http://pc.2ch.net/test/read.cgi/php/984840107/l50
ColdFusion
http://pc.2ch.net/test/read.cgi/php/988191427/l50
その他の良スレ
【Perl,CGI】参考書籍
http://pc.2ch.net/test/read.cgi/php/988809842/l50
スクリプト改造工房
http://pc.2ch.net/test/read.cgi/php/988808396/l50
こんなCGI探してますスレッド
http://pc.2ch.net/test/read.cgi/php/1003132904/l50
00061
02/03/03 12:52ID:673UxTI5>>4
がまとめてくれたのでよく読んでからするように。
00071
02/03/03 12:52ID:673UxTI5>>5
もよく読むように。
00091
02/03/03 12:54ID:673UxTI500111
02/03/03 12:54ID:673UxTI500131
02/03/03 12:58ID:673UxTI500151
02/03/03 12:59ID:673UxTI5<font size=\"7\">
ダタヨ。
00161
02/03/03 13:01ID:673UxTI5print"<font size=\"7\">気にするなや!良スレワショイ♪</font>";
0017fight
02/03/03 13:09ID:hJgT38szお願いだから来て
内容は悪くないんだけど
出来たばかりだったから
頼むぜ
このページの未来は
君の心がけで
変わっちまうんだ
0018nobodyさん
02/03/03 13:09ID:673UxTI5で、いかががなもんでしょ?
0021nobodyさん
02/03/03 13:22ID:673UxTI5前スレの
http://pc.2ch.net/test/read.cgi/php/1009331505/l50
>:>:954の方法だと組み込んだ場所から後が表示されなくなりました。
そこで、(ログ形式が不明なので直してチョ)とかいて頂けたので
ログ形式が.txt形式ですと私が答えました。
そして、保存されている形が
no. http://ハァハァ.ne.jp comment name
と書きました。
こう書いたらスペースが危険だ。とカカレマチタ。
そこで私はスペースではなくてタフで空白をいれていると答えました。
<!--HTML-->
0023$name=1;
02/03/03 13:27ID:673UxTI5>:>:954の方法だと組み込んだ場所から後が表示されなくなりました。
そこで、(ログ形式が不明なので直してチョ)とかいて頂けたので
ログ形式が.txt形式ですと私が答えました。
そして、保存されている形が
no. url comment name
と書きました。
こう書いたらスペースが危険だ。と教えて頂けました。
そこで私はスペースではなくてタブで空白をいれていると答えました。
0024nobodyさん
02/03/03 13:30ID:ezJ1E2slmy $file = "hogehoge.txt";
my %count;
open (DAT, $file) or die $@;
while (<DAT>) {
my $name = (split /\t/)[3];
$count{$name}++; # $nameの発言数を+1
}
close (<DAT>);
print <<"_HTML_";
Content-Type: text/html
<html>
<body>
_HTML_
# 回数が多い人から並び替えて出力
foreach (sort{$count{$b} <=> $count{$a}} keys %count) {
print $_, ":", $count{$_}, "<br>\n";
}
print <<"_HTML_";
</body>
</html>
_HTML_
002524
02/03/03 13:31ID:???close (<DAT>);
↓
close (DAT);
0026nobodyさん
02/03/03 13:33ID:???whileの中でのmyもいただけない。
君の日本語と同じくらいコードも妙。
0027$name=1
02/03/03 13:34ID:673UxTI5print ="$thanks<<ありがとうございます。";
もう一度チャレンジしてみます。
0029nobodyさん
02/03/03 13:40ID:???0030nobodyさん
02/03/03 13:51ID:???0031nobodyさん
02/03/03 23:38ID:SnM6het0>whileの中でのmyもいただけない。
26の人じゃなくても良いんだけど、
コレ、どうしていけないのか誰か教えてくれませんか。
0032nobodyさん
02/03/03 23:39ID:SnM6het00033nobodyさん
02/03/03 23:47ID:???基礎からやり直した方が良いよ
0034nobodyさん
02/03/03 23:50ID:???my()は微々たる物とはいえオーバーヘッドがあるから。
まぁ無いにこしたことはないと考える者もいるのだろう。
おれはCGIスクリプト以外では気にしない。
0035nobodyさん
02/03/03 23:58ID:4iuYzTo30037nobodyさん
02/03/04 00:13ID:???俺もmy使う。
>my()は微々たる物とはいえオーバーヘッドがあるから。
を気にするくらいならそもそもPerlなんか使わない。
0038nobodyさん
02/03/04 00:56ID:???whileの中のmyは変だとほざいたものですけど、
C言語ユーザなのでローカル変数は関数の始めで宣言しないと気が済まないたちです。
C++でも
for(int i = 0;i < 5;i++)
{
string j = split();
}
のiは許しますがjはなんか違和感ありです。
0039nobodyさん
02/03/04 03:30ID:rNzDwXQ3Ю)__)
|´ー`| (´∀`;)....ヤッターカミガアターヨ
~~~~~
____
Ю)__)
|終了|
|´ー`| ....(;´Д`)イヤァァァァッ
0040nobodyさん
02/03/04 22:37ID:Bo4DQAhi0042ago
02/03/04 23:04ID:vvtG7qnQどっかにフリーのCGI無い?
0043nobodyさん
02/03/04 23:11ID:???検索エンジンの呼び出しフォームだったらCGIじゃなくたってできる。
検索エンジンに登録するのは、代行ページがある。
いったいなにがしたいのだ?
0044sage
02/03/04 23:20ID:vvtG7qnQそうなのか
REALY!
0045sage
02/03/04 23:40ID:vvtG7qnQぐーぐるはでけた
0047sage
02/03/04 23:54ID:vvtG7qnQおまえ暇なんだからアドレスくらいかいとけよ、ヒッキー!
0048sage
02/03/05 00:08ID:oXG1039l更新履歴とかってどうすれば?
0049nobodyさん
02/03/05 00:24ID:kLevaTw3掲示板、携帯電話から書き込み可能にしたら、
半角カナが頻繁に文字化けするっす。jcode.plで全部EUCでやってるっすぅ。
どうしたらいいっすか。今のところ半角カナ一文字の後に改行があるときに
文字化け確実っぽいっすが、まだ調べ中っす。
なんかあったらたのむっす。
0051名無しさん@お腹いっぱい。
02/03/05 00:28ID:???0052nobodyさん
02/03/05 00:30ID:???http://www.din.or.jp/~ohzaki/perl.htm#JP_HK2ZK
0053nobodyさん
02/03/05 00:45ID:kLevaTw3そこは参考にさせてもらってるっすが、そのサイトのどこを見たらいいすか。
正しくパターンマッチさせるとか怪しいっすが、パターンマッチとか使ってないし。
0054nobodyさん
02/03/05 00:48ID:???わざわざ何処を見るかまで教えてるじゃないか・・・。
0056nobodyさん
02/03/05 00:53ID:???その価値のないソースを見せてみRO!
0057nobodyさん
02/03/05 00:56ID:kLevaTw3それは、convertだかのオプションですでにやってだめで、
今、h2z_eucというのもためしてみたっすが、うまくいかんす..。
ていうか、WINやマックの半角はよくて携帯はだめってどういう仕組みっすか?
0058nobodyさん
02/03/05 00:58ID:???送信の文字コードはなんなんだYO!
0059nobodyさん
02/03/05 01:01ID:kLevaTw3convertで第2引数は指定しなきゃいいかと思ってたっす。
頭悪くてすまんす。
0060nobodyさん
02/03/05 01:08ID:???h2z_eucを再チェックしてみまっす。
0061nobodyさん
02/03/05 01:16ID:???なに勘違いしてんだYO!
サーバ側からの送信文字コードだYO!
携帯だからSJISしか使えないはずだから確認したかったんだYO!
0062nobodyさん
02/03/05 01:22ID:???携帯にはSJISで出力してるっす。表示部には問題ないと思うっす。
なんか携帯のフォームからデータ受け取った時点ですでにおかしいっぽい。
0063nobodyさん
02/03/05 01:24ID:???0064nobodyさん
02/03/05 01:32ID:???if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'});
@a = split(/&/, $query_string);
foreach $x (@a) {
($name, $value) = split(/=/, $x);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
&jcode'convert(*value, "euc","","z");
$FORM{$name} = $value;
}
}
....
print OUT "$FORM{'name'}\n";#ファイルに書き込みね☆
0065nobodyさん
02/03/05 01:35ID:???>携帯にはSJISで出力してるっす。
ってことは、携帯以外には別のコードってことKA?
そしたら改行コードの統一ってのが不可欠になってくるけどどんな感じDA?
0066nobodyさん
02/03/05 01:39ID:???改行コードか..。そういえば、パールメモからコピペして使ってたなあ。
全然チェックしてなかったっす。ちょっとチェックしてみるっす。
いろいろ世話になるっす。ありがとう。
0067nobodyさん
02/03/05 01:46ID:???でも<input type="text">からのデータには改行は入ってないっぺ?
これも化けるんだけど、改行コード関係あるっぺか?
0068nobodyさん
02/03/05 01:48ID:???半角以外の漢字コードは問題ないのKA?
0069nobodyさん
02/03/05 01:50ID:???の場合、type="text"部分は省略できるZO!
携帯のようにバイト数に制限があるならより少なく書くのがよかろう!
0070nobodyさん
02/03/05 01:54ID:???あ、ドコモのやたらと古い機種(関係あるのかわからんが)で、
(涙)みたいな意味の記号が化けたことがあったすけど、
原因がいっしょだか不明っす。
見切り公開してしまった掲示板す。どんどんバグがあらわに..。
0071nobodyさん
02/03/05 01:57ID:???おお、それは知らなんだ!予期せぬ有用な情報をありがとう!!
0072nobodyさん
02/03/05 02:00ID:???s/\x5c/\\\x5c/g;
0073nobodyさん
02/03/05 02:08ID:???ホント頭悪くてすまないんだけど、なんか、携帯で半角カナで書き込んだら
データファイルの中も様子がおかしくて、携帯にsjisで表示しようが、
IEとかにEUCで出力しようが同様に化けるっす。
IEで半角カナ打った場合はIEでも携帯でも表示はノープロブレム。
これは携帯の電波に特殊な妨害電波が混じってるとしか思えん!そんな俺がデムパか。
てか、蓋を開けてみたら半数以上の訪問者が携帯から書き込みやがるし..。
0074nobodyさん
02/03/05 02:14ID:???ってのは、あくまでもSJISのみに適用DA!
0075nobodyさん
02/03/05 02:19ID:???って全然意味不明っすが、たしかに携帯でのみ化けなくなったっす。
007675とか
02/03/05 02:21ID:???0077nobodyさん
02/03/05 02:23ID:???0078nobodyさん
02/03/05 02:29ID:???より化けないと思うZO!
s/([\201-\237\340-\374])([\100-\176\200-\374])/$2eq"\x5c"?"$1\\\x5c":"$1$2"/ge;
s/([\241-\337])([\336\337])/$2eq"\x5c"?"$1\\\x5c":"$1$2"/ge;
007975とか
02/03/05 02:30ID:???sjisフォームから来たデータだけ文字化けして書き込まれて、
さっき教わったやつでsjis出力時(つまり携帯に表示時)だけ元に戻ってるっぽい。
ああ、なんかだんだんわかってきたZO!そんな気がするだけか..。
0080nobodyさん
02/03/05 02:33ID:???IEでの日本語EUCコードの文字化けはメタタグで回避済みKA?
0081nobodyさん
02/03/05 02:37ID:???それだったらURLデコード直後に文字コードがSJISの場合のみ>78の処理を先に
かましておくのはDOUDA!!
008275とか
02/03/05 02:39ID:???で回避を試みてるっすが、それでもたまに化けることがあるっぺYO!
0083nobodyさん
02/03/05 02:43ID:???と書いておくと、化けない場合が多いZO!!
008475とか
02/03/05 02:44ID:???なるほどー。それってのはつまり
先にjcode.plとかで判定してsjisなら78の処理、
その直後にEUCに変換してデータファイルに書き込みであってるのかYO!
いや、態度でかくてすみません。あってらっしゃいます?いやこれも違うな。
008575とか
02/03/05 02:45ID:???ははは、言えてる。
0086nobodyさん
02/03/05 02:46ID:???チョット進化してきたNA!!
008775とか
02/03/05 02:54ID:???今やってみてるっす。私的な解説サイト参照しながらだからはかどらんス。
ていうか、今思ったけど、携帯専用の書き込みCGI作ったほうが動作確実かな。
しかーし、それはあんまり美しくないのでやはりこのままの方針で..。
008875とか
02/03/05 03:29ID:???なんだか面倒なことになったYO!
今度はIEで携帯からの半角カナが表示できなくなったYO!
IEからの半角も携帯からの半角もデータファイルを
テキストエディタで見れば同様に見えるんだけど、
携帯からの半角だけIEで化けるっす。携帯では化けないっす。
さっき教わったsjis出力時の怪しい変換は削除したっす。
かわりに書き込み前に変換してるっす。
0089nobodyさん
02/03/05 03:32ID:???だいたい以下のようになったDAロ!!
if ("\U$ENV{'REQUEST_METHOD'}" eq 'POST'){
read(STDIN, $_, $ENV{'CONTENT_LENGTH'});
$isSjis= &jcode::getcode(\$_) eq 'sjis' ? 1 : 0;
for ( split('&') ){
($name, $_)= split('=');
tr/+/ /;
s/%(..)/chr(hex($1))/eg;
if ( $isSjis ){
s/([\201-\237\340-\374])([\100-\176\200-\374])/$2eq"\x5c"?"$1\\\x5c":"$1$2"/ge;
s/([\241-\337])([\336\337])/$2eq"\x5c"?"$1\\\x5c":"$1$2"/ge;
&jcode::sjis2euc(\$_);
}
$FORM{$name}= $_;
}
}
009075とか
02/03/05 03:38ID:???でIEでの表示がおかしい以外が一見正常に動いてるっぽく見えるっす。
009175とか
02/03/05 03:40ID:???化ける文字の直後の改行をエディタで入力しなおすだけでIEでも表示できるようになるっす。
これがなにを意味するのか、ちょっとわからんっす。
0092nobodyさん
02/03/05 03:43ID:???if ( $ENV{HTTP_USER_AGENT}=~ /MSIE/i ){ s/\x5c/\\\x5c/g; }
0093nobodyさん
02/03/05 03:46ID:???サーバOSはUNIX系だRO! EUCで処理するぐらいだから当然そうだRO-YO!
009475とか
02/03/05 03:52ID:???で、今バイナリエディタなるものを落としてきて、データファイル見たんだけどYO!
IEでの半角書き込みも携帯の半角書き込みも全く一緒に見えるZOYO?
0095nobodyさん
02/03/05 03:54ID:???009675とか
02/03/05 03:56ID:???>>89のままでバイナリデータ見てもなんら異常あるように見えナインだPPE!
それからIEでだめって言ってたけどYO!ネスケでもだめだっぺ!
0097nobodyさん
02/03/05 04:09ID:???やはりそれも半角だけ化けるんだRO?
つまり半角カタカナがいっぱい化けた感じだと思うGA,
これはSJIS上でEUCコードを見たときに特有のものDA!
でも半角以外の日本語は化けないというのはチョット疑問だZE!
もしかして化けないのはボタン上の文字とかKA?
009875とか
02/03/05 04:14ID:???EUC表示のときに化けるんだZO!
0099nobodyさん
02/03/05 04:16ID:???るが、そこのコードを出しやがレ!!
010075とか
02/03/05 04:17ID:???それ以外の書き込み文字(普通のテキスト)は全部正常なんだZE!
010175とか
02/03/05 04:22ID:???print OUT "$FORM{'name'}\n";
print OUT "$FORM{'message'}\n";
こういうところのことかYO?
0102nobodyさん
02/03/05 04:27ID:???おKE!
s/([\201-\237\340-\374])([\100-\176\200-\374])/$2eq"\x5c"?"$1\\\x5c":"$1$2"/ge;
#s/([\241-\337])([\336\337])/$2eq"\x5c"?"$1\\\x5c":"$1$2"/ge;
010375とか
02/03/05 04:30ID:???010475とか
02/03/05 04:34ID:???0105nobodyさん
02/03/05 04:35ID:???そういうデータの書き方かYO!
直前にアクセスした一件分だけ保存してるということだNA!!
この一旦保存したデータを読み込んで出力してるなら当然改行文字を切り落として
いると思うがどうDA!!
$FORM{'message'}っつーのはテキストエリアで複数行書けるんじゃないのKA?
010675とか
02/03/05 04:42ID:???messageはテキストエリアだYO!これもまずったKAYO!
0107nobodyさん
02/03/05 04:45ID:???とりあえずデータファイル読み込んだら改行を切り落とし過ぎるぐらいに切り落とせ!
テキストエリアデータの改行処理はどう処理してるのKA?
s/[\x0a\x0d]+/<BR>/g;
ってな感じか?
010875とか
02/03/05 04:52ID:???テキストエリアはYO!一行ずつ
print "$_<br>\n";
ってやってるだけだYO!悪いかっ!
010975とか
02/03/05 04:57ID:???0110nobodyさん
02/03/05 04:58ID:???なんでくっつくんだ!
1行ずつ読み込んでるだRO!
テキストエリアの出力にしても今一ついかしてネーゼ!
ソースを公開できる環境があればアドレスを書け!!
0111nobodyさん
02/03/05 05:09ID:???をみみを揃えてだしやがれ!!
011275とか
02/03/05 05:20ID:???見れ!
0113Name_Not_Found
02/03/05 05:39ID:???011475とか
02/03/05 05:43ID:???0115nobodyさん
02/03/05 05:44ID:???# $FORM{'message'} =~ s/\x0D\x0A/\n/g; # 改行コードを統一?動作未確認
# $FORM{'message'} =~ tr/\x0D\x0A/\n\n/;
# $FORM{'message'} =~ s/\r*$//g;
# $FORM{'message'} =~ s/ +/ /g;
やっとだいたいわかったZE!!
まず、上の行まで行って待っていRO!
011675とか
02/03/05 05:47ID:???意味わかんねーYO!
0117nobodyさん
02/03/05 05:48ID:???$SEPA= '^K'; ## ADD NEW
$FORM{'message'}=~ s/[\x0a\x0d]+/<BR>/g; ## ADD NEW
open(OUT, "> wwwboard.tmp");
print OUT join($SEPA,"$yy年$mm月$dd日","$jj時$ff分$bb秒",$FORM{'from'},$FORM{'message'},"\n"); ### ADD NEW
=comment1
print OUT "$yy年$mm月$dd日\n";
print OUT "$jj時$ff分$bb秒\n";
print OUT "$FORM{'from'}\n";
print OUT "$FORM{'message'}\n";
print OUT "<!-- end of comment -->\n";
=cut
0118nobodyさん
02/03/05 05:49ID:???オマエのファイルに同じ部分があるだRO-!
012075とか
02/03/05 05:56ID:???ただ、うまくねーNA!
0121nobodyさん
02/03/05 05:56ID:???open(OUT, "> wwwboard.tmp");
print OUT "$yy年$mm月$dd日\n";
print OUT "$jj時$ff分$bb秒\n";
print OUT "$FORM{'from'}\n";
print OUT "$FORM{'message'}\n";
print OUT "<!-- end of comment -->\n";
0122nobodyさん
02/03/05 05:58ID:???念のために残しているこのおくゆかしさってなもんDA!!
0123nobodyさん
02/03/05 05:59ID:???まだつづくからYO!!
油断すんな!!!
012475とか
02/03/05 06:03ID:???こうなるとYO!
データファイルの構造が変わるべNA!
0125nobodyさん
02/03/05 06:03ID:???open(IN, "wwwboard.dat");
while (<IN>){
print "<div align=\"left\" class=\"normal\">\n";
$date=$_; $time=<IN>;
$from=<IN>;
chomp($from);
0126nobodyさん
02/03/05 06:05ID:???そうDA!!
1行に1データを書くからナ!
よく気づいたナー!!
0127nobodyさん
02/03/05 06:08ID:???これで最新データの取得ダゼ!!どうだいかしてるDARO? 一応、変数名は整合性がとれる
ように合わしてやったからヨー
chop($_=<IN>);
($date, $time, $from, $_)= split($SEPA, $_, 4);
012875とか
02/03/05 06:09ID:???実はYOー!この掲示板にはYO!もう一つ秘密のモードがあってYO!
そっちでもっとめんどくさいことになってるんだっPE!!
データ構造変えない方法はないかYO!
またはよ、データ内にタグを書かない方法はないかYO!
ないならしょうがないから秘密モードの仕様変更するからいいけどYO!!!
0129nobodyさん
02/03/05 06:09ID:???0131nobodyさん
02/03/05 06:14ID:???もちろんまだつづくけどヨー!
やめるんならいまのうちだZE!
やるんなら読み書きぐちをチョット変更して同じ変数にぶち込んで出力も同じようにする
だけだから難しくはないだローヨ!
それとも大事なデータが既に大量に存在するとかKA?
013275とか
02/03/05 06:15ID:???013375とか
02/03/05 06:17ID:???0134nobodyさん
02/03/05 06:20ID:???print qq(<div align="left" class="normal">\n);
s/</</g; s/>/>/g;
print "$_<br>\n";
print qq!<div align="right" class="small">$from $date($time)</div>\n!;
print qq(<img src="graphics/dot.gif" height="30">\n);
これが終わったら whileループの読み出し・出力が終わったことになるからヨー!
またコメントししておけ!!
013575とか
02/03/05 06:22ID:???0136nobodyさん
02/03/05 06:23ID:???013775とか
02/03/05 06:25ID:???0138nobodyさん
02/03/05 06:26ID:???if ($QUERY{'page'}==0) { #ページ指定がなければ発言リストを出力
$title = "<div align=center>最新の15件</div><br>";
&jcode::convert(\$title, 'sjis','euc');
print "$title";
$end_count=0;
while(<IN>){
013975とか
02/03/05 06:32ID:???0140nobodyさん
02/03/05 06:32ID:???while(<IN>){
chop($_=<IN>); ### ADD NEW
($date, $time, $from, $_)= split($SEPA, $_, 4); ### ADD NEW
# $date=$_;
$date =~ s/(\d+)年(\d+)月(\d+)日/$2月$3日/g;
# $time=<IN>;
$time =~ s/(\d+)時(\d+)分(\d+)秒/$1時$2分/g;
# $from=<IN>;
# while (1) {
# $_=<IN>;
# if ($_ =~ /^<!-- end of comment -->/) {last;}
# }
014175とか
02/03/05 06:35ID:???0142nobodyさん
02/03/05 06:40ID:???チョット間違いDA!!
chop($_=<IN>); ⇒ chop;
たまにはわざと間違うからYO-!
014375とか
02/03/05 06:40ID:???014475とか
02/03/05 06:42ID:???0145nobodyさん
02/03/05 06:48ID:???面倒だから字下げは省略だ!
} else { #ページ指定があれば指定ページまで飛ぶ
if ($QUERY{'page'}>15) {$QUERY{'page'}=15};
$end_count=0;
while(1){
if ($end_count>=($QUERY{'page'}-1)){
last;
}
0146nobodyさん
02/03/05 06:50ID:???while(1){
if ($end_count>=($QUERY{'page'}-1)){
last;
}
$_= <IN>; $end_count++; ### ADD NEW
# if (<IN> =~ /^<!-- end of comment -->/) { # コメントの終端を判定
# $end_count++;
# }
}
014775とか
02/03/05 06:55ID:???0148nobodyさん
02/03/05 06:56ID:???これで else ブロック内まで書き終わったことになるから覚悟しRO!
chop; ### ADD NEW
($date, $time, $from, $_)= split($SEPA, $_, 4); ### ADD NEW
s/</</g; s/>/>/g; ### ADD NEW
=comment3
$date=<IN>;
$time=<IN>; #時間(使わない)
$from=<IN>;
while (1) {
$_=<IN>;
if ($_ =~ /^<!-- end of comment -->/) {last;}
=cut
&jcode::convert(\$_, 'sjis','euc');
=comment4
$_ =~ s/<!--/<!--/g;
$_ =~ s/-->/-->/g;
$_ =~ s/&/&/g;
$_ =~ s/"/"/g;
$_ =~ s/</</g;
$_ =~ s/>/>/g;
print "$_<br>\n";
}
=cut
&jcode::convert(\$from, 'sjis','euc');
print "$_<br>\n"; ### ADD NEW
print "<div align=\"right\">$from</div>\n";
0149nobodyさん
02/03/05 07:00ID:???まあ、実際に動作させてないから間違ってるかもしれんがそこはご愛嬌!!
こっちのサーバ立ち上げるのもめんどいし、そう間違ってもいないダロウ!!
ポジィティブシンキングってやつだ!!
だた、最後にこれだけは言わせてもらうからナ!!
言葉遣いが荒っぽくて御無礼お許しください。(ペコリッ
015075とか
02/03/05 07:08ID:???大変勉強になりました。訂正前に比べて、非常に美しい形になりました。
まだ、ちょっと意味不明なところもありますが、調べればすぐわかりそうな位
簡潔ですね!!
0151nobodyさん
02/03/05 07:15ID:???Perl苦手みたいネ!!
かなり無駄な部分が見うけられるからもっとスッキリしたコードに
なるはずです。
015275とか
02/03/05 07:17ID:???完成したら是非見に来て欲しいので、よろしければメールください。
さっきのソースの最後のメールアドレス、残ってるかな?
まあいいや。気が向いたらよろしくお願いします。
本当にありがとうございました!
これから仕事に出かけます..(鬱)。
015375とか
02/03/05 07:23ID:???とほほさんのばっか参考にさせてもらってたので、他の人のソースはかえってムズカシイっす。
本一冊買おうかな。
では、お出かけします。あー眠い。
0155nobodyさん
02/03/05 09:11ID:???他人にみやすく、時間がたった後の自分にみやすく、メンテや機能追加のしやすいコーディングをするっていう方針は間違ってるかなあ?
0156nobodyさん
02/03/05 11:47ID:???0158プリクラ
02/03/05 21:46ID:zRZgn879if ($tagkey) { $value =~ s/<>/<>/g; }
else {
$value =~ s/\&/&/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
}
となってるんですけど、どうしてこれが機能するかわからんです。
正規表現の置換って s/★/☆/g で★が☆に変換されるってことじゃないのです?
だとするとなんで$value =~ s/<>/<>/g;でタグが許可されるのか
わかんないよ。
0159nobodyさん
02/03/05 21:51ID:???else以下だとタグを全て&;lt;などに変換している。
$value =~ s/<>/&;lt;&;gt;/g;では<>がセットになっているときだけしか変換をしない。
つまり、<b>の場合、<>の間にbが入っているからマッチングしない。
0160nobodyさん
02/03/05 21:53ID:???下2行は無駄。あ、HTMLにしたから&ltが<に化けてるのか。
<を&ltに変えればそれはHTMLタグではなくなる。
<html>
<html&rt -ブラウザでは-> <html>と見える。
016175とか
02/03/05 22:06ID:???おかげさまでYO!ソースはかなり見栄えよくなって、秘密モードも対応できたんだけどYO!
肝心の文字化けは全く解決しなかったPPE!!!
でYO!携帯携帯とか言ってパケット料金無駄づかいしてテストしてたKEDO!
携帯ページにIEで行って(sjisフォームで)書き込んでも文字BAKEdaZEYO!
フリダシに戻ったっPE!!気づいたらレスくれYO!!!
0163nobodyさん
02/03/05 22:29ID:uMIlDzWPって何か間違ってる?
0165nobodyさん
02/03/05 22:58ID:???sub ab { "ab" }
0168お腹さん@名無しいっぱい。
02/03/05 23:27ID:???呼んだ?
016975とか
02/03/05 23:43ID:???>>161のとおりなんだけども!ウザいとか言われてへこむから、
なんか端的な解決策あったらお願いしますYO!!!!!!
0170お腹さん@名無しいっぱい。
02/03/06 00:11ID:???そうさネー。もっとスクリプトを整理することサネー。
チョット仕様がわかりかねる部分があるケド、MODEがcomment,light,cellular の
3つがあってcommentモードは print "Location: "; exit; で終わってるのはどう
いう処理?
017175とか
02/03/06 00:19ID:???もっと簡潔な処理できますね。
でも、どうやらもっと別の要因の気がします。
今、フォームデコードする直前あたりからEUCに変換するまでをバイナリで
丹念に調べてます。
0172お腹さん@名無しいっぱい。
02/03/06 00:25ID:???Location: でパラメータを渡さずにこのCGIを呼ぶならどれも実行されないような
気もするケド。。。最終的にLocation: http://xxxxxxx の指定を書くというこTO?
017375とか
02/03/06 00:29ID:???引数なければそっちに行くんです。だから、Locationで飛ばさなくていいんですよね。
なんでそんなことしてたんだろう。
0174お腹さん@名無しいっぱい。
02/03/06 00:32ID:???017575とか
02/03/06 00:57ID:???昨日教わったフォームデータを受けてるところ、調べてみたら
同じアという文字をEUCとsjisで送信すると
EUCでは%8E%B1を受け取ってデコード直後から最後まで8Dになってます。
sjisでは%B1を受け取って最後までB1のまま。
&jcode'convert(*value, "euc",$form_code,"z");
とか
&jcode'h2z_sjis(*value);
って文法間違ってないですよね??
0176お腹さん@名無しいっぱい。
02/03/06 00:59ID:???if ($in{'mode'} eq "comment" && $in{'message'} ){
commentモード処理;
exit;
}
if ($in{'mode'} eq "light"){
ligntモード処理;
exit;
}
if ($in{'mode'} eq "cellular"){
ligntモード処理;
exit;
}
※ 現在、大まかに上の処理の流れになっているのでif文がそれぞれ独立していて、
それぞれのブロックが終了したら exit; で処理が終了してしまう。つまり、
2つのifブロックを実行することはありえないし、パラメータによってはどの
ifブロックも実行しないでなにも返さないCGIになってしまい、スクリプトエラー
になると思う。したがって、大枠としては以下のように書き替えたほうがいいの
では?
;# URLデコード処理実行
if ($in{'mode'} eq "comment" && $in{'message'} ){
commentモード処理;
}
elsif ($in{'mode'} eq "light"){
ligntモード処理;
}
elsif ($in{'mode'} eq "cellular"){
ligntモード処理;
}
else { デフォルト処理;}
017775とか
02/03/06 01:02ID:???0178お腹さん@名無しいっぱい。
02/03/06 01:07ID:???別に半角のままでも化けないかもわからないので、まず処理構造をスッキリ
スマートにさせたほうが分かり易くなると思う。
少し読み進めてみると、ファイルロックはしないようにしたみたいダケド、ロックファイル
の後始末(アンロック)などが残っているのでこれは削除したラ?
0179お腹さん@名無しいっぱい。
02/03/06 01:10ID:???付加しないと動かないとかとほほに書いてあったようなきがするケドドウ?
018075とか
02/03/06 01:15ID:???関係なさそうだったのでカットしただけです。
デフォルト処理はif文無しなので、変なパラメータならデフォルトが実行されます。
これ、とほほさんのラウンジの構造そのものなんですが(笑)。
でも全部elsifで繋いだほうが後始末何度も書かなくて済むのでより簡潔ですね。
変更します。
0182お腹さん@名無しいっぱい。
02/03/06 01:21ID:???部分かなんかで使ってる?使ってなければ削除したりーナ!
$ENV{'TZ'} = "JST-9"; # Set timezone
@wdays = ( "sun", "mon", "tue", "wed", "thu", "fri", "sat", "sun" ); # Constant variables
018375とか
02/03/06 01:27ID:???全部elsifで繋ごうと思ったんですが、commentモードは終了後に掲示板に
戻らないとならないので別個のif文にしてその中でモードを変更するか
locationで飛ばさないとダメですよね??
0184お腹さん@名無しいっぱい。
02/03/06 01:52ID:???いいと思うケド、どのモードでもない場合(仕様がどうなのかわからないが)やcommonモード
でメッセージが空の場合などの対処も同時に「デフォルト処理」部分でしておく必要はあるネー。
;# URLデコード処理実行
;# ファイルロック実行
if ($in{'mode'} eq "comment" && $in{'message'} ){
commentモード処理;
}
elsif ($in{'mode'} eq "light"){
ligntモード処理;
}
elsif ($in{'mode'} eq "cellular"){
ligntモード処理;
}
;# デフォルト処理;
0186お腹さん@名無しいっぱい。
02/03/06 02:14ID:???018775とか
02/03/06 02:18ID:???0188お腹さん@名無しいっぱい。
02/03/06 02:21ID:???なぜか知らんがPOSTおよびGET送信を分けて書いてあるのでアル。
018975とか
02/03/06 02:23ID:???0190お腹さん@名無しいっぱい。
02/03/06 02:26ID:???書くほうがよりコンパクトで分かりやすいソースにあるってなもんだ!!
019175とか
02/03/06 02:37ID:???0192お腹さん@名無しいっぱい。
02/03/06 02:39ID:???read(STDIN, $_, $ENV{'CONTENT_LENGTH'}) unless $_= $ENV{'QUERY_STRING'};
019375とか
02/03/06 02:44ID:???一つの配列に両方入れるということですか?
0194お腹さん@名無しいっぱい。
02/03/06 02:46ID:???019575とか
02/03/06 02:50ID:???ところで、192は意味がわかりません。unless、それ以外は..。
0196お腹さん@名無しいっぱい。
02/03/06 02:51ID:???ないと思うが、これって思い違いカナ?
0197お腹さん@名無しいっぱい。
02/03/06 02:56ID:???で分割したそれぞれを更に=で分割してデコードをぶちかますから大枠は以下の
ようになるハズでアール。(チョット文字コード変換は置いといて)
for ( split('&') ){
nbsp; nbsp;($name, $_)= split('=');
nbsp; nbsp;tr/+/ /; s/%(..)/chr(hex($1))/eg; # URLデコード
nbsp; nbsp;$in{$name}= $_; # 値のセット
}
019875とか
02/03/06 02:56ID:???とかって入るんです。
0199お腹さん@名無しいっぱい。
02/03/06 02:58ID:???for ( split('&') ){
($name, $_)= split('=');
tr/+/ /; s/%(..)/chr(hex($1))/eg; # URLデコード
$in{$name}= $_; # 値のセット
}
0200nobodyさん
02/03/06 03:00ID:???<form action="hoge.cgi?foo" method="POST">
とかすると同時に送れたと思う。
0201お腹さん@名無しいっぱい。
02/03/06 03:02ID:???なるホードネー! それじゃー新たな必殺技を考えるからしばしお待ちを...
0202お腹さん@名無しいっぱい。
02/03/06 03:07ID:???read(STDIN, $_, $ENV{'CONTENT_LENGTH'});
$_.= "&$ENV{'QUERY_STRING'}";
020375とか
02/03/06 03:08ID:???0204お腹さん@名無しいっぱい。
02/03/06 03:10ID:???020575とか
02/03/06 03:22ID:???0206お腹さん@名無しいっぱい。
02/03/06 03:27ID:???わからんケド、経験上EUCで送信したHTMLフォームから入力された値はEUCの
URLエンコードで返ってくるのでSJIS送信の場合は必ずSJISのURLエンコード
で返ってくるのかチョットまだ試したことがないから取得パラメータの文字コードの解析
は必要なのかどうか迷うところネー。
020775とか
02/03/06 03:36ID:???0208お腹さん@名無しいっぱい。
02/03/06 03:39ID:???この際、内部処理はすべてEUCで、HTML出力はすべてSJISにしては?
なにかできない理由あったッケ?
020975とか
02/03/06 03:47ID:???全部SJISですか..。それが一番いいんですかね??文字化けしにくいですよね。
どっかの解説で、日本語使うならEUCだ!という知識を身に付けたので出力までEUCにしてただけです。
0210お腹さん@名無しいっぱい。
02/03/06 03:50ID:???経験上文字化けしたことがないし、文字コード変換のプロセスも必要なくなるし、
いいことづくめだとは思っています。
021175とか
02/03/06 03:58ID:???文字化けよりはいいかな。
ていうかEUCって文字化けしないんですか?
0212お腹さん@名無しいっぱい。
02/03/06 04:02ID:???021375とか
02/03/06 04:03ID:???さっきモードうんぬんを変更したせいで、
書き込み後のURLが?mode=commentのままになっている..
やっぱりLocationで飛ばしたほうがいいのかなあ。
021475とか
02/03/06 04:04ID:???0215nobodyさん
02/03/06 04:06ID:???foreach $line(@hoge_lines){
@超hoge=split(/<>/,$line);
&普通にhoge;
}
こういうのがありまして、
&普通にhogeというサブルーチンは
sub 普通にhoge{
名前:超hoge[0]
題名:超hoge[1]
}
となっているとします。
このルーチン内に別のログファイルの内容を読み込んでうまく組み込むにはどうすればよいのでしょうか?
0216お腹さん@名無しいっぱい。
02/03/06 04:09ID:???GET送信ならURLに?name=value&.... がくっつく(Location: 等で飛ばさない限り)
>214
Heavyモードってファイルには無いネー。これが隠し?
021775とか
02/03/06 04:14ID:???heavyが隠し(笑)。こっちは重いだけでいまのところ問題なしです。
0218nobodyさん
02/03/06 04:18ID:???@hoge_linesとログファイルの書式,
読み込んで組み込む時の上手い下手の定義とかを書いて。
0219お腹さん@名無しいっぱい。
02/03/06 04:19ID:???ネタかと思ったが...
0220nobodyさん
02/03/06 04:24ID:???0221お腹さん@名無しいっぱい。
02/03/06 04:34ID:???そうダネ。この板、最近ムネオが多いネ!
022275とか
02/03/06 04:38ID:???なんか、mode=commentとか全部postで送ったら、URLは簡潔だけど挙動がおかしいんです。
書き込み後、更新ボタンを押すと、重複して書き込まれてしまいます。
0223215
02/03/06 04:45ID:???@hoge_linesは
$name,$title
で
ログファイルの書式は
名前<>題名<>
こんな風です。
上手いはとにかくできでどんな形でも組み込めればおいしい。
下手は組み込みを失敗している状態のことでSU!
0224お腹さん@名無しいっぱい。
02/03/06 04:49ID:???print OUT join($SEPA,"$yy年$mm月$dd日","$jj時$ff分$bb秒",$in{'from'},
&nbps; $in{'message'}),"\n";
0225お腹さん@名無しいっぱい。
02/03/06 04:51ID:???224の &nbps; 部分はインデントミスさー
022675とか
02/03/06 04:55ID:???あと、splitのほう、^Kは\^Kと書かないとだめでした。
ちなみに、なぜ^Kなんでしょう??
takakura^kenさんからの書き込みあったらマズイ!
0227お腹さん@名無しいっぱい。
02/03/06 04:57ID:???これはコントロール文字のつもりだったので以下のように書き換えてみて、
$SEPA= "\x0b"; # セパレート文字(コントロール文字^K)
0228nobodyさん
02/03/06 05:06ID:???sub 普通にhoge{
名前:超hoge[0]
題名:超hoge[1]
特別なhuga;
}
sub 特別なhuga{
open LOGFILE, "logfile.dat";
while (<LOGFILE>) {
push @LOG, sub { {name=>$_[0],title=>$_[1]} }->(split /<>/);
}
close LOGFILE;
}
#$LOG[0]->{name}
022975とか
02/03/06 05:09ID:???^Kという文字列は僕のしょぼい検索に引っかかりませんでした..。
無知でお恥ずかしいです..
0230お腹さん@名無しいっぱい。
02/03/06 05:12ID:???る人がおおいけど、これだと2バイトになってしまうから、敢えて1バイトの
コントロール文字を使うという心意気みたいなもので、テキストデータを処理
する際の手筋ダーネ!
023175とか
02/03/06 05:19ID:???ところで、昨日教わったやり方だとデータファイルに<br>が入ってましたが、
これを例にならって^Rという勝手な区切り文字に変えてしまったんですが、
\x0bと同時に使って区別できる区切り文字ってありますか?
0232お腹さん@名無しいっぱい。
02/03/06 05:22ID:???\x1b ESC文字(コントロール文字^[)
023375とか
02/03/06 05:31ID:???ありがとうございます。
さて、そろそろ寝ます..最近、仕事中にしか寝てないんです(!)
2夜に渡って大変お世話になりました。どうもありがとうございました。
とりあえず明日全部sjis変換を試してみます..。
0234223
02/03/06 05:48ID:???logfile.datの方から読み込んだ名前の数をカウントして
もう一つの方から読み込んだ名前の横に表示しようとすると、
1に対する文句の数 2
2に対する文句の数 3
3に対する文句の数 5
と1に対する文句の数にそのまま+されていってしまいます。
これはどうやれば解決できるのでしょうか?
0235223
02/03/06 05:50ID:???と1に対する文句の数にそのまま+されていってしまいます。文句の数がね○
0236nobodyさん
02/03/06 05:57ID:???sub 特別なhuga{
@LOG = ();
〜以下略〜
0237nobodyさん
02/03/06 07:01ID:CkyOD57Tもっと詳しく書いてやれYO!
0238nobodyさん
02/03/06 10:32ID:CkyOD57T0239ぷうすけ
02/03/06 11:05ID:qVBo2uea$ret=mkdir($fname,0777);
perlのcgiプログラム内にて、ディレクトリを上記の方法で作成して、その
中にデータファイルを作成する、というようなことをやろうとしています。
Webブラウザからのアクセスにより、上記の文は実行され、ディレクトリは作
成されます。$retには成功の1が返っていますが、実際のパーミッションは
755となっています。これは、サーバの設定のせいなのでしょうか?または、
なにかプログラム的に対策が取れますか?なお、cgiの置いてあるディレクト
リのパーミッションは777になっています。
0240nobodyさん
02/03/06 13:41ID:???多分サーバーの設定だろう。
詳しくは俺もよく知らんが、perldoc -f umask が参考になるかもしれない。
等と適当な事を逝ってみる。
0241nobodyさん
02/03/06 14:34ID:???ユーザーの入力を格納した %hoge と %foo で5,6列目を上書きし、
write.txtに保存したいです。
以下のように配列 @temp を一時利用したコードを書いたところ、
\tでjoinしたにも関わらず、タブ文字でなく「\t」を区切り文字に連結されました。
つまり、
print "@temp[0]\\t@temp[1]\\t@temp[2]\\t 〜 @temp[8]\\t\\n";
を実行した時と同じ結果になりました。
望む結果を得るにはどうしたらいいのでしょうか?
$counter=0;
open READ, "read.txt";
open WRITE, "+>write.txt";
while ($input = <READ>){
$counter++;
@temp = split (/\t/,$input);
@temp[5] = $hoge{$counter};
@temp[6] = $foo{$counter};
print WRITE join('\t',@temp) ;
}
close READ;
close WRITE;
0242nobodyさん
02/03/06 14:42ID:???'\t'
"\t"
この二つの違いはわかるかい?
0243242
02/03/06 14:50ID:???てかそれだけヒントをもらえれば自分で調べます。
0244nobodyさん
02/03/06 14:56ID:???君は241だろ。(w
まぁ、がんばれ。
頑張って無理だったらここを見ろ。
ttp://tohoho.wakusei.ne.jp/wwwperl1.htm#String
ttp://tohoho.wakusei.ne.jp/wwwperl1.htm#Esc
0245243
02/03/06 18:46ID:???024675とか
02/03/07 00:36ID:???&jcode::convert(\$value,"euc","","z");
これが動作してませんでした。第3引数がダメなようですが、何故でしょう??
それから、sjis用対策をいろいろ教わりましたが、例えば、発言者名が全部半角カナだと
getcodeの返り値がundefなので文字化け対策の部分は全部素通りしてたのでした。
実際携帯から書き込む人は何故か名前を全部半角カナで書く人が多いし、
本文も全部半角カナで書かれても困るので、フォームから漢字一文字をこっそり送って
その漢字コードに全部合わせることにしました。
若干不明な点を残しつつも文字化けにおびえる日々からは開放されました..。
0247nobodyさん
02/03/07 06:17ID:WTUe3Qf10248ぷうすけ
02/03/07 17:26ID:+Mtxnc4D<input type=password name='pass' size=8 maxlength=8>
<input type=submit name='button' value='認証'>
<input type=hidden name='data' value='hoge'>
</form>
perlのCGIにて、このようなHTMLを出力して、パスワードを
入力させようとしています。テストはWin2000 + IE5.5です。
パスワード用のテキストボックスにパスワードを入力して、
「認証」ボタンをマウスでクリックすると、正しく3つの要素が
QUERYとして送信されます。しかし、キーボードでEnterを押したり、
スペースバーでボタンを押したような場合、
name='button' value='認証'
の情報が、まったく送信されません。どうしてこのようなことに
なるのでしょうか?
最後に、ありがとうございました。>240さん
助かりました。
0249nobodyさん
02/03/07 17:31ID:???認証を押してないから。
0250ぷうすけ
02/03/07 18:08ID:+Mtxnc4D押したYO!!
0251nobodyさん
02/03/07 18:19ID:???0252nobodyさん
02/03/07 20:08ID:???submitタイプにname属性はありません。
つーか、パスワードをGETで送るな。
0255nobodyさん
02/03/07 20:48ID:???俺はWin2k+IE5.5SP2でちゃんと送れる。
マウスクリック、スペースキー、エンターキー全て正常に送れた。
0256nobodyさん
02/03/07 21:01ID:???0257nobodyさん
02/03/07 23:26ID:???0258nobodyさん
02/03/07 23:51ID:???やってみたらテキストフィールドでのEnterだけ入らなかった。
スペースでもEnterでも、ボタンを押せば送られる、という事かな。
ついでに、<input type="button" name="button" value="認証"> だと何やっても送られなかった。
仕様なのかな。
0259258
02/03/07 23:53ID:???でした。
0260nobodyさん
02/03/08 00:57ID:???0261nobodyさん
02/03/08 01:13ID:???板違い
0262nobodyさん
02/03/08 09:05ID:???0264相撲車
02/03/08 09:39ID:ol/NmE/5CGIをperlで書いて、実験には成功したけど、これ設置したら不正アクセス禁止法に
触れますか?
取り合えず、プロバの契約内容には言及してなかったんだけど。
0265nobodyさん
02/03/08 09:43ID:???法律勉強しな。
一応それはsendmailで第三者中継させるのと大して変わらないね。
後、一般に自分のSMTPのアカウント晒して大丈夫なのか?と。
0266相撲車
02/03/08 09:44ID:ol/NmE/5だったため。大目に見て欲しいのですが、どうなんでしょうか…。
0268262
02/03/08 09:47ID:???~ s/(\W)/'%' . unpack('H2', $1)/eg;
ってやったらうまくいきました
0269相撲車
02/03/08 09:53ID:???即レスありがとうございます。
法律の概要には目を通してみましたが、サービスの範囲内の利用と思えた
ので使用してみました。法律本文を見ないとダメなんですかね?
mail from:プロバの自分のメアド
と書いておけばいいんでしょうか?
ちなみに、smtpサーバはなぜか認証要りませんでした。そして、メールは
自鯖へアクセスしてきた人がメンバー登録したときのパスワード送信用と
いう利用目的なので、設置したとしても利用者は内容を編集できないです。
そんなのでも危ないでしょうか?
0271nobodyさん
02/03/08 10:56ID:inegq+pM現在の@LINESに格納されている文字列全体が何バイトなのかを
知る方法ってないものでしょうか?
0272nobodyさん
02/03/08 11:08ID:???好きな方法を使えや。
1.
$size = length join "", @LINE;
2.
$size = 0;
$size += length for @LINE;
0273相撲車
02/03/08 19:39ID:ol/NmE/5意味がわからず、ネット中を転々…。
どこか有効な解説サイトご存知の方、教えてはくださらぬか?
DNSの役割はわかるけど、細かい用語が意味不明という程度の知識です。無いに
等しいです。
0274nobodyさん
02/03/08 20:50ID:JBnFAxe6いかないのですが、UserIDとPassをcsv or tabで管理するので、
それを一括で登録するだけのcgiってありますか?
0276相撲車
02/03/08 23:39ID:XJfzC2SF忠告どうもです。
でも、仕組み理解っていってもキリが無いと思うのですが、どの程度把握しておけ
ばいいのですか?普段全く使っていない頭をどうにか使いたいのですが。
昨晩から、ずっと悩んでいた問題は結局MXレコード記録してくれないDNSに登録して
いてもAレコード参照してくれるということで解決したっぽいです。そして現在Postfis
が動かないという問題に直面。
まぁ、オレみたいな厨は家庭内LANで実験でもしてからWANに繋げろ、ということで。
0277相撲車
02/03/08 23:42ID:???0278nobodyさん
02/03/09 14:09ID:qqwIDSpw配布しているCGIのデザインを変えたり、とかはあるんですが最初から作ったことが無いのです。
とりあえず掲示板やアクセスカウンタなどを作りたいのですが・・
KENTと作ろうPerlでCGI はどうでしょうか?
0284初心者
02/03/09 19:43ID:q9DQVSy0HTMLのinput type="text"
name="data0","data1","data2",..."dataX"までの入力データを
ループで処理したいのですが
$iがループするとして
$ran = "data$i";
$length = (length($in{"$ran"}));
$lengthが文字数をとってくれないのですが、おかしいところありますか。
0285nobodyさん
02/03/09 20:11ID:???$length = length($in{"$ran"});
ところで、$ranの内容は?
当然それくらいデバッグしてんだろ?
0286nobodyさん
02/03/09 23:36ID:???とかファイル名に ./ を付けた形で呼び出しますよね?これは必須ですか?
あと、その呼ばれた CGI が内部で呼び出すデータファイル等にも時々 ./ が
ついてたりしますが、環境 (httpd 等) によっては無いと不味いんでしょうか?
いや、unix 系で安全の為にカレントは PATH に含めて居ないのは知っていますし
その場合の実行方法が PATH を含めなきゃいけないのも知っています。
もしかして RFC の規定とかでしょうか?
0288nobodyさん
02/03/09 23:40ID:???CGIはURLと言う文字列によって場所が一意に決まる。
httpdはURLとファイルシステムをマッピングし、実行する。
URLにはPATHと言う概念がないため、誤実行の恐れはない。
0289286
02/03/10 00:05ID:???やっぱそうですよねぇ。
web 上のサイトで (本は持ってないので) よく見かけるんですが、
あれは一体どういう理由で付けてるんでしょうねぇ。
まぁ本人に聞かないとわからないのかもしれませんが、みんな一様に
あの記述方でしたのでずっと気になっていますた。
結論: ./ は要らない。
0292nobodyさん
02/03/10 00:13ID:???呼び出し元のファイルの場所がカレントになるんだから./は冗長ではあるが間違いではない。
使える以上否定するのは得策ではない。
0293nobodyさん
02/03/10 00:19ID:???0294291
02/03/10 00:19ID:???私の頭が少し unix shell 寄りだったという事ですね (苦笑
0295初心者
02/03/10 00:50ID:nlk31vWZレスありがとうございます。
追加して状態の説明です。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ループ内に
$ran = "data$i";
print "RAN2:$in{$ran}<br>";
↑を組み込むと、ちゃんと$in{$ran}を出してくれます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
$i=1のとき
$in{"data1"}の内容は日本語文字であったり英語半角であったあり色々ですが、
$length = (length($in{'data1'}));
print "$length";
print "$in{data1}";
では両方とも正常に値を出すのですが、
{}内に変数を入れるとうまく動きません。
$length = (length($in{$ran})); →何の数字も出しません。
$length = (length($in{"$ran"})); →何の数字も出しません。
$length = (length($in{'$ran'})); →$ranを変数として認識しません。
0296nobodyさん
02/03/10 00:53ID:???リストと勘違いされても文句は言えん。
0297nobodyさん
02/03/10 02:03ID:???話終わったみたいだけれど ./が無いと動かないshellあるべさ?
./にPATH通ってないの。
unixよりとか云々じゃなくPATHを理解してないんじゃ?
0299nobodyさん
02/03/10 04:03ID:OHdoISBH一昼夜くらいで早く作ってくれる所あるでしょうか。
難しい改造ではないので、わかる人にはちょちょいだと
思うのですが。
0300nobodyさん
02/03/10 04:16ID:???キチンと説明出来るなら、やってくれる人居るかもね。
スクリプト改造工房 Part4
http://pc.2ch.net/test/read.cgi/php/1012839651/l50
0301nobodyさん
02/03/10 05:33ID:8R88bCKCシンプル。観覧者による一行レス可能。
画像UPロード(これはタグで回避できるからいいとして)
みたいなのないですかね?
探してみたものの、一応あったんだけど、レス生成欄がでかすぎたりとか…。
ゴミゴミしてるとか。カレンダー形式とか。
要望に会わないのばかりで困ってます;-;
とにかくシンプルでタグ可能観覧者による一行レス可能。
な日記CGIないでしょうか?
知ってる方いましたら教えてくれると嬉しいです。
0302Name_Not_Found
02/03/10 05:56ID:???0303nobodyさん
02/03/10 05:59ID:???スレ違い。
0305nobodyさん
02/03/10 06:40ID:???探してますスレッドありました><
すいませんでしたー。
向こうで聞いてミマス!
0306 ◆a/globe2
02/03/11 03:22ID:WZhG/BNpMacからだと拡張子を取れないようです
どうすればいいんでしょうか
0307nobodyさん
02/03/11 03:40ID:???環境変数にコンテントタイプが出てるかもしれない。
投稿者にファイルの種類も投稿してもらえば手間がないけど,信頼度は低い。
ファイルのヘッダ調べるのが確実だけど,手間がかかるためほとんど使われない。
0308 ◆a/globe2
02/03/11 03:44ID:WZhG/BNpコンテントタイプの振り分けを細かくすればいいんですかね、、、。
一応拡張子を入力してもらう欄を設置するとか(Macの場合のみ表示で)
0309nobodyさん
02/03/11 04:35ID:???ファイルヘッダ読むのは難しいですか?
できそうなら↓とかが参考になりますよ
http://www.wotsit.org/default.asp
0310A Patch
02/03/11 06:35ID:7j09hA/VAnHttpd のように Perl.exe のパスを決め打ちできないでしょうか?
プロバイダにアップする CGI で #!local/usr/bin などと書いておきたいので
#!C:/Perl だと困るんです。アップするたびに書き換えるのも面倒だし
それがために Perl を C:\local\bin にインストールなんて馬鹿げたことも
したくないです(複数のサーバを持っていてそれぞれ Perl のパスが
違ったら終わりじゃない?)。
出来ないのであれば素直にあきらめますが何か設定があれば
あるいは何らかの方法があれば教えていただきたいです。
0312nobodyさん
02/03/11 19:44ID:???うちの近所の本屋はCGI関連の本が少ないんですよ。
だからkentと作ろう〜の内容もよく知らないんです。
そこで聞きたいのですが、kentと作ろうperlでCGIには
Windows98にperl本体をインストールするところや
if文などの関数についても解説してるでしょうか?
0313nobodyさん
02/03/11 20:08ID:???ttp://tohoho.wakusei.ne.jp/
ここの方がよっぽど親切。
0314 ◆a/globe2
02/03/11 21:00ID:1vbRZmtL指定した投稿できるファイルの最大容量
よりファイルサイズがちっさいのにエラーになります
インターナルサーバーエラなのでCGIだしてるエラーではないようです
cgi-lib.plのReadナントカっていうサブルーチンを取り込んでるんですが
それが問題かなともいます
imgboradなどではそのようなエラーは出ないようなので
どういうことなのかなと思っております
わかる人がいらっしゃれば教えてください
0318310
02/03/12 00:40ID:???すみません、意味がわかりませんでした。
0319nobodyさん
02/03/12 01:15ID:???SSIで一括表示してるんですが、リンク先のURLを変えずクリック数をカウントするにはどうしたらいいでしょうか
0320nobodyさん
02/03/12 01:27ID:???リンク先にアクセス解析を入れてもらう。
0322sage
02/03/12 03:08ID:XpAJ+W0c>リンク先のURLを変えず
って部分が引っかかるのだけど・・・
結果的に表示されるページが変わらなかったらいいって事?
それとも<a href="http://www.hoge.com">という
タグ自体が変わったらまずいって事?
通常は321さんの方法を使うけど、これだとタグ自体が変わるしね。
0323ぷうすけ
02/03/12 07:00ID:al7KKwB3言語はperlです。
0325ぷうすけ
02/03/12 10:10ID:NiSfFmxxすんません、書き方悪かったです。
わかる方、方法を教えてください。私は何処へいくべきでしょうか?
0326nobodyさん
02/03/12 10:17ID:???googleに行って「LWP」や「socket」を「perl」と組み合わせて検索。
0327nobodyさん
02/03/12 14:20ID:???CGIを UTF-8 で保存して実行してみたら、一行目でエラーが出ました。
> perl -v
This is perl, version 5.005_03 built for i386-freebsd
>perl utf8.cgi
Unrecognized character \357 at utf8.cgi line 1.
テキストエディタで見るとちゃんと先頭は #!/usr/bin/perl で始まっていて、
改行も LF になってるのですが、バイナリエディタで見ると、
# の前に EF BB BF というなぞのコードがくっついており、
これのせいでエラーが出ているようです。
これを動くようにするにはどうしたらいいんでしょう。
作成に使ったのは Windows 用の Dana というテキストエディタなのですが、
バイナリエディタで先頭3文字削除しても、
また Dana で編集するとその3文字がくっつくし…。
つか、CGI を UTF-8 に改造するってページ検索したけど、
こんな問題どこにもなかったし。秀丸とかだといいのかなあ。
…長文スマソ。入り口以前のところでつっかかってて泣きそうです。
0328nobodyさん
02/03/12 15:13ID:???utf8に対応しているのはperl5.6以降です。新しいperlを入れましょう。
それとutf8プラグマ使った方が良いでしょう。use utf8;
Perlのユニコードの対応は万全とはいえないので、・・・(以下略)
0329nobodyさん
02/03/12 15:58ID:???アドバイスありがとうございます。
たしかにWin用のActive Perl(5.6.1)では動きました。
そこで、perl5.6 が入っている biglobe にアップして
実験してみたのですが、500エラーになります。
さっきとは違うエラー内容なのですが、やはり
#!/usr/bin/perlの行でひっかかってます。
エラーログには utf8.cgi: Exec format error としかないのですが、
まったく同じ内容のスクリプトを SJIS で保存してうpすると
こっちは問題なくうごきます。
ちなみに、テストスクリプトは
#!/usr/local/bin/perl
print <<__EOD__
Content-type: text/html;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;">
<title>UTF-8 で出力するCGI のテスト</title>
</head><body>
<h1>UTF-8 マンセー( ´∀`)</h1>
</body></html>
__EOD__
こんな感じです。
0331nobodyさん
02/03/12 16:04ID:???0332nobodyさん
02/03/12 16:39ID:???げ!
まあ、2行目のprint 以下になんもないので、見逃してください。
>>331
telnet でシェルに入って実行した時のエラー
>./utf8.cgi
./utf8.cgi: 鏤殖!/usr/local/bin/perl: not found
use: not found
: not found
print: not found
>
( ゚д゚)…ミンナハドウヤッテクリアシテルノカワカラナイヨ
あきらめて SJIS で HTML4.01 Strict な CGI にします・゚・(つД`)・゚・。
0333327=329=332
02/03/12 16:43ID:???0334nobodyさん
02/03/12 17:00ID:???#!/usr/local/bin/perl
↑これはあっているの?
#!/usr/local/bin/perl5 とかだったりしない?
0335332
02/03/12 17:14ID:???同じソースをSJISでうpすると動くんですぅ。
SJIS で動作している CGI をそっくりそのまま UTF-8 に変換して
エラーが出てるんです。
UTF-8 に変換したのがローカルで perl utf8.cgi で動いてるのも確認してるし、
use utf8; もいれたし、
FFFTP でアスキー送信のボタンがへっこんでるの確認して送信してるし、
うpされたファイルのバイト数が減ってる(CRの分)確認してるし。
他にどこを確認したらいいでしょうか。
0336nobodyさん
02/03/12 17:49ID:???0337nobodyさん
02/03/12 17:53ID:???>作成に使ったのは Windows 用の Dana というテキストエディタなのですが、
>バイナリエディタで先頭3文字削除しても、
>また Dana で編集するとその3文字がくっつくし…。
これが原因でperlのパスがおかしくなってると思う。
>>332のエラーは実行するプログラムが見つからないってことでしょ。
普通のテキストエディタ使おうよ。
0338332
02/03/12 17:53ID:???utf8.cgi を
#!/usr/local/bin/perl
use utf8;
require "utf8.pl";
にして、ascii で保存。
utf8.pl を
print <<__EOD__;
Content-type: text/html;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;">
<title>UTF-8 で出力するCGI のテスト</title>
</head><body>
<h1>UTF-8 マンセー( ´∀`)</h1>
</body>
</html>
__EOD__
1;
にして、UTF-8 で保存。サーバーにうpして動きました。
よその人がどうやってるのかわからんけど、
今後はこの方法で作成します。みなさんありがとう。
0339332
02/03/12 17:55ID:???普通のテキストエディタってどんなのかわからないんですが、
xyzzy も terapad も同じように先頭3文字くっつきやがりました。
疲れました。
0340nobodyさん
02/03/12 18:18ID:???秀丸はEF,BB,BF=BOM(Byte Order Mark)付いてないみたい。
ほとんど秀丸しか使ってないからそういうものだと思いこんでしまった。ゴメン。
EmEditorは付けるか付けないか選べた。notepadは付いてた。
とにかく#!をシェルに読ませないことには動かないでしょう。BOMは邪魔だね。
0341nobodyさん
02/03/12 18:32ID:???xyzzyだとM-x change-fileio-encodingでutf8nするとはじめの3バイトつかないよ。
utf8だと付く。
ってことでがんばれー。
0342nobodyさん
02/03/12 18:36ID:ip/rxryKuse File::Basename; で宣言してbasenameを使いたいんだけどうまくいかないです。
$filename = 'C:\tmp\mona.jpg';
$basename = basename($filename,"");
だけど$basenameには全く処理のされないまま$filenameと同じモノが…
何が悪いのかな?
0343339
02/03/12 18:36ID:???なるほど。先頭につけないエディタもあるんですね。
xyzzy に utf8 と utf8n と2つあるのはそういう意味だったんですか。
とりあえず、メインエディタを Dana から xyzzy に移行することにします。
ありがとう。
0344nobodyさん
02/03/12 18:45ID:???こんなんでどう?
use File::Basename;
fileparse_set_fstype(MSDOS);
$filename = 'C:\tmp\mona.jpg';
$basename = basename($filename,"");
print $basename;
0345342
02/03/12 18:55ID:???fileparse_set_fstype(MSDOS); ってのが多分ミソなんでしょーけど
これを自動判定させる方法って無いもんでしょうか?
敵はUNIXもMacも想定せなアカンので…
0346nobodyさん
02/03/12 19:08ID:???0347nobodyさん
02/03/12 19:15ID:YNqS+HR0って、タイムアウトを設定できますか?
0349nobodyさん
02/03/12 19:26ID:YNqS+HR00350ぼくフェロー
02/03/12 19:54ID:/5Jn0bAAある変数 $a に入っている文字列が数値を表すか否か
判断するにはいかなる手段がありますでしょうか?
たとえば,次のように判別したいのですが.
$a = 100 ==> 数値
$a = -1.0 ==> 数値
$a = 1e-100 ==> 数値
$a = 'abc' ==> 数値ではない.
0351342
02/03/12 19:58ID:???$FORM = new CGI;
$filename = $FORM->param('img');
fileparse_set_fstype(MSDOS) if $^O eq 'MSWin32';
if ($filename) {
だらだら処理
}
反応してくれないよ…
0352346
02/03/12 20:38ID:???「敵はUNIXもMacも〜」って、CGIを動かすブラウザがUNIXかMacかわからんってこと?
UNIXかMacかわからないサーバで動かせるスクリプトを組もうとしているのかと。
$basename =~ ($filename =~ /[\/\\:]([^\/\\:]+)$/)[0];
でいい?
\とか:とか/が入ってるファイル名は上手く取れないが、一応Win/unix/Mac対応。
0353346
02/03/12 20:39ID:???○ $basename = ($filename =~ /[\/\\:]([^\/\\:]+)$/)[0];
スマソ。
0354nobodyさん
02/03/12 23:18ID:???0355nobodyさん
02/03/12 23:20ID:???とかってスレッド立ててください!
0356nobodyさん
02/03/12 23:52ID:OrWEi2X1と同じように同一ページに持っていきたいです。識者の方、教えてください。
http://uho.s7.xrea.com/cgi-bin/yy2ch/
0357識者
02/03/12 23:55ID:???0358nobodyさん
02/03/12 23:55ID:???新着スレ表示するところで<BR>を書かない。
ページにフォームを書き出す。
0359名無しさん
02/03/13 00:48ID:???・・・というのはここで相談してOK?
0360nobodyさん
02/03/13 01:37ID:???0362nobodyさん
02/03/13 06:41ID:P3iVCwDD0363nobodyさん
02/03/13 06:44ID:???0364nobodyさん
02/03/13 22:30ID:0MaZQ+xJ0365nobodyさん
02/03/13 22:35ID:12II/YOS0366nobodyさん
02/03/13 22:41ID:???↑このスレッドで聞いた方がいいのでは?
Perl,CGIってなってるから、Perl限定じゃないでしょ。
0367nobodyさん
02/03/13 22:43ID:???月宮あゆのPerl教室 Part.4
http://pc.2ch.net/test/read.cgi/php/1014096840/l50
君と同じ質問してた人がいる。
後、いい答えも出てる。
0368nobodyさん
02/03/13 22:53ID:12II/YOS助かりました、どうもです!
0369nobodyさん
02/03/14 11:58ID:zKtt7BTbたとえばVC++でCGI作って、特定のIPとデータ交換するとか。
ボケボケの質問でスマソ。
0370nobodyさん
02/03/14 12:34ID:???なんでVC++?
普通にperlで組んでクライアント側にHTTP処理するコード書けば良いだけでは?
0371369
02/03/14 13:24ID:jSrpksxZユーザの要求なもんでどうにも・・・。
あと、サーバーごと納めるんで、コードとか見せられないんですよ。
0372nobodyさん
02/03/14 13:33ID:???もちろん出来ますが、CGIでやる意味が分かりません。
クライアントの要求が来てから、データ交換にいそしんで、
長い間応答しないのは問題があると思います。
なぜデータ交換をCGIでやらないといけないの?
0373369
02/03/14 15:07ID:OQoEp2Bkデータ量そのものはたいしたものではないのですが、
とある機器(WEBサーバーLAN内にある)を、インターネット経由で
ブラウサから制御しようとしているんです。
その辺の知識がまだ乏しいので、今のところCGIでできるかな?
と思っているのです。もっといい方法があるのでしょうが
今の私には思いつきません(あせ
0374nobodyさん
02/03/14 18:47ID:???それ、トロイの木馬という気がしてきた・・・。
セキュリティホールになる可能性大ですぞ。
外部の馬の骨−CGI(80番はファイアウォールで許可)−内部からしかアクセス出来ない機器
0375perlでgzipされたhtmlファイルの作成
02/03/14 20:06ID:gUGqkp2Cgzipで圧縮した、htmlファイルを作成する方法を教えてください。
0377nobodyさん
02/03/14 23:41ID:yfgde3s4ドキッ!!
ちょっとまだ良く理解できてないですが、なんかまずそう?!
そういう構成のシステムそのものに問題があると言うことですか?
0378nobodyさん
02/03/14 23:50ID:???例を挙げると、ブラウザから打ち込んだコマンドを実行し、結果を返すだけのCGIがある。
CGIはサーバサイドで動くので、CGIの実行権限の範囲でCGIの使用者は何でも出来ることになる。
(CGI設置者であったりnobodyであったり。)
そのCGIに認証が必要ないとすれば、誰でも使えるシェルが公開されているに等しい。
ファイアウォールでいくら外部からのアクセスを拒否したとしても、そんなCGIがあれば
簡単に外部からの侵入を許すことになる。
いくら対外的なセキュリティを強化しても、外部の人間の言いなりになる産業スパイが自社にいてはまったく意味がない。
みたいな。
0379nobodyさん
02/03/15 00:28ID:jooXMX1Oわかるようなわからないような。うう・・・。
認証と言うことは、たとえばパスワードのようなもので
ログインみたいなことをさせるとか、同時にそのCGIを使えるのは
一人のみに制限するとか(できるのかしら?(あせ))
CGIの持っている機能そのものは、当然コードに埋め込まれているものだけですが、
その存在だけで、第3者がサーバーに侵入できてしまうと理解して良いんですよね。
インターネット経由での遠隔操作でそういう制御をやってる人って
どうやって実現しているんだろう。
インターネットは使わないほうが良いって事なのかしら?
ふ〜、この世界って奥が深いのですね。どーしよ。
0380名無し ◆Rr5/ytdE
02/03/15 00:36ID:YznOuxlhこのBBSをhttp://netfirms.com/の
無料鯖に置くにはどうしたらいいですか?
cgi-binに画像ファイルが置けないのでこれでファイルをアップしても
保存できないのです。他の場合でもどう対処したらよいでしょうか?
お願いします。
0381名無し#
02/03/15 01:37ID:???0382nobodyさん
02/03/15 07:16ID:???ミミ彡ミミミ彡彡ミミミミ
,,彡彡彡ミミミ彡彡彡彡彡彡
ミミ彡彡゙゙゙゙゙""""""""ヾ彡彡彡
ミミ彡゙ ミミ彡彡
ミミ彡゙ _ _ ミミミ彡
ミミ彡 '´ ̄ヽ '´ ̄` ,|ミミ彡
ミミ彡  ゚̄ ̄' 〈 ゚̄ ̄ .|ミミ彡
彡| | |ミ彡
彡| ´-し`) /|ミ|ミ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ゞ| 、,! |ソ < そんなに急ぐなよ道は長い
ヽ '´ ̄ ̄ ̄`ノ / \________
,.|\、 ' /|、
 ̄ ̄| `\.`──'´/ | ̄ ̄`
\ ~\,,/~ /
\/▽\/
0383perlでgzipされたhtmlファイルの作成
02/03/15 11:26ID:2gjP1S/1gzipが/bin/gzipにあります。
CGIでページをgzip化して表示できるので、このデータをそのままHTMLに書き出せたらと思ったのですが。
0384nobodyさん
02/03/15 11:30ID:???cgi-binに画像が置けないのなら別のディレクトリに置けばいいだけの話。
初期設定で画像のおき場所をフルパスで指定すれば良し。
ex:$datafileurl = 'http;//www.2ch.net/imgdir/';
リンク先を見てないのでうまくいかないかも。
トリップ機能を搭載したいと思っています。
過去ログを見たけどわかりませんでした。
>>4-5にある「スクリプト改造工房」はdat逝きでした…
できれば、2ちゃんと同じトリップが使えたらいいなと思っています。
当方スキルは、一応Perlを初心者向けリファレンス本を読んでいる程度です。
トリップを搭載したいのは、プチ★ボード(petit.cgi)です。
どなたか、コレを実現された方、もしくは実現方法をご存じの方、
教えて下さい。よろしくお願いします。
KENT-WEBさんのサイト
ttp://www.kent-web.com/
プチ★ボード配布コーナー
ttp://www.kent-web.com/bbs/petit.html
0386nobodyさん
02/03/15 12:54ID:???書き込み処理のちょっと前くらいに入れておくべし。
あと、スレ違い。
http://pc.2ch.net/test/read.cgi/php/1012839651/
スレ違い申し訳ありませんでした。
ありがとうございました。
こんな感じに実装させて頂きました。
#トリップ機能
if ($in{'name'} =~/◆/){
$in{'name'} =~ s/◆/◇/g;
}
if ($in{'name'} =~/#/){
$in{'name'}=~ s/\x23(.+)$/ "◆".substr(crypt($1, substr($1, 1)), -8)/e;
}
0388nobodyさん
02/03/15 14:11ID:???騙されてるって・・・
↓こうしなさい。
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
sub trip {
my $key = shift;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x20\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
0389nobodyさん
02/03/15 15:11ID:???エ━━(゚Д゚lll;)━━ッ!?
騙されてたんですか?
petit.cgiじゃないんですけど、
一応動いてるみたいなんですけど…
http://www.pweb.ne.jp/~fpm2/wtalk/
(ほのぼの板用チャット)
あっ、でも元のキーに「~=」とかが含まれてると
動作しませんでした。
0394nobodyさん
02/03/15 15:31ID:???>何故わざわざ"\x23"?"#"じゃダメな理由でもあるの?
そのほうがかっこいいから。
それと>>387みたくtr演算子を使う時に#じゃ困る。
>>388ので設置してみました。m(_ _)m
#aa~=aa
見たいなトリップはやっぱり認識されないですね…
試しに、「#aa~=aa」でここに書き込んでみます。
むこうでは、◆4tC6xcI.になってしまいました。
それ以外のトリップは全て大丈夫でした!(´-`♪
0399nobodyさん
02/03/15 15:58ID:???「#aa~=aa」でも問題なく◆4tC6xcI.になったが・・・
基本的にどんな文字でもOKなはず。日本語でも、制御文字でも。
#$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
コメントアウトして、入力がおかしくないか確認したら?
0400399
02/03/15 16:00ID:???0401テスト ◆NAOKmK0E
02/03/15 16:04ID:???レスありがとうございます。◆AnfivKvE です。
試してみましたので報告致します。 m(_ _)m
コメントアウトしてテスト#c+~=y:Arという名前で入ってみました。
結果→テスト#c+~=y:Ar
元に戻してテスト#c+~=y:Arで入室
結果→テスト◆SLjREV3g
2ちゃんねるで、テスト#c+~=y:Arで発言
結果↑
トリップと名前は全てコピペしました。
0402388
02/03/15 16:50ID:???これでどうかな。
sub trip {
my $key = shift;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x21\x23-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
0403テスト ◆NAOKmK0E
02/03/15 17:05ID:???トライしました!完璧でした!
テスト#c+~=y:Ar → テスト◆NAOKmK0E
ありがとうございます! ヽ(`Д´)ノ ウワァァン
コレから先に見る方が居るかもしれないので、
成功したヤツを書いておきます!
本当にありがとうございました!
ここからソース
書き込み処理直前、cookie発行後。
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
ここから、トリップ作成サブルーチン
#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x21\x23-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
いやいやいやいや
お陰様で設置できました
本当にありがとうございました
m(_ _)m
マジですか・・・?ちょっと試してみます。
0408388
02/03/15 18:45ID:???本格的に鬱だ・・・
?? ̄∇ ̄??
0411388
02/03/15 18:46ID:???0412388
02/03/15 19:00ID:???sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
早速やってみます!
0414386
02/03/15 19:12ID:???>>388ごめん、騙したつもりはなかったんだけど。
確かにsubstrの使い方とかよく覚えてなかったし、テストもしてないけどさ。
ところで、s/&/&/g; もしたほうがいいんでは?
#"aaaa
2ちゃんねる→◆TVWmrXp6
Perlスクリプト→◆TVWmrXp6
#<aaaa
2ちゃんねる→◆DdwRIQ4Q
Perlスクリプト→◆DdwRIQ4Q
#>aaaa
2ちゃんねる→◆nxB5V1NE
Perlスクリプト→◆nxB5V1NE
今度こそ完璧です!できました!
他の普通のトリップも全部変換できました!
ありがとうございました!
他に見る方が居るかもしれないので、>>413に
ソースを書いておきます!
お世話になりました。m(_ _)m
書き込み処理直前、クッキー発行後
<ここから>
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
</ここまで>
#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
$key =~ s/&/&/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
#&aaaa
$key =~ s/&/&/g;
2ちゃんねる → ◆QQXkbDVs
Perlスクリプト → ◆JwJPq806
#$key =~ s/&/&/g;
2ちゃんねる → ◆QQXkbDVs
Perlスクリプト → ◆QQXkbDVs
>>417
つーかここにちゃんと表示されてないですねw
いやぁ… (´ー`ゞ
というわけで書き直します。
トリップ生成ルーチン
書き込み処理直前、クッキー発行後
<ここから>
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
</ここまで>
#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
YY-BBSにこのトリップ機能をつけるにはどこにこのコードを
付け足せばいいんでしょうか?
### --- ログ書き込み処理 --- ###
sub regist {
|
略
|
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
}
### --- トリップ生成ルーチン --- ###
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
こんな感じにしてみたんですが書き込みのときに名前を「名無しさん#aaaa」
でやったんですがそのまま「名無しさん#aaaa」と表示されてしまいます・・
どこを直せばいいんでしょうか?
機能、スレ違いを指摘されたので続きは
スクリプト改造工房
http://pc.2ch.net/test/read.cgi/php/1012839651/
でやりましょうか♪
俺に出来ることなら手伝いますんで。
ありがとございます。では移動します。
0426nobodyさん
02/03/16 19:29ID:SKQhp2KRCGIのスクリプトを書くにあたって、
処理ごとにファイルを分けるのと、ひとつのファイルにすべての
処理をさせてしまうのとどちらがどう違うのでしょうか。
それぞれ利点欠点などはあるのですか?
0428QQQQQQQ
02/03/16 22:36ID:???このHTMLファイルはログの増加にあたり移動したりするので、
ブラウザのアドレスバーにこのURLを表示したくありません。
かといって全行perlに読まして書くのは処理が重くていやなのです。
location: を使ってみましたがURLがかわってしまいました。
どうかご教授ください。
0429親切な人
02/03/16 22:40ID:???ヤフーオークションで、凄い人気商品、発見!!!
「高性能ビデオスタビライザー」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA
ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
0432nobodyさん
02/03/17 00:22ID:???もしかしてこれで処理が重くなるほどすごいhtmlなの?
open F, "go_this_page.html";
while (<F>){ print; }
close F;
0433QQQQQQQ
02/03/17 00:41ID:???>>430
シンボリックリンクはHTMLファイルにするのでしょうか。理解できませんでした?
>>431
フレームは確かにできそうですね。ありがとうございます。でもフレーム未使用の方法はないのかに。
>>432
別に1件1件はたいして重くないですが、それでもHTMLに飛ばすよりはだいぶ重いように思います。
0434nobodyさん
02/03/17 01:31ID:4IUULEh/ルート直下の/cgi-binでCGIを動かそうと思っているんですが、
その際CGI動作確認とかFTP転送とかするためにCGIのアカ
ウントを作成するのがいいかなあと思うんですが、みなさんは
どうしていますか?
0435nobodyさん
02/03/17 07:57ID:???板違い
http://pc.2ch.net/linux/
0436nobodyさん
02/03/17 07:58ID:???http://pc.2ch.net/test/read.cgi/linux/1014651391/
0437nobodyさん
02/03/17 09:32ID:???向こういってみます
0438nobodyさん
02/03/17 16:02ID:???1.サーバの負荷をおさえつつ送信するなんかイイアイデア。
2.途中で逝っちゃった場合の状況の知り方と対処。
なんつーのが知りたいっす。Webで検索かけまくったけどコレって
いうのがナイと思う。
0439nobodyさん
02/03/17 16:32ID:???0442nobodyさん
02/03/17 17:18ID:???物は言いようって何かひかかるが、ようはスパムかなんかのCGI作ろう
とかしてんだろって言いたいのかな? そんな事はしてないが・・・。
ま、それはそれとして、例えば 5 件 send したらちょっと休むとか、キュー
を介すのとそうじゃないのでどうなのかとか、そういう事が聞きたいんだけ
ど、CGIの範疇じゃない? 今のところ、ループでぐるぐる回して送信してい
るだけなんでサーバの負荷の大きいのかなあと思った次第。
板違いならスマソ。。。
0443nobodyさん
02/03/17 20:50ID:???my $salt = substr("${key}H.", 1, 2);
ってどういう意味(ここ ${key}H.)
あと
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
って何を何に?
0444nobodyさん
02/03/17 20:52ID:???0445nobodyさん
02/03/17 21:12ID:???perldoc -f tr
perldoc perlop
>444
perldoc Benchmark
0446nobodyさん
02/03/18 02:50ID:e/HSAhdE組み込むとエラーが出ます。SSIのincludeでアクセスカウンタcgiを呼び出して使って
たんですが。通常のページとフレームを使ったページ内に入れるのとでは何が違うの
でしょうか?
0447nobodyさん
02/03/18 03:07ID:???答え飽きました≒過去ログ読めやがれ
0449446
02/03/18 03:23ID:e/HSAhdEフレーム アクセスカウンタで2ch発言検索はしたけどHITしなかったんだよ〜
0450nobodyさん
02/03/18 08:26ID:???____ l
\ ―┼―ヽ \
| ――――― / | ゝ
_/ / |
/ _」
l / || ヽ ―┼― l
ヽ ┌―┐ ―┼― ┌―――┐ / ̄ ̄ ̄7| | ―― ―┴― _|__/
_ .| ┌┤ ――┼―― | | | ― 「 ̄ ̄ ̄ ̄| / | / ̄\
| | ̄ ̄ ̄| / | | / ― | | / |/ |
人| □ 」 / \ | | / ┌‐┐ | | | /| /
ノ ヽ―――  ̄ ̄ ̄ ̄ヽ ├―――┤ / ├‐┤ ノ |_」 ヽ/ ヽ _/
_____ ────
| __ ┌───┐
| ┌┐ ─┼ ├───┘
./ └┘ | / ─┼─
/ l / ヽ | ノ /─┐
/ ── 」 / 」
| || /
| ̄ ̄ ̄ ̄ ̄| ||____|_ /
| | /| / ̄ ̄ ̄ ̄| ̄ ̄
| / | |
/ / .| |
/ _| /
 ̄ ̄ ̄ ___/
0451nobodyさん
02/03/18 08:50ID:???0452nobodyさん
02/03/18 08:53ID:???0454nobodyさん
02/03/18 09:09ID:???0455nobodyさん
02/03/18 22:00ID:???0457nobodyさん
02/03/19 00:32ID:???もともとperlとPHPが似ているので、
使用状況に応じて簡単に変換できたらよさそうじゃんか。
0459nobodyさん
02/03/19 03:54ID:rsFIfwz6ローカルでは動作するのにサーバーに転送すると必ずInternal Server Errorになります。
エラーログを見てみるとPremature end of script headers:だけ書かれていました。
またエラー箇所を探したのですが、起動のたびにエラーになるlineが移動して1箇所には定まりません。
これはメモリ不足によるプロセスの強制終了の可能性と考えたほうがいいのでしょうか?
よろしくお願いしたします。
0460nobodyさん
02/03/19 04:39ID:???0461nobodyさん
02/03/19 05:19ID:???headerが出力されてません。ってエラーなわけで、
ローカルでは動いてるということは…
スクリプトで使ってるモジュールがサーバには無い、とか予想してみる。
0463じゃ代弁しとくよ
02/03/19 09:48ID:???0464nobodyさん
02/03/19 10:20ID:???でも正直なところはいいね。
ガキ流れは、
「php使えばいいだろ」のあたりからなってしまいました。オレもガキじゃん。
0465459
02/03/19 12:54ID:mcTfQ2cdありがとうございます。
特にモジュールは使用していません。ごく基本的な関数のみで作ってあります。
何より不可思議なのは、どこの時点でエラーになるのかがCGIを動かす度に
変わるということです。例えば...
ループA{
ループB{
サブルーチン
}
}
となっていて、
1回目はループAの47回目、ループBの71回目ではエラーがすでに発生
2回目はループAの47回目、ループBの70回目ではエラーがすでに発生
3回目はループAを37回目、ループBを69回目ではエラーはなし
4回目はループAを37回目、ループBを70回目ではエラーはなし
5回目はループAを37回目、ループBを71回目ではエラーはなし
という具合に、いつまで経ってもエラー箇所が一箇所に定まらないのです。
ただループAが37回目のどこかで発生するのは確かなんですけど。
0466nobodyさん
02/03/19 13:08ID:???ソース見せれ。
0467
02/03/19 14:31ID:ZgA62M2Hクッキー読むスクリプトはみつかるのですが
保存するところがみつかりません、もしかしてCGIのほうでやってるんでしょうか?
0468nobodyさん
02/03/19 15:02ID:???0470459
02/03/19 19:30ID:LM+0/bSKサーバー会社へ出していた同様の質問の回答がやっと帰ってきました。
------------------------------------------------------------
確認いたしましたところ、お客様がご利用のCGIは XXX共有サーバーの
CPU Time の制限にかかり、サーバーエラーとなっていました。
XXX共有サーバー は、共用のサーバーですので、高負荷状態に
陥ることを防ぐためにこちらの制限を行っております。
-------------------------------------------------------
ということでした。すみません、解決しました。
またよろしくお願いします!
0471123
02/03/19 21:45ID:???0472nobodyさん
02/03/19 21:49ID:???俺は「使っているのを見て知った」んで、どうやってLocationを知ったのか謎だ。
後学のために教えてくれ。
ところでGoogleって知ってるか?
0473nobodyさん
02/03/19 22:04ID:???0474nobodyさん
02/03/20 23:54ID:Hs1uL44x付けた時のようにページを転送することは可能ですか?
0475nobodyさん
02/03/20 23:56ID:Hs1uL44xprint "<a href=\"http://hogehoge.nu\" target=\"_top\">転送</a>";
とかではなくてLocationで飛ばすような感じです。
0476nobodyさん
02/03/21 05:04ID:???CGIは基本的にブラウザの挙動をいじれないので,不可能と思われ。
フォームでターゲット指定したり,JavaScript系を使ったりすれば可能。
0477nobodyさん
02/03/21 06:52ID:???普通は
<form action="hoge.cgi "target="_top">
のようにCGIを呼び出してLocationで飛ばすけど、
それじゃ不満かい?
0478nobodyさん
02/03/21 08:45ID:???0479nobodyさん
02/03/21 09:09ID:???0481nobodyさん
02/03/21 15:27ID:SSRvR1vK&jcode'convert(*value,'sjis');
↑部分を取り除くと使用できるようになるのはわかるんですが、
EUCなどの対策になにかいい方法はないでしょうか?
0482nobodyさん
02/03/21 15:27ID:SSRvR1vKKENT×
KENT氏○
0483nobodyさん
02/03/21 15:35ID:???(( ( ) ) )
( ( ( ) ) )
’ (( ) ) )
( (( | | ) )
‘ (( | | ) ) ‘
’ | | 春ですね。
○イザベラ! | | ’ ξ○ξ スミス・・・
−+− | | V ,
| | | |
/\ / \ /\
0484hanamogera
02/03/21 15:37ID:c8Atj9bt何ででしょうか?
sub decode {
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", "", "z");
$value =~ s/&/&\;/g;
$value =~ s/</\<\;/g;
$value =~ s/>/\>\;/g;
$value =~ s/\"/\"\;/g;
$value =~ s/<>/\<\;\>\;/g;
$value =~ s/<!--(.|\n)*-->//g;
$FORM{$name} = $value;
}
$name = $FORM{'name'};
$title = $FORM{'title'};
$comment = $FORM{'comment'};
$comment = ~ s/\r\n|\r|\n/$br/g;
$mode = $FORM{'mode'};
}
0485nobodyさん
02/03/21 15:38ID:???大崎さんのやりかたを参考にして,きっちり判定するとか。
http://www.din.or.jp/~ohzaki/perl.htm#JP_Code
0487nobodyさん
02/03/21 21:53ID:zzUVZQ93アクセスカウンタが20いくごとに起動、とかの方法はわかるんですが、
一定の時間ごとに起動させるというのは何を使えば良いでしょうか?
0489nobodyおっさん
02/03/21 22:11ID:???あなたが一定時間ごとにアクセスしてこのときに実行させるか
あなたならどっち?
0490nobodyさん
02/03/21 22:12ID:???0491nobodyさん
02/03/21 23:01ID:rmv2GYdPある一定の時間を指定して、CGIの呼び出しがあったときにチェックして、
その時間が過ぎていたら処理を行い、次に処理する時間もそのときに指定する
チェックルーチンを入れれば、cron使えなくても擬似的に出来るよ。
0492487です
02/03/21 23:39ID:zzUVZQ93ありがとうございます。cronですね、使えるかなぁ・・・
491さんの方法もよさげだけどやり方わかんないす。
0493nobodyさん
02/03/22 00:01ID:???これは止めておいた方がいいぞ。
while(1){
# ここにコード
sleep(60*60);
}
0494nobodyさん
02/03/22 00:14ID:p0uEX1fS年月日時分秒をシリアルな数値で獲得できるだろ?
処理後にあれを一日だったら1日分足して置けばいいんだよ。
いろいろやり方ありそうだよな。ほかにも。
どっちにしてもそんなに難しい処理じゃないと思うよ。
一日単位だったら、単純に日にちがカワったら処理をして、新しい日にちに
書き換えたらいいんだし。
0495487です
02/03/22 01:24ID:esA90bh2アクセスカウントUP時に何回かに1度の割合で実行させる、という方法以外に
実行させる方法あるのですかね?
>493の方法は常にpgを動かしておきsleepが切れたときに本実行させる
ものだと思いますが止めたほうが良いとのこと。
>494のようにどっかに日時を持っておくとして、それを起動させる方法はどんなのですか?
0496nobodyさん
02/03/22 01:46ID:???0499厨房
02/03/22 15:53ID:3P7KS9SJhttp://zurubon.strange-x.com/uploader/
を色々見てみたんですけど、CG�Tが初めてなので
全く分かりません。
何かヒントまたは代わりに作って下さる方いらっしゃらないでしょうか?
0500500
02/03/22 16:06ID:???CGIが初めての奴に対しての"ヒント"ってなんになると思う?
数行のスクリプトならまだしらまだしも
アップローダーを作れか?あほ。
0501nobodyさん
02/03/22 16:08ID:???まだしも○
スマソ
0502499
02/03/22 16:20ID:3P7KS9SJ0503nobodyさん
02/03/22 16:35ID:???print <<"__FORM__";
Content-type: text/html
<FORM ACTION="$ENV{SCRIPT_NAME}" ENCTYPE="multipart/form-data" METHOD=POST>
<INPUT TYPE="FILE" NAME="file">
</FORM>
__FORM__
print <STDIN>;
ブラウザが送るデータを観察してデコードする方法でも考えればぁ?(゚Д゚)
0504nobodyさん
02/03/22 17:01ID:KCkKfXvIメールフォームでメールを送ろうとしたのですが送信ボタンを押して待てど暮らせど
出るはずの確認画面が出ません。
これは送信されてないものと考えていいのでしょうか。
重複送信になるのが怖くて再送信することができずにいます。
0505nobodyさん
02/03/22 17:02ID:qjFFNAMI0506504
02/03/22 17:50ID:???っていうか再送信して大丈夫か否かってのが訊きたいんですけどダメですか?
直接相手に問い合わせしようにも他の連絡手段が無いんですよね
(イベントの特設ページみたいなサイトだし)
0507nobodyさん
02/03/22 18:53ID:fazmqrAM( ´_ゝ`)フーン
0508nobodyさん
02/03/22 21:43ID:tj2D5lJW0510nobodyさん
02/03/23 00:43ID:???息抜きにコンビニのラーメンでもいかがでしょうか
http://wakaz.lolipop.jp/index.html
0511nobodyさん
02/03/23 02:39ID:???0512nobodyさん
02/03/24 02:20ID:Gb9vu2Wcかつ管理者モードが複数ページに渡る場合、
最初のページで一度認証済ませれば次のページへは認証なしで入れる、
というようにするにはどうすればいいですか?
最初の認証でパスワードをpost送信させると2ページ目では取得できないし、
どこかにフラグを立てて置くと、ログアウトさせないとフラグが残ってしまうし、
HTTP_REFEREを調べるとしても、どうしても不正にアクセスできてしまいます。
やり方が悪いのでしょうが、うまい方法が思いつきません。
普通はどういう方法で認証しますか?
0514512
02/03/24 02:29ID:Gb9vu2Wcなんだか、見慣れない手法で、ちょっと混乱。考え中。
とりあえず、ありがとうございます。
0516512
02/03/24 02:49ID:Gb9vu2Wcすみません。もうちょこっとヒントいただけませんか?
>>515
反則です(笑)。今のところ動作環境がBASIC認証とやらを使えるかどうか
わからないのです。ちなみにBasic認証を使うとどの時点まで
アクセスの権限が持続するんでしょう?後学のために..。
0518512
02/03/24 03:15ID:Gb9vu2Wcなるほど!そいつは便利ですね。いづれ使うことになると思います。
ありがとうございます。
>>513
これ、いくら考えても意味がわからないんですが、
誰か解説してもらえませんか?
0519nobodyさん
02/03/24 03:19ID:???0520nobodyさん
02/03/24 03:21ID:KxmQdHuE0521nobodyさん
02/03/24 03:26ID:???・CookieにセッションIDでセッション利用
・Cookieのみ
・HIDDENで持ち歩く
一応安全だと思う順
他にも方法ある?
0522512
02/03/24 03:29ID:Gb9vu2Wcてっきりフォームから変数名を送って巧妙に2ページ目にパスワードを
引き継ぐ方法があるのかと思ってました。
ソース見たらパスワードばれちゃいますけど、普通そんなもんですかね。
basic認証とやらが使えなければ、この方法でやります。
ありがとうございました。
0524nobodyさん
02/03/24 14:09ID:???入力した本人しか見れないんだからいいんじゃないの?
0527よくわからんけど
02/03/24 20:47ID:???0528512
02/03/24 20:47ID:???セキュリティスレ発見したので、そっち読んでます。
0529512
02/03/24 20:48ID:???0530521
02/03/24 21:03ID:???使わないとは思うけどGETしたら見えちゃうし、
万が一その状態でリンクで飛んだ先にアクセス解析ついていたら
パスワードがログに取られてしまう。
0531nobodyさん
02/03/24 21:10ID:???偽装について説明きぼん。
0532512
02/03/24 21:11ID:???GETしたら〜というのはどういう状況ですか?
こちとらPOSTのフォーム書き出してるのにGETしてしまう状況とは?
0533512
02/03/24 21:13ID:???なんらかの手段で不正にパスを知った人が自分でフォーム書いて
ログインできるってことじゃないですかね。それがクッキーより容易ということ?
0534nobodyさん
02/03/24 21:14ID:???>なんらかの手段で不正にパスを知った人が
その時点でセキュリティ終わってる。
0535512
02/03/24 21:19ID:???自己レス、>>530で使わないとは思うけど〜ってありましたね。失礼。
>>534
セキュリティは終わってるけど、521が言ってるのはそういう意味じゃないですかね。
まあ、終わってることは終わってる。
0536nobodyさん
02/03/24 21:25ID:???パスワードがわかった時点で改造フォームを作る必要がないと気付いてくれよ。
堂々と正門からパスワード入力して入っていけばいいんだから。
0537512
02/03/24 21:27ID:???失礼!頭悪くてすみません!
0538nobodyさん
02/03/24 22:31ID:???防ぐ方法ありますよね。たぶん初歩的なことですけど、書いてあるページ教えてちょ。
0539nobodyさん
02/03/24 22:46ID:Gb9vu2Wcこれかなあ。
0543nobodyさん
02/03/24 23:09ID:???print 'http://'.$ENV{'HTTP_HOST'}.$ENV{'SCRIPT_NAME'}."\n\n";
これですか?
0544nobodyさん
02/03/24 23:13ID:???http://pc.2ch.net/test/read.cgi/php/988890976/175-
http://pc.2ch.net/test/read.cgi/php/988890976/175-
0545nobodyさん
02/03/24 23:28ID:???#
sub wri_ {
if ($FORM{'name'} eq "") { &er_("名前が未入力!"); }
if ($FORM{'comment'} eq "") { &er_("コメントが未入力!"); }
if (length($delkey) > 8) { &er_("削除キー は8文字以内!"); }
if ($locks == 1) { &lock_; }
open(LOG,"$log") || &er_("Can't open $log");
@lines = <LOG>;
close(LOG);
if($bup){&backup_;}
($knum,$kd,$kname,$kem,$ksub,$kcom) = split(/<>/,$lines[0]);
if ($name eq $kname && $comment eq $kcom) { &er_("二重投稿は禁止です!"); }
この { &er_("二重投稿は禁止です!"); }ってとこにlocationとやらを入れるんですか?
0546nobodyさん
02/03/24 23:37ID:???違う。
1回目の書き込みが終わった時点で飛ばすの。
0548nobodyさん
02/03/25 00:06ID:???<input type=reset value="リセット"$fm></td></tr></table></form><hr>
_KEY_
}
$total=@NEW;
$page_=int(($total-1)/$a_max);
if ($FORM{'page'} eq '') { $page = 0; }
else { $page = $FORM{'page'}; }
$end_data = @NEW - 1;
$page_end = $page + ($a_max - 1);
if ($page_end >= $end_data) { $page_end = $end_data; }
foreach ($page .. $page_end) {
($namber,$date,$name,$email,$d_may,$comment,$url,$font,$ico,$type) = split(/<>/,$NEW[$_]);
if($email ne ""){ $name="<a href=\"mailto:$email\">$name</a>"; }
if($d_may eq ""){ $d_may="No Title"; }
if($link_i == 1){
if ($url ne "") {
$url="<a href=\"http://$url\" target=\"_top\"><img src=\"$i_dir/$l_img\" border=0 width=\"$h_wid\" height=\"$h_hei\"></a>";
}
} elsif ($link_i == 0){
if($url ne ""){$url="<a href=\"http://$url\" target=\"_top\">http://$url</a>"; }
}
print <<"_HTML_";
この辺ですかね?
0549nobodyさん
02/03/25 00:12ID:???あのさー、中学生?
言葉使いとかなんかおかしくない?
なんでそんなスキルで
この辺ですかね?
とかなの?
あっ気が付いた!だから馬鹿なんだ!
0550nobodyさん
02/03/25 00:13ID:oozWjwB1いったん処理を終了させ、自動的にそのcgiを再実行。
そのためにlocationで自分自身に飛ばす。使い方は検索すれば出てくる。
0553nobodyさん
02/03/25 00:21ID:???,,、‐''"~ ̄  ̄``''‐、、
/ \
/ ヽ
/ ヽ
/ / ~~` '' ‐- 、、 ,,__ __ ,,..、、 -‐ '' "~~\ ヽ
| / __  ̄ __ ヽ |
.| { ´ ‐- ....__ __... -‐ ` } .|
.| 〉,,・^'' - .,, ~ i ~ __,,.- ^`・、.〈 |
./ ̄| /,/~ヽ、 `'' ‐--‐ ,.| 、‐-‐'' "~ _ノ~\,ヽ | ̄ヽ
| (` | / ヽ,,_____`‐-、_、..,,___ノ八ヽ___,,.._-‐_'"´___,, ノ ヽ .|'´) |
| }.| ./' \二二・二../ ヽ / ヽ、二・二二/ 'ヽ | { |
.| //| .| / | |. \ | |ヽヽ|
.| .| | .| / | |. \ | | | .|
|ヽ.| | / .| |. ヽ .| .|./ .|
| .| | / | | ヽ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ .| | / .| | ヽ | | / | >ここでしょうか?
.ヽ.| | / '二〈___〉二` ヽ | |./ < 馬鹿な548がいるのは。
| | `-;-′ | | |
iヽ|. ,,... -‐"`‐"`'‐- 、、 |/i \_________
| ヽ /...---‐‐‐‐‐----.ヽ / .|
| ヽ. ,, -‐ ''"~ ~"'' ‐- 、 / |
.| ヽ ! ./ .|
,,| ヽ. | ./ |、
|\. ヽ / /.|
.|. \. ヽ、____ ___/ / .|
' `  ̄ ̄ ´ '
0554nobodyさん
02/03/25 00:23ID:???口の利き方が悪いな。
0555nobodyさん
02/03/25 00:27ID:???利口になる気のない馬鹿は一生馬鹿だよ。
馬鹿が利口になるためには利口になろうと努力しないといけない。
0557nobodyさん
02/03/25 00:42ID:oozWjwB1そのクッキーファイルを削除してもう一度実行したら書き込めなくなってしまいました。
その間、ちょこっとCGI自体書き換えたんですが、
print "Set-Cookie: ore_site_id=ore; expires=Thu, 1-Jan-2030 00:00:00 GMT;\n";
print "Content-type: text/html\n\n";
こんな感じで書き出してます。perlです。
何が原因だかさっぱりわからないので、ひょっとしたらスレ違い、
板違いになるかも知れないんですが、
何か原因思い当たる方いらっしゃいませんでしょうか。
宜しくお願いします。
0558557
02/03/25 01:12ID:???0559hanamogera
02/03/25 16:29ID:WG0pi2qc↑携帯用の掲示板スクリプト作ったんですが、
ログがある程度たまるとWAP2.0端末からアクセスできなくなるんです・・・
『接続できません。しばらくたってからリトライしてください。』って出るんです。
でも、Apacheのログにはエラーはありません。
WAP2.0端末はXHTMLを読むということだったので、XHTMLで記述してます。
Another HTML-link gatewayでチェックしてみたら、95点でした。
いったい何がおかしいんでしょうか?C5001Tで動作確認してます。
0560nobodyさん
02/03/25 16:47ID:???0561nobodyさん
02/03/25 16:49ID:PUm89G3ucgi-binの中にproc.cgiというファイルを置いて、それをcrontabで動かしたいんですが
ファイル書き込みだけが出来ないみたいです。cgiの中身は
open(SDATA, "<sdata.dat")|| die "File 'sdata' Open Error.";
@a_sdata = <SDATA>;
close(SDATA);
この間で@a_sdataの中身を編集してます。
open(WDATA, ">kdata.dat")|| die "File 'kdata' Open Error.";
print WDATA @a_sdata;
close(WDATA);
print "@a_sdata\n";
こんな感じでファイルを読み込んで、編集して、別ファイルに書き込むというcgiなのですが、
ブラウザにアドレスを打って直接アクセスで起動するとファイルの書き込みは正常に終わり、
編集したデータが表示されます。
ですがcrontabから起動すると、編集したデータはメールになって送られてくるんですが、
ファイルへの書き込みがなされません。データファイルのパーミションは600でしたが
666に変更しても試してみました。cgiのパーミションは700と755で試してみました。
いずれもcrontabからではメールは届くので動いてはいるらしいんですがデータファイルが
更新されないんです。更新日時も変わってないです。
crontabからの起動では何か対策が必要なんでしょうかね?
ちなみにcrontabの記述は*/30 * * * * perl /cgi-bin/proc.cgiです
0562質問野郎
02/03/25 16:49ID:???のですが、フォームCGIに不適切な動きが起きていて、大元のプロバイというか
サーバー屋に問い合わせてもちょっとわからないっていう返事なのですが……。
CMでもやっている有名なところです。
その部分が
<input type="hidden" name="ML_ADDRESS" value="送信先メールアドレス">
<input type="hidden name="Subject" value="Subject(タイトル)">
<input type="hidden name="ML_FROM" value="送り元メールアドレス">
ていうことなのですが、そのサーバー屋さんに問い合わせたところ、
ML_FROMの行のvalueを送り先メールアドレスと同じにしてください。といわれたらしい
んですが(私は間接的に聞いただけ。)
あと、その仕事をうけている企業はそのフォームが自分とこにメールがきたら
それを返信しようとすると、送り先が自分とこになるっていっているのですが
もちろん送り先と送り元のメールアドレスを同じにしたらそういうことが
起きると思うのです。ML_FROMは不特定多数であって
ここは変数か何かになって、CGI側で送り元をGetか何かで取得するもんだと
思っているのですがいかがですか?そのCGIは基本的にさわらせてもらえません。というか
そのサーバー独自のCGIです。よろしくお願いします。
0564nobodyさん
02/03/25 17:31ID:???ttp://tohoho.wakusei.ne.jp/
とりあえずここかな?
>561
メール送信処理の前に書き込み処理を入れて試してみたら?
書き込みの時点で失敗しているならそこでdieされるよな。
そこでメールを送るなら、メールの中にエラーメッセージを入れて確認するとか。
>562
もう少しわかりやすく。
0565562です。
02/03/25 17:57ID:???ある企業からホームページの制作をうけているものです。
その中にフォームメールを使うページがあってメール自体は
動くのですが、メールをうけている企業さんの話によると
その受けたメールを返信しようとすると宛先には
自分のメールアドレスになるんです。
Aさんが[email protected]ていうアドレスでフォームCGIを介して
その企業さんの[email protected]に送ったら
その企業さんはAさんに返信するときに
宛先が[email protected]になるところが、[email protected]になる
ていうことなのです。
この企業がアップしているサーバーの担当者に問い合わせてもわからないとのことです。
(このCGIはサーバーで提供されているCGIです。)
フォームメールCGIのCGIに変数を渡しているかと思われる部分は
渡されたマニュアルとサーバーの担当者の説明によると
<input type="hidden" name="ML_ADDRESS" value="送信先メールアドレス">
<input type="hidden name="Subject" value="Subject(タイトル)">
<input type="hidden name="ML_FROM" value="送り元メールアドレス"> で
ML_ADDRESSの行のvalueとML_FROMの行のvalueを同じにしてください。と
言われているのですが、それでいくと宛先がその企業さんとこになると思います。
ML_ADDRESSの行の送信先メールアドレスはこれでいくとその企業さんのメールアドレスで
検証してもあってるんですが、ML_FROMのvalueの部分はたぶん変数か何かになると思われるのですがいかがでしょう?
とこのような説明でよろしいでしょうか?
間接的に聞いてるというか間にひとつ会社がはさまってて直接ん、その企業さんの話を聞いている
わけでもなくサーバーにアクセスしてもそのCGIは当然見えないわけですが……。
もしかしたらこの説明でもやはりおわかりにならないかもしれません。
よろしくお願いします。
0567562-565です。
02/03/25 18:11ID:fNWLtbGzたぶんML-FROMの部分の行はエラーが起こった時に使うのかなぁ?と思われるのですが…
書き方はあってます。
0568561
02/03/25 18:23ID:PUm89G3uなので最後の行のprint "@a_sdata\n";の内容がそのまま送信されます。
とくにsendmailとかはcgiの中には記述してないんです。
その@a_sdataの内容はちゃんとしてるにもかかわらずファイルの書き込みが
全然されないのはcrontabからの実行の場合だけなんです。
ファイル書き込みじにdieされてるとしたらprintされないと思うんですが
出力結果のメールは届くんです。
CGI直接起動ではうまくいくのにcrontabからだとうまくいかない、というのが
理解できないんです。何か対策方法ないでしょうかね?
0570nobodyさん
02/03/25 19:13ID:???頭を柔らかくしろ。
俺は問題の修正方法を教えてるんじゃなくて、その原因究明の方法をいってるの。
ファイルのオープンが失敗したって、@a_sdataの内容が消えるわけじゃないでしょ?
だったらそれがそのままメールで送られてくる事に不思議はない。
そんな事よりも、メールの内容に$!を入れて何が起こってるかをまず把握しろ、と。
対策方法を考えるにはまず原因究明。
デバッグの基本。
対策方法の結果聞きたいだけなら、ソース公開しな。
0571nobodyさん
02/03/25 19:30ID:???PHPとかいうやつに、彼女取られてたね。
Cくんは、相変わらずさわやかで、もててるけどね。
0572561
02/03/25 19:36ID:PUm89G3uなるほど原因がわからないのに対策とってもその場しのぎでしかないすものね。
いろいろと試してみます。
0574nobodyさん
02/03/25 19:47ID:???0575nobodyさん
02/03/25 19:47ID:???CGIとPerlの違いわかってる?
0576nobodyさん
02/03/25 21:01ID:???彼にとってPHPはCGIじゃないんだよきっと・・・
0580nobodyさん
02/03/25 23:25ID:???200 OK とか,403 Forbidden とかまでも自前で出力するですな。
そこで問題なんスけど,お客様曰く「403 を出力するなら
apache のアクセスログに残るようにして欲しい」とのこと。
ンな事は可能なんでしょうか?
0582nobodyさん
02/03/25 23:40ID:???ここのYYBBS2iってありますよね。
説明が「KENT さん作の各種掲示板と連携のとれる i-mode 用掲示板」って書いてあるんですけど、
連携が取れるってどういう意味でなんでしょうか?ログの共有って意味なんでしょうか?
FAQも掲示板もないんで、サッパリ分かりません。どなたか知ってる方お願いします。
0584nobodyさん
02/03/26 05:29ID:7ingtp1l〜.cgi?value=アクション
と日本語を含めると挙動がおかしくなってしまいます。
ブラウザに直接入力すると上記の例の場合ちゃんと「アクション」と認識してくれるんですが、
CGIで書き出したhtml中のアンカータグからCGIを実行すると、上記の例だと
「ン」が化けてしまいます。
cgi内部もブラウザ表示もすべてEUCでやってるんですが、
何故このようなことが起こるのでしょうか?
それから、一般的な検索エンジンだと検索結果のurlには
エンコードした文字列がくっ付いてますが、このエンコードっていったいいつやってるのでしょう??
いったん検索文字列をCGIで受け取ってエンコードして、locationで飛ばしてるんでしょうか。
わざわざそんなことするのは上記の文字化けと関係あるんでしょうか。
宜しくお願いします。
0585584
02/03/26 05:50ID:7ingtp1lあれはフォームだから僕の状況とは関係ありませんでした。
宜しくお願いします。
0586584
02/03/26 06:01ID:???普通に解説サイトに書いてました。どうもすみません。てか、誰も見てないか..
0587nobodyさん
02/03/26 06:56ID:???open(LOG,"<$logfile");
@log=<LOG>;
close(LOG);
foreach $line (@lines) {
の、
foreach $line (@lines) {はどういう意味なんですか?
配列として読み取った奴を$lineに何をしようとしてるのでしょうか?
0588nobodyさん
02/03/26 07:28ID:7ingtp1lその後には$lineに対する処理が続くはずだけど、
それはつまり@lineの各要素に対して処理をしてることになる。
0589580
02/03/26 07:58ID:???あっ (´ー`) どうもです
ErrorDocument は HTML や CGI が本当に 403 や 404 な場合に
自前の HTML が出力できて便利っすね。
ただ今回は NPH でいわば「嘘の」403 ステータスを出力して
且つ apache のログにも書き出したいということで・・・
むむ,一筋縄ではいかなさそうです・・・
0590オラなんも知らんけど
02/03/26 08:58ID:???0592nobodyさん
02/03/26 09:46ID:z9GSG5oTそのlogをOPENしたときに\nもついてきてる。
OPENのときに\nを抹殺するにはどーすればいい?
0593nobodyさん
02/03/26 10:11ID:???0594580
02/03/26 10:27ID:???>>590
どもです (´ー`)
Apache::Log 見てみたっす。なんか核心に迫ったような気が。
STDERR って CGI の場合はてっきり捨てられてるのかと思ってたけど
なんか apache の error.log に書き込まれるらしいっすね。
ttp://www.tt.rim.or.jp/~canada/comp/cgi/faq/
これが最適解なのかな?
いろいろ試してみます。ありがとうです。
0595nobodyさん
02/03/26 10:33ID:F9zkDX+C0596nobodyさん
02/03/26 10:55ID:???Content-typeを書いて、その後に空行を入れてからLocation書いてたりしない?
0598580
02/03/26 12:52ID:???print "Status: 403\r\n";
print "Content-type: text/html\r\n";
(以下略)
これだけでちゃんと httpd.log にステータスが記載されるですな。
それに STDERR 出力を組み合わせれば error.log にも書き出されるんで最強。
NPH としてステータス吐かなくても良かったんですね。
考えてみれば無茶苦茶基本的なことでした。失礼しましたー。。。
0599000000
02/03/26 13:00ID:???ご存知の方些細な点でもよろしいので教えてください。
よろしくお願いします。
因みにサーバー側の時間は確認済みです。
また、複数のsendmail使用のスクリプトで同じように遅れます。
さらに、PC上で受信した場合、Outlook Expressでは「受信時刻」はちゃんと正確な時間を表しています。
0600nobodyさん
02/03/26 13:12ID:???まー、普通にDateヘッダの部分を書き換えるんだろうが。
0601599さん、ヘッダを見せてくれよ
02/03/26 13:26ID:???0602nobodyさん
02/03/26 13:41ID:???0603<DATA>使わないなら書かなくてもいいよ
02/03/26 13:44ID:???0604ななすぅい
02/03/26 15:10ID:???どうしたらいいの?オシエテ。
0605nobodyさん
02/03/26 15:22ID:???opendir(DIR, $d);
@dir = readdir(DIR);
close(DIR);
foreach (@dir) {
print "$_\n" if -d "$d/$_";
}
0606nobodyさん
02/03/26 15:22ID:???opendirしてreaddirしてその中身からディレクトリだけ表示してclosedir。
0608nobodyさん
02/03/26 15:59ID:???0609ななすぅい
02/03/26 16:44ID:???あとひとつおしえてください。
シンボリックリンクかどうかアレですが、「.」と「..」が入ってしまいます。
これを取り除きたいのですが、どうすればいいの?
0610nobodyさん
02/03/26 16:54ID:???if
0611ななすぅい
02/03/26 17:18ID:???0612ななすぅい
02/03/26 17:25ID:???0614nobodyさん
02/03/27 00:34ID:???HTMLヘッダはsub headというルーチンをつくり
print "Content-type: text/html\n\n";
print <<EOM;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Shift_JIS">
<title>$main_title</title>
</head>
EOM
という中身です。
メイン画面、書き込み画面、エラー画面などHTML出力をするたびにこのヘッダを呼び出しています。
IEでは問題なく閲覧できるのですが、NN4.73がプレーンテキストとして出力を解釈しやがるのです。
すべてプレーンで解釈しやがるならContent-typeの指定ミスなのですが、メイン画面はHTMLとして、エラー画面はテキストとして読みやがります。
兄貴。NNの野郎にHTMLを叩きつけるにはどのような点を修正してスクリプティングすればいいのでしょうか。
0615nobodyさん
02/03/27 00:43ID:???ttp://pc.2ch.net/test/read.cgi/php/1014556702/953-962n
0616nobodyさん
02/03/27 00:49ID:???オマエのその価値のないソースを見ないとなんともいえないダロ!!
さっさとソースを見せろこのボケ!!
0618nobodyさん
02/03/27 03:51ID:???いつもその口調だねー
0619名無しさん
02/03/27 05:40ID:J486qV1r現在、レンタルサーバーにhns-liteを入れようと格闘中。
/root
|
+--/htdocs <--- URI : http://www.****/
|
+--/cgi-bin <--- URI : http://www.****/cgi-bin/
|
+--/diary
|
+--/hns-lite
|
+--/lib
|
hns-lite/index.cgi
を実行するとエラーが出る
Can't locate CGI/QueryString.pm in @INC
(@INC contains: lib /usr/local/lib/perl5/i386-bsdos/5.00403
/usr/local/lib/perl5 /usr/local/lib/perl5/site_perl/i386-bsdos
/usr/local/lib/perl5/site_perl .)
at /usr/local/etc/httpd/vhosts/********/cgi-bin/hns-lite/index.cgi line 31.
つづく・・・
0620619
02/03/27 05:40ID:J486qV1rで、index.cgiのline31付近はこんな感じ
#!/usr/bin/perl
(中略)
use strict;
use lib qw(lib);
use CGI::QueryString; <-- line 31
use DateTime::Format;
use SimpleDB::Scalar;
....
で、肝腎のモジュールは全て
hns-lite/lib
以下に存在しているので、@INCにそれが入っていないと考えられたのだが・・・・
use lib qw(./lib)
use lib qw(./lib ./lib/CGI)
use lib qw(/usr/local/etc/httpd/vhosts/********/cgi-bin/hns-lite/lib/)
と色々変えてみたが変化無く、
push(@INC, )
unshift(@INC, )
もダメだった。
結局
require "./lib/CGI/QueryString.pm";
とするしかなかった。
でもこれだとHNS全体をこうする必要があり不可能。
いったいなにがわるいのでせうか?
0621619
02/03/27 05:44ID:J486qV1rえっと、書きたかったのは、/cgi-bin 以下に diary と hns-lite があって、
hns-lite の中に lib があるということです。
0622736
02/03/27 10:17ID:???CGIスクリプトレベルでのよくわからないのであきらめます。
すいませんでした。
0623nobodyさん
02/03/27 11:24ID:vf3Wej2o0624nobodyさん
02/03/27 12:24ID:W6jS6K5R英語版のサイトを作ろうと思い、もともと日本語版サイトで使っていたプロバイダ
さん提供のアンケートフォーム用CGIをサーバーからもってきて、日本語で
表示が出る部分だけ英語に書き換えました。
(書き換えの時はDreamweaverで。シンプルテキストだと文字化けしたので)
それをftpでアップして、アンケートフォームとリンクさせたところ、正常に
可動しません。
そもそも、もとのCGIをそのまま別名保存してもういちどアップしてもうまくいきません。
CGIは何か特別なソフトで開いたほうがいいのでしょうか・・・。
それともMACの環境だからでしょうか...。
0625nobodyさん
02/03/27 12:26ID:???0626nobodyさん
02/03/27 12:33ID:W6jS6K5RCGIのほうはもとがJcodeだったのでそのままです。
その不一致?
でも、英語アンケートフォームと今までの日本語版CGIを両方
使った場合、送信メールを受け取ることはできたんです。
(ただし送信確認画面で、日本語表記がでちゃう。送信ボタンなども
「送信」とでてしまうので、海外からだと正常に読めない)
0627nobodyさん
02/03/27 12:35ID:GD/Jk18+0628nobodyさん
02/03/27 12:37ID:W6jS6K5R0629nobodyさん
02/03/27 13:56ID:???そりゃテキストエディタじゃねーの?知らんけど。
0630nobodyさん
02/03/27 14:21ID:???という返答で正しいのか?
0631nobodyさん
02/03/27 15:24ID:???0632nobodyさん
02/03/27 15:56ID:DnWVHvAAパターンマッチ使ったほうが良い?
0633nobodyさん
02/03/27 16:00ID:Uk2UqleO年齢別リストを作るコードです。
@list = ( 20,25,24,32,28,20,28,24,20 );
foreach $fld ( @list ) {
$syukei{$fld}++; #年齢をキーとして集計していく
}
print "<table border=1>\n";
print "<tr><th>年齢</th><th>人数</th></tr>\n";
foreach $key (reverse( sort( keys(%syukei) ) ) ) {
$cnt = $syukei{$key};
print "<tr><th>${key}才</th><th>${cnt}人</th></tr>\n";
}
上の3行目、$syukei{$fld}++; は、
$syukei{$fld} = $syukei{$fld} + 1 ですよね。この場合、
右辺の$syukei{$fld}には何が入っているのでしょうか。
お願いします。
0635633
02/03/27 16:34ID:Uk2UqleOこれはハッシュの勉強のところなんです。
値のグループ化というもので、社員の年齢ごとの
人数を集計するプログラムです。で3行目ですが、
$syukei{20} = $syukei{20} + 1 ですよね。
20をキーとしてそれに対応する値が右辺だということは
わかるのですが、右辺の$syukei{20}がわかりません。
これは何になるのでしょう。
0636nobodyさん
02/03/27 17:00ID:???で表示されたものが何かを考えればぁ?(゚Д゚)
0637633
02/03/27 17:35ID:Uk2UqleOサンプルなので、$syukei{20}が3で、$syukei{25}が1というのは
わかっているのですが、それだと一番最初の右辺$syukei{20}が0で
ないといけないですよね。つまり、
$syukei{20} = 0 + 1 ですよね。これで20のvalueが1になりました。
二回目からは$syukei{20} = 1 + 1 というのも分かります。
で最終的に$syukei = 2 + 1 で3になります。
僕が分らないのは、最初の右辺$syukei{20}が0というのが腑に落ちない
のです。うまくいえないですけど助けてください。
0638nobodyさん
02/03/27 17:49ID:???と言うことでいかが?
# ほんとはちょっと違うけど。
0639nobodyさん
02/03/27 17:55ID:???Perlでは初期化されてない変数は空文字になる。
数式で使うと0として扱われる。
0640633
02/03/27 18:28ID:Uk2UqleO自分も変数の初期値が0というのは知っているのですが、
こに場合はハッシュだから、どうなのかなと思っていました。
いわゆるハッシュ変数という奴なのですね。オライリーの
初めてのPERLを読んで何となくわかりました。これは今読んでる
初級本をクリアしてから読もうと思っていたのですが、けっこう
いいですね。
0641nobodyさん
02/03/28 02:54ID:9oC7jnq/rand関数がありますが、
たとえば $x = rand(6); $y = rand(6);
とした場合に僕の希望としては
それぞれに異なる結果を出したいのですが、
実際には $x,$y 共に同じ値になってしまって困っています。
サイコロで言えば二つを何度振っても
同じ数字が出続けるような物です。
何卒アドバイスを宜しくお願いします
0642>>641
02/03/28 03:05ID:???0643>>641
02/03/28 03:21ID:???0645nobodyさん
02/03/28 10:10ID:KXdiu3Az666−606 755−705とかで何か変わりますか?
以上にスレッドが重たいので困っております。何か良い方法ないでしょうか?
0647nobodyさん
02/03/28 10:30ID:KXdiu3Azありがとうございます。CGIのスレッド設置したのですが
凄く重たいのですが何か良い方法ないのですかね。
改善できることはしたいのですか・・
0648nobodyさん
02/03/28 10:47ID:???意味のわからんことをさっきから。
Web制作にCGI設置用のスレがある。ここはお前のようなコンシューマーの来るところではない。帰れ。
0650nobodyさん
02/03/30 22:08ID:???ソースの中に nph- という文字列があれば、ファイル名の先頭に
nph- と付け加えてみる、というか、サーバーを替えたらどうですか?
それか、同じ団体のアカでも新しくもう一つ取れば、もしかすると
空いてるホストにあたるかも知れません・・・が、余りオススメしませんね。
しかし、軽い CGI に替えるのが一番効果的でしょう。
0651nobodyさん
02/03/30 22:18ID:???共用サーバーは重いです。
専用サーバーを借りましょう。
ちゃんと保守までしてくれるところを。
そうすれば軽くなります。
0652nobodyさん
02/03/31 07:56ID:???スクリプトを配布してるサイトがあれば教えて頂けませんか。
0654厨房ですよ
02/04/01 00:33ID:???ActivPerl+win2kで-cwチェックに通ったPerlのCGIをサーバーにあげたところ500エラーが出ました。
何が問題なのかと、hKCatchをつかってみると
[hogehoge.cgi:2:die] (eval 1) has too many errors. > use KCatch qw( source execdata );__DATA__
という箇所でdieしていました。他はwarnだけでdaiはありません。
has too many errorsをgoogleってみたところ2chの別スレで「perl4じゃ?」という発言を見つけました。しかしuseを使えているということはperl4ではないはず。
何が問題なのでしょうか。
0655nobodyさん
02/04/01 00:47ID:???ワラタ
とりあえずどんな処理をさせるコードなのか書かないと
どんな関数を使ってるのかすら想像できないのでお答えできません
0656厨房ですよ
02/04/01 00:59ID:???設定情報のあるsetup.cgiファイルを読み込み、それ自体を書き換えるcgiです。
使ってる関数は超基本関数だけです。
ローカルでは動いているのになぁ……。
パーミッションも#!行もrequireも間違ってないっぽいです。
謎……。
0658nobodyさん
02/04/01 13:04ID:???#!/bin/sh
echo "Content-type: text/plain"
echo ""
/usr/local/bin/perl -wc hogehoge.cgi
0660nobodyさん
02/04/01 20:21ID:22Bwn0qt0662nobodyさん
02/04/01 20:31ID:???やっぱりそうですか。
http://ime.nu/ってどうやってんだろ。
0663nobodyさん
02/04/01 20:39ID:bVnVGhV3全然分からないです・・・。
cgiからcgiにPOSTするにはどのようにすればいいんでしょうか?
よろしくお願いします。
0665nobodyさん
02/04/01 21:18ID:b9jzIHibcgiなどウェブ系のプログラムを独学で作ってきていますが、
何でも、「仕様書」なる者を書いて設計をきちんとしないと破綻するらしいとわかりました。
確かに、昔書いた掲示板のスクリプトとかシンプルなものでも、ちょっと変更を加えようとしても訳わかりませんで、
結局新しいのをつくったりします。
グーぐるで探したら、河村かつまという人のサイトで仕様書の作り方を開設していたのですが、すごくわかりにくい文章で、
挫折してしまいました。やっぱり文章は本職の人が書かないとだめですね。
http://www.st.rim.or.jp/~k-kazuma/SD/SD.html
というわけで、仕様書の書き方をわかりやすく開設してあるおすすめのサイト、書籍を教えてください。
よろしくおながいします。
0666nobodyさん
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環境ではデータファイルに書込みが出来ないのは
どういったときに発生するものなのでしょうか。
ご教授 宜しくお願い致します。
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です。
0805nobodyさん
02/04/12 00:02ID:???ttp://tohoho.wakusei.ne.jp/soft/gcat.txt
それじゃあ配布元を調べるという基本中の基本は?
0806nobodyさん
02/04/12 00:24ID:DCCb4BjX同じ資料ではありませんが、似通った内容は見たことがあります。
> 一番最初の画像の大きさが全体と異なる場合に表示がおか
>しくなるという、ブラウザ側のバグが原因だと推測しています。
とありましたが、画像のサイズは、全て統一しています。
0808113
02/04/12 03:55ID:xkmU3hC6うちんとこは全桁化けてるけど、もう知らん。ネスケ無視だ。がはははは。
てか、俺も解決策知りたし。
0809nobodyさん
02/04/12 07:20ID:???一番最初の画像=一番左の桁の画像
全体の画像=一番左から一番右まで全部含めた画像
0810nobodyさん
02/04/12 16:06ID:KhU9N1Jwすみません。
小学校から国語をやり直してきます。
0811nobodyさん
02/04/12 16:07ID:KhU9N1Jw仕様だったんですね。
ありがとうございました。
0812nobodyさん
02/04/13 19:59ID:ZRf5XmIQErrorDocument 404 /aaa.html
と書けば指定したサイトに、飛ばせるようなのですが
---
AuthUserFile /hoge/
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic
<Limit GET>
require valid-user
</Limit>
---
のどこに書けばいいのでしょうか?
お願いします。
0813nobodyさん
02/04/13 20:31ID:???http://pc.2ch.net/test/read.cgi/php/1003772635/l50
上記のスレのどちらかのほうがいいかも
0815nobodyさん
02/04/13 23:50ID:???PCからは絶対に見ることが出来ないように
出来るのであれば、やり方を教えてほしいです。お願いします。
0816nobodyさん
02/04/14 00:18ID:gxlmJk+G絶対は無理だろ。
ユーザエージェントで判断すればある程度はじけるが、
エージェント変更できる奴とかもあるしな。
0818nobodyさん
02/04/14 00:29ID:gxlmJk+G環境変数のUSER_AGENT調べて判断しる。
例えばdocomoならDocomo〜とかなってる。
0819nobodyさん
02/04/14 00:29ID:???REMOTE_HOSTで弾けたのが一年前 今はどうなんだろ
>>817
携帯のHTTP_USER_AGENT調べれ
0820nobodyさん
02/04/14 00:36ID:oStrNP4H0822817
02/04/14 01:51ID:???if($user_agent =@@@@@@@@) { $mobile = 1; }
DoCoMoとUP.BrowserとPDXGWとASTELとJ-PHONEのうちどれか一個あれば
引っかかるようにしたいのですが
@@@@@@@@@の部分をどういう風に書けばいいのですか?
お願いします。
0823nobodyさん
02/04/14 02:03ID:gxlmJk+G正規表現使えば?
$_ = $ENV{'HTTP_USER_AGENT'};
if(m/(DoCoMo|UP.Browser|...|...|...)/){
$mobile = 1;
}
0824nobodyさん
02/04/15 06:09ID:???CGIに入る人数制限をする方法を教えてください。
0825nobodyさん
02/04/15 06:19ID:???死ぬまでに1度は入りたいね。
0827nobodyさん
02/04/15 09:44ID:???負荷は上がります?
0828nobodyさん
02/04/15 10:09ID:???まず、なぜそんな回りくどい事をする必要があるか、200文字以内で説明せよ。
0829nobodyさん
02/04/15 13:12ID:???0830nobodyさん
02/04/15 13:17ID:???アナタノニホンゴムズカシイ。
何がどこにアクセスするのか?
何の負荷を気にしているのか?
0831nobodyさん
02/04/15 17:36ID:???このように記載すると時間と分と秒数が表示されるのですが、
これに30分足した時間を求めるにはどうすれば宜しいですか?
0832nobodyさん
02/04/15 17:58ID:???それを算出する為にlocaltime()使ってるだろ?
そこの数字に30*60をたしておく。
0833nobodyさん
02/04/15 20:45ID:7iLwapD7<a href="$image"><img src="$image" border=0></a>
の部分がありまして、
$imageの拡張子が .gif .jpg .png
の拡張子以外は別の代変え画像を表示したいのですが、
どうすればいいのですか?
0834nobodyさん
02/04/15 21:03ID:???$image = $image2; # $imageの中身を$image2に変更
}
print qq(<a href="$image"><img src="$image" border=0></a>\n);
0835nobodyさん
02/04/15 21:03ID:???タイプミス…
自分で修正して。
0836nobodyさん
02/04/15 21:18ID:???$image = $altimg if $image =~ /\.(png|jpe?g|gif)$/i;
print qq(<a href="$ancurl"><img src="$image" border=0></a>\n);
0838WebBeginer
02/04/16 01:35ID:DFygP1Bi例:
bcom.datの内容↓
<STYLE TYPE="text/css">
A { text-decoration: none; }
</STYLE>
cgiで読み込む文章↓
$bcomfile = "./bcom.dat";
open (IN,"$bcomfile");
flock (IN,1);
$bcom = <IN>;
close (IN);
これで$bcomをhtmlの中に書いても、最初の1行<STYLE TYPE="text/css">
しか格納されてないんですよね。
$FORM{'bcom'}=~ s/\r\n|\r|\n/<br>/g;
とすると、改行が<br>に置き換えられてしまうので、結果としてタグが機能しなくなってしまうんですよね。
何とかなりませんか?
0839nobodyさん
02/04/16 01:44ID:???リストに入れたいのならば普通に
@LIST = <IN>;
で改行で区切ってリストに格納される。
もしスカラーにまとめて格納したいのならば
$list = join("",@LIST);
でおながいします。
なぜ私がおながいしているのか謎である。
0840nobodyさん
02/04/16 01:45ID:???$bcom .= $_;
}
0841二重送信だったらスマソ
02/04/16 01:46ID:???while(<IN>){
$bcom .= $_;
}
0843WebBeginer
02/04/16 01:55ID:DFygP1Bicolor.datの中身↓
black<>silver<>blue<>silver
で、
$colorfile = "./color.dat";
open (IN,"$colorfile");
@COLOR = <IN>;
close (IN);
($bg_c,$tx_c,$li_c,$h_c) = split(/<>/,$COLOR[1]);
と書いても各変数に値が代入されないのはなぜですか?
0845nobodyさん
02/04/16 01:58ID:???0846やさしいお兄さん
02/04/16 02:01ID:???undef $/;
$bcom= <IN>;
$/= "\n";
これでおながいします。なぜおながいするのかは、わたしにも謎です。
0847nobodyさん
02/04/16 02:08ID:3Tlg2ssNどのあたりまで改造して原型をとどめないようにしたら自分のって言っていいんですか?
あー、このスクリプトおもしれーことやってるなーなんて思って
ガチャガチャいじってるうちに原型がなくなるときあるじゃないですか。
そういうのってだめなの?
0848WebBeginer
02/04/16 02:11ID:DFygP1Bi$body='<body bgcolor="$bg_c" text="$tx_c" link="$li_c">';
として、
<html>
$body
・
・
・
とすると、変数がむきだしに(ソースを見ると<body bgcolor="bg_c"・・・)となってしまい、うまくいかないのですが何故でしょう。
0849nobodyさん
02/04/16 02:13ID:???一から書いてAそっくりなものが出来た → OK
0850nobodyさん
02/04/16 02:14ID:???自分で調べると言うことも身に付けような。
0851WebBeginer
02/04/16 02:33ID:DFygP1Bi0853nobodyさん
02/04/16 03:56ID:???クオート風演算子の風ってのがなんか好き
これって一般的な言い方なんでしょうか?
qq()
0855nobodyさん
02/04/16 04:15ID:???0857やさしいお兄さん
02/04/16 06:40ID:???$[ == 0 を前提とすると、
;# 値の取得
($sec, $min, $hur)= (localtime(time+30*60))[0..2];
;# ゼロサプレスなし
$now= sprintf('%02d:%02d:%02d', (localtime(time+30*60))[2,1,0]);
0858nobodyさん
02/04/16 09:56ID:TbadFbzPどっかのHPの情報を取ってきて
ファイルに書きこんでいくプログラムはできますか。
(言語Perl)
0859nobodyさん
02/04/16 10:05ID:WW7dwT5r0861858
02/04/16 10:19ID:eNjQI1pb例えばAHOO Financeで日経平均が出ているページを毎日PM6:00に読みこんで、
そこから日経平均を文字列で取り出して、ファイルに保存しておく。
二行目はできると思うけど
ユーザーアクションがないときにタイマーで
勝手に作業してくれるようなことはできるのですか?
0862858
02/04/16 10:52ID:R2KCu+6Yじゃぁ、自垢のときに
AHOO Financeで日経平均が出ているページを読みこむ
プログラムは可能ですか?
0863nobodyさん
02/04/16 11:00ID:???Finance::YahooQuoteモジュールでも見て勉強しなさい。
0865nobodyさん
02/04/17 01:26ID:BXgzx7GKが解析できるソフトで、できるだけ安価(orフリー)なものはないですか?
Apacheの生ログを解析するタイプでも、あるいは前ページにSSIかPHPかIMGタグかなにかで埋め込むタイプでも、
手段は問いません。
0866Dream 黒星
02/04/17 02:06ID:???ソフトが欲しいならスレ違いだ! うせろ!
しかし、作ったほうが早いな! 簡単だからな! っつーか、作れ!
0867858
02/04/17 11:08ID:42l5cwQk自分とこのプロバイダー
SOCKET通信は、localhostのsmtp/tcpのみということです。(TT)
他にやり方ないですかね?
0868nobodyさん
02/04/18 00:11ID:1URG3Ku/ないでーす死になさい
0869アフォ
02/04/18 14:43ID:ZcdM4/xr気づいたのですがコンパクトぽりしー?P3P?を書いとけばいいとどこかのサイトでみつ
けたのですが、はてどうしたらよいんでしょうか。
ヘッダーに
P3P: CP='ONLi COM CUR OUR'
が吐き出されるようにまじないしておくと、嘘つきできると書いてあったんすが。
とりあえず対応するにはこれでいいんでしょうか。
cgiは同じドメインのレンタル鯖から呼び出してます。
(まだ試してません)
それとも、まじめ導入すべきなんでしょうか。
perl初心者です。
0870nobodyさん
02/04/18 14:51ID:Htj+h4zJ0871nobodyさん
02/04/18 17:46ID:fATaEmaK書き込み不可で閲覧可能な状態にしておくことできますか?
属性をいじってみたけれど、書き込み不可にするとサーバーエラーになって
うまくできなかったので
エキスパ−トの方、ワザを伝授してください。
0872nobodyさん
02/04/18 17:50ID:???1名様ご案内〜
スクリプト改造工房 Part4
http://pc.2ch.net/test/read.cgi/php/1012839651/
1をよく読んでから改造依頼すること
0874nobodyさん
02/04/18 18:28ID:???昼間は人が少ないからせめて24時間待ってみろ。
レスを急かすとレスする人間減るぞ。
0875nobodyさん
02/04/18 19:00ID:Xv+8+6gtCGIだけで、Formのフォーカス制御は可能でしょうか?
JavaScriptも使わずにです。
どうも>476 さん辺りのレスを見る限りでは無理そうですが、、、(^^;
0876nobodyさん
02/04/18 19:11ID:???具体的になにをしたいか言ってみればできる事もあるかもしれない。
>477みたいに<form>タグでなら制御できるし。
もっとも、これはCGIの挙動とはいえないが。
0877nobodyさん
02/04/18 19:19ID:Xv+8+6gtレスありがとうございます。
ちょっとスレ違いなのかもしれませんが、チャットの改造をしていまして
JavaScriptを使わないモードだとsubmitの方にフォーカスが移ったままになってしまうので
これをなんとかクリアーできないものかと。
そういえば>477さんのターゲット指定を忘れていたような気がするので、今一度
試しに逝って来ます。
0880ひこ
02/04/18 22:47ID:27B4F9dj今作っているCGIで「param」というメソッドが出てきます。
意味がわかりません。
そういったメソッド等の意味を調べたりするのに便利な書籍や、
WEBサイトをご存じの方がおられたらアドバイス下さい。
よろしくお願いします。
0882nobodyさん
02/04/18 22:55ID:???my $hoge = $q->param('hoge');
で
<input name="hoge" value="hogevalue">
の値を取れます
CGI.pm 邦訳
http://member.nifty.ne.jp/hippo2000/perltips/Cgi.htm
0885nobodyさん
02/04/18 22:56ID:???0887nobodyさん
02/04/18 22:57ID:???0888nobodyさん
02/04/18 23:02ID:???0890nobodyしゃん
02/04/18 23:17ID:BuBmgSk0何かいい方法はありますか?ご教授願います。
0894nobodyさん
02/04/19 00:28ID:zFUx8GfYちょっと参考にしたいなぁと思ってるんですが。
0895nobodyさん
02/04/19 00:39ID:???まだ他にも方法はありそうだが・・・・・・
0896nobodyさん
02/04/19 00:48ID:???スクリプトだったら、テキストエディタってのを使うと見ることができるYO!
0897nobodyさん
02/04/19 00:54ID:zFUx8GfYマジでか。
0899869
02/04/19 15:23ID:1m0wphwTIEのセキュリティもプライバシーも最低レベルに落としている知人に
アクセスしてもらうと正常に動作するのですが(WinXp&IE6)。
同じ設定にしてもウチノハクッキーすら食べてくれない状態で。
ちなみに以下の文をヘッダーに組み込んでみましたが、ぜんぜん効果なしでした。
P3P: CP='ONLi COM CUR OUR'
セキュリティー初期のままでもクッキー食わせる方法教えていただけませんか。
0900クッキー使う奴はアホ。
02/04/19 15:55ID:???http://www.microsoft.com/japan/developer/workshop/security/privacy/overview/createprivacypolicy.asp
http://www.nmda.or.jp/enc/w3c/cr-p3p-20001215j.html
http://fs.pics.enc.or.jp/p3pwiz/manual_ja.html
0901nobodyさん
02/04/19 19:47ID:1m0wphwTアホです、ありがとうございます。
nmda.or.jp参考になりました。(これは見つからなかった)
0903某研究者
02/04/20 09:17ID:Gxe0B6+C(パーミッション設定・ディレクトリ作成をWINDOWSのアプリケーションの様に
自動で出来ないのか)
0905nobodyさん
02/04/20 11:26ID:???0906nobodyさん
02/04/20 15:56ID:???それイイ
0907nobodyさん
02/04/20 16:14ID:Ebv3CsfSプログラムを作成したのですが、読み込んだHTMLファイルのエンコードがEUCに
なっていしまいます。
CGIファイル側では、
<html>
<head>
<title>メールマガジン</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<frameset cols="180,*" frameborder="NO" border="0" framespacing="0">
<frame name="ContentsFrame" scrolling="NO" noresize src="contents_2.htm">
<frame name="InformationFrame" src="amc.htm">
</frameset>
<noframes>
<body bgcolor="#FFFFFF" text="#000000">
</body>
</noframes>
</html>
このように記述します。
読み込むHTML側には
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
このように記述しています。
ブラウザは、IE6です。
使用言語は、Parlです。
0909nobodyさん
02/04/20 17:14ID:Ebv3CsfSどの部分で使えばよいですか?
CGIでフレームセットを表示した後、フレームを構成するHTMLもCGIで
表示してしまえば済むのですが、サーバーの負荷を考えてHTMLとして
表示させたいのですが、無理ですか?
0910nobodyさん
02/04/20 17:24ID:???おまえが何をやりたいのかさっぱりわからん。
0911nobodyさん
02/04/20 17:29ID:???0912nobodyさん
02/04/20 17:31ID:Ebv3CsfSフレームセットを自動的に生成+それぞれのフレームに対するアクセス数を
カウントするプログラムです。
フレームでページを作った場合、個々のページにアクセスするには、
それぞれフレームセットを作らなければいけませんよね?
それを解消する+カウンタです。
>>911
すみません。また間違えました。
Perlです。
0913908
02/04/20 17:45ID:???事が記述されてないから、適当に答えた(w
>>907 あんたは逆にこの質問されて答えられるのか?
0914nobodyさん
02/04/20 18:33ID:Ebv3CsfSすみません。
質問が具体的ではなかったですね。
> あんたは逆にこの質問されて答えられるのか?
分かりません・・・。
解決方法が分からないので、質問させて頂きました。
0915nobodyさん
02/04/20 19:32ID:???それって読み込んだHTMLのエンコードが本当にEUC-JPになっているの?
それとも,エンコードはSHIFT_JISなのにブラウザがEUC-JPだと判別してしまっているの?
HTMLファイルがもともとEUC(・∀・)デシタ!! とかいうオチのような気が.
0916nobodyさん
02/04/20 19:41ID:Ebv3CsfS恐らく、ブラウザがEUC-JPだと判断していると思われます。
あと、HTMLファイル自体は、Shift-JISです。
0917nobodyさん
02/04/20 19:42ID:???サーチエンジンの場合、データーとCGI本体とを別々のサーバーに置いた時って、
どっち側に負荷が掛るのでしょうか・・・
ほんとすんません・・・ネタじゃないです
0918nobodyさん
02/04/20 19:46ID:???・CGIスクリプトのコンパイル
・ファイルオープン
・データのループ (whileやforeach)
よってCGI側
0919nobodyさん
02/04/20 19:57ID:???恐らくって… ソースを表示すれば断言できるのに.
じゃあ,そのHTMLファイルを,CGIで生成したフレーム経由ではなく
URL直接指定で開くとどうなる?
0921nobodyさん
02/04/20 21:17ID:Ebv3CsfSソースを表示って、秀丸とかでいいんですよね?
確認しました。
ブラウザでは、もちろん一発でShift-JIS表示されます。
0922nobodyさん
02/04/21 01:58ID:???うーん,そうか.
じゃあ今の情報からは思い当たるものが無いや.役に立たなくてスマソ.
CGIだから起こった問題ではない気がするんだけどね…
0923nobodyさん
02/04/21 02:28ID:2DSDrCKhそうですか・・・。
ありがとうございました。
フレーム生成CGIからさらにCGIを呼び出すことにします。
0924nobodyさん
02/04/21 02:28ID:???ほんとに役立たずだからびっくりしたよ。
0926nobodyさん
02/04/21 04:33ID:5EokjXuOおぉ、キミもそう思ってくれるんだぁ。
煽りレスもびっくりだけど 922 の役立たずぶりにももひとつびっくりってか!
0927nobodyさん
02/04/21 04:51ID:???ほとんど状況がわからんまま言うが、
CGIの問題とは違っていそうだからスレ違いではないかと思う。
ひょっとしてこれか?
> <title>メールマガジン</title>
> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
シフトJIS指定する前に日本語書いちゃダメ!
それをやっているファイルを全部書き換えろ!
0928nobodyさん
02/04/21 05:21ID:???<HTML LANG="ja">
も入れておくといいかも
0929nobodyさん
02/04/21 11:07ID:6JsTHOqFどなたか解決法がわかれば教えて頂きたいのですが。
現在CGIStationさんのANS.Qを複数ページに設置しています。
少々HTMLを加えてして2ちゃんねるみたいなテーマごとのミニ掲示板みたいにしているのです。
で、荒しが多いのでアクセス制限しているのですが、この作業をなんとかして自動化
したいのです。
1今までのやり方は何も入ってないansq.cgiにアクセス制限のIPを書く
2既存のものをバッチファイルで一気に削除
3バッチファイルで新しいansq.cgiをコピー
4エクセルに作ってあるパラメータ表から掲示板ごとのデータをコピーして貼り付け
(エクセルからCGIファイルにハイパーリンクを貼って開いています)
という順でやっています。
ところが4の段階でどうもミスが多く違うCGIに違うデータが入り込んでしまうことも
しばしばあり、なんとか自動化してアクセス制限のスピードを上げたいと思っています
エクセルから他のアプリケーション(この場合はテキストエディタ)
を開きセルの内容をCGIの適切な場所にコピーする
作業を自動化することはできないのでしょうか。
wordで開いて差し込みでなんとかならないものかと思いましたが
何ともなりませんでした。
VBAなども検索してみましたがさっぱりわかりません。
何かよい方法があれば知恵を貸して頂きたいのです。
よろしくお願いします。
ガイシュツだったらすいません
0930nobodyさん
02/04/21 11:18ID:2DSDrCKhそうなんですか・・・。
逆にするだけで解決してしまいました。
CGIの問題ではなくHTMLの問題だったんですね。
>>928
企業のページなどは、このような表記をしているページもあるみたい
ですね。
早速、入れてみました。
参考になりました!ありがとうございました!!
0931nobodyさん
02/04/21 11:40ID:1/Tdsylwcgiに引数を渡すには
<a href="?data1=data">とか
<form action="?data1=data">とか
cgi内で
print "Location: http://hoge.com/?data1=data";
とか書いても構わないのでしょうか。僕の環境で試したところ全部正常動作したんですが、
サーバーの設定などに関係なく動作可能でしょうか。
0933nobodyさん
02/04/21 13:43ID:???俺だったら
<a href="./?data1=data">
<form action="./?data1=data">
↑こう書く
0935nobodyさん
02/04/21 15:44ID:???ところでなんでこのスレは5.01なんだ。IEじゃねーつうの。
0939a
02/04/21 22:22ID:???0940nobodyさん
02/04/21 22:28ID:IX+pJPo5認証を行ったブラウザ(別のウインドウには影響なし)が起動している間だけ、
変数(Passwordデータ)を記憶させることってできない?
クッキーやJAVAの範囲になっちゃうのかな・・・
0941nobodyさん
02/04/21 22:51ID:Ld3WJnEPhttp://www5d.biglobe.ne.jp/~coolj/bbs.html
0942nobodyさん
02/04/21 22:55ID:Ld3WJnEP確かに優れてるな。とても軽い。
0943nobodyさん
02/04/21 22:56ID:Ld3WJnEP貴様のサイトか?
0944nobodyさん
02/04/21 23:32ID:???まずは、CGIとはなんたるものか理解する所から始めないと駄目な様だね…
で、その解説ページも検索して、読み尽くしても解らなかったらここにこいや
0946nobodyさん
02/04/21 23:48ID:IX+pJPo5なるほどやはりcookieですか・・・
cookieスレ逝ってきます
0947nobodyさん
02/04/21 23:50ID:???たのウインドウが起動している間だけってのは難しいけど、
簡単にやるなら>>945で。
もちょっと手の込んだ方法でやるなら、セッションオブジェクトが使える
言語でやると思う。
0948nobodyさん
02/04/22 13:14ID:iPGLjlXl<a href="string">string></a>
っていう風に置換する奴がありますけど、
2バイトコードに対応させるには
正規表現をどう書けばいいんでしょうか?
日本語のuriなどに対応させたいんですが・・・。
0949nobodyさん
02/04/22 13:21ID:???文章とURIが混ざったらイヤン。
0950nobodyさん
02/04/22 13:24ID:???そりゃかなり無謀な話だな。
「リンクさせたいURIは"<>"や"[]"で囲む」っつーマークアップ規則を提示してそれに従わせるとか。
0951948
02/04/22 13:35ID:???そういう場合困るんですよね・・・・・・。
>950
そういう風にする方がいいですね。
どうも、ありがとうございます。
0952nobodyさん
02/04/22 17:26ID:mWLoTPYTこのようなアイコン掲示板について質問なのですが、
自前のアイコンを使用するためアイコンのURLを入力してカキコしたとき、
一般の訪問者にはこのURLが分からないようにするPerlスクリプトというのは
技術的に可能でしょうか?
0953nobodyさん
02/04/22 17:45ID:???別サーバーに置かれてる画像を表示させるときに
<img src="http://www.hoge.com/hoge.gif"> ではなく
<img src="hoge.gif"> だけで表示させれるかということ?
0955952
02/04/22 21:58ID:???>>954
レスありがとうございます。
自分のホームページのアドレスを見せたくないから
そういうのに改造してくれないか、と知人に頼まれたもので。
例えば、
<img src="http://www.hoge.com/hoge.cgi?kiji_icon=1">
とすれば、スクリプトを設置しているサーバー側で、
「ログファイルの1番目に記述されているアイコンURLを参照、画像を読み込んで表示」
といった処理を行い、ブラウザ等から見てもそのURLが分からないようにする、
といったことを考えています。
しかしその処理を行えるスクリプトが思い付かず、
そもそもそういったことが可能なのかどうか質問させていただきました。
Perl超初心者でして、バカな考え方なのかもしれませんが...
0956nobodyさん
02/04/22 22:38ID:IEsnFENeここなら誰か御存知と思うのですが…
0959Dream 黒星
02/04/23 01:35ID:???無能のくせに、知ったかぶり発見!
0960nobodyさん
02/04/23 02:58ID:???画像をCGI経由にするって事は、その分サーバーに負荷をかけるってことだ。
しかも画像の数が増えれば増えた分だけ負荷が増える。
共用鯖ならやめておいた方がいい。
お前一人で使ってる鯖じゃないんだ。
0961nobodyさん
02/04/23 06:28ID:Qw5U18DOLocationで飛ばせば良いかも。
URL直打ち対策の処理をしておけばなお良し。
ヘッダ読まれたらそれまでだけど・・・。
0962nobodyさん
02/04/23 06:32ID:ABgbgZ3Nたくさんあることを知りました。よく知られている
あのCGIもあのCGIも危険らしいです。
そんでもって、危険なのは分かったんですが、どのように
危険なんでしょうか。
初心者でもこのぐらいやっとけっていう対策とかありますか。
0963nobodyさん
02/04/23 06:37ID:???open,exec,systemなどに外部から入力されたデータを使わない。
0964nobodyさん
02/04/23 07:02ID:???0965952
02/04/23 08:24ID:JSeGUqgtこれだとやはり負荷が問題になるんですね。
隠し通すことのできない Location もやめておきました。
知人にはできない、と言っておきます。
ありがとうございました。
0967nobodyさん
02/04/23 14:01ID:???とかのmyってどうな効果があるの?
0969カウントダウン屋
02/04/23 19:41ID:???0970カウントダウン屋
02/04/23 19:41ID:???0971カウントダウン屋
02/04/23 19:41ID:???0972カウントダウン屋
02/04/23 19:41ID:???0973カウントダウン屋
02/04/23 19:41ID:???0974カウントダウン屋
02/04/23 19:41ID:???0975カウントダウン屋
02/04/23 19:41ID:???0976カウントダウン屋
02/04/23 19:42ID:???0977カウントダウン屋
02/04/23 19:42ID:???0978カウントダウン屋
02/04/23 19:42ID:???0979カウントダウン屋
02/04/23 19:42ID:???0980カウントダウン屋
02/04/23 19:42ID:???0981カウントダウン屋
02/04/23 19:42ID:???0982カウントダウン屋
02/04/23 19:42ID:???0983カウントダウン屋
02/04/23 19:42ID:???0984カウントダウン屋
02/04/23 19:43ID:???0985カウントダウン屋
02/04/23 19:43ID:???0986カウントダウン屋
02/04/23 19:43ID:???0987カウントダウン屋
02/04/23 19:43ID:???0988カウントダウン屋
02/04/23 19:43ID:???0989カウントダウン屋
02/04/23 19:43ID:???0990カウントダウン屋
02/04/23 19:44ID:???0991カウントダウン屋
02/04/23 19:44ID:???0992カウントダウン屋
02/04/23 19:44ID:???0993カウントダウン屋
02/04/23 19:44ID:???0994カウントダウン屋
02/04/23 19:44ID:???0995カウントダウン屋
02/04/23 19:44ID:???0996カウントダウン屋
02/04/23 19:45ID:???0997カウントダウン屋
02/04/23 19:45ID:???0998カウントダウン屋
02/04/23 19:45ID:???0999カウントダウン屋
02/04/23 19:45ID:???10001000
02/04/23 19:45ID:???``)  ̄ ̄ ̄∨ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
`)⌒`) ( ∧∧ ∧∧ ) (´⌒(´
≡≡≡;;;⌒`)≡≡≡⊂´⌒⊃ ゚Д゚)⊃ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡ ;;⌒`)⌒`)  ̄ ̄
ズザーーーーーーーーッ
・・・・・・・・・・・・・・・・・・
``)  ̄ ̄ ̄∨ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
`)⌒`) ( ∧∧ ∧∧ ) (´⌒(´
;;;⌒`) ⊂´⌒⊃; ゚Д゚)⊃ ⊂(゚Д゚;⊂⌒`つ (´⌒;;; ;;⌒`
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
( ケコーンしよう・・・
。o ○\____________/
.∧∧ヘヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
( ノ ) 。o○( うん・・
./ | \ \_________/
(___ノ(___ノ
/ \
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。