自作CGIを評価するスレ
■ このスレッドは過去ログ倉庫に格納されています
0001Premature end of script headers : /this/thread
03/04/05 12:47ID:tIET0nhfよほどプログラムが短くないかぎりはアプロダにでもアップしてね。
0558540
04/10/11 01:40:27ID:21NinhME0561かぼ
04/10/22 19:30:44ID:EM8OHCfbhttp://members14.tsukaeru.net/skycat/quan/quan.cgi
0563nobodyさん
05/01/23 00:46:42ID:vqv+/2ig評価というか不具合の問題です
初めてperl書いてみました。
簡易的な計算のプログラムを作ってみたんですがうまく動作しません。
ちょっと見て頂き、不具合等御指摘下さい
特定の計算式で、入力(1項目だけセレクトボックスにより選択)した数値を計算するものです。
ソース
http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20050123003423509.txt
URL
http://sr-cafe.chu.jp/kok/calc.html
0564nobodyさん
05/01/23 03:00:10ID:3FhDUp9Jソースはマンドクサイのでちゃんと読んでないけど、
文字コードと改行コードの問題の様な希ガス。
0565nobodyさん
05/01/23 13:10:26ID:???calc.html
× <SELECT name="set" name="s1">
○ <SELECT name="s1">
0566nobodyさん
05/01/23 20:04:18ID:???ReadFormData(*FORM); → %FORM=&ReadFormData;
print <<END_OF_DATA; → print <<"END_OF_DATA";
Content-type: text/html; → Content-type: text/html\n\n
以下 sub ReadFormDataの修正
local(*FORM) = @_; → my %FORM=();
local($buf, $tmp, $name, $value); → my($buf, $tmp, $name, $value);
return %FORM; ← 最後に追加
0567nobodyさん
05/01/24 11:42:30ID:YsLCruPH改行コード2つとダブルクォーテーション必要無くね?
0568nobodyさん
05/01/24 12:10:13ID:???ヒアドキュメントのダブルクォートはどちらかというとあったほうが・・・
0569563
05/01/25 02:27:15ID:???>>566サンの通りにしたり、色々試してるんですがまだ動かないです…
printが閉まってなくてフォームの値を処理出来てないんでしょうか…
0570nobodyさん
05/01/25 04:00:44ID:???うちのサーバでスクリプト試したんだけどちゃんと動くぜ。
おまい、サーバに嫌われてるんだ。きっと。
問題は print <<END_OF_DATA 〜 END_OF_DATA までか、
まさかと思うがパーミッションか、perlの指定。
一度 print <<END_OF_DATA 〜 END_OF_DATA を
たいした行数じゃないんだし、print "〜\n"; に置き換えてみ。
それからコメント行やめろ。余計見づらくなる。
0571566
05/01/25 04:01:58ID:???今試したら566の変更だけで動いたわけだが。
Content-typeの行はそのままでも良いみたい。
動かないとしたらCGIの設置方法の問題。
まさかとは思うがローカルでテストしてるよね?
0572nobodyさん
05/01/25 04:03:19ID:???0573566
05/01/25 04:07:06ID:???問題はコードではない予感。
0574nobodyさん
05/01/25 04:14:49ID:???経験で言うとさ、ヒアドキュメントはサーバの機嫌で、最初はうまく動作して
くれないことがある。Cookieなんか入れるとどうも変なんだよな。
そういうとき俺はメンドーでも print "〜\n" に置換えてやる。すると、あとは
「ヒアドキュメントでも読込んでやるかぁ」ってことでサーバは折り合ってくれる。
0576nobodyさん
05/01/25 04:34:21ID:???ムリしなくっていいから、とか気を使ってやると機嫌よくなる。ほんとだぜ。
0578nobodyさん
05/01/25 06:47:43ID:???多かれ少なかれ576のような感じはあるな。
0580nobodyさん
05/01/27 18:28:04ID:???パーミッションの所為だった…
元のままでも566のコードでもどちらでも動きました。
>>571-572
そのとおりです。
ローカルでテスト出来るという事すら知りませんでした。
勉強します。
0581nobodyさん
2005/06/06(月) 19:56:57ID:???_▲_
ねればねるほど ((φ(..。) 色が変わって
_▲_
こうやってつけて р(゚Д゚ )
*_▲_*
ウマイ━━━*━ヘ(゚∀゚)ヘ━*━━━━!!!! テ-レッテレ-♪
0583nobodyさん
2005/09/21(水) 17:05:52ID:54UaWl8q0584nobodyさん
2006/05/18(木) 17:31:45ID:Ip4qBE+Bどなたか評価(清書?)お願いします_ _
指定されたスレの中から前日から当日までの既定の時間にあるレスを抽出して、
そのレスから株価コードを抜き出し株価の前日比、前日比率でソートしランキングを作成した後スレに書き込むツールです。
2chへの書き込み時のCookiee処理に曖昧な点があるのと、処理の最適化をして貰えると嬉しいです。
宜しくお願いします_ _
0585nobodyさん
2006/05/18(木) 22:33:53ID:???Perlで他のサイトを取得して表示したいと思っています。
(著作権侵害とかそういうことをしたいのではないです)
お時間のある方にお願いしますが、次のコードで@niftyのトップページを取得してみたら
どうなるか教えていただけませんでしょうか?
print "Content-Type: text/html\n";
print "\n";
use LWP::Simple;
print get( 'http://www.nifty.com/' );
私のところだと、ブラウザ上での表示がぐちゃぐちゃになるんですが…。
0586nobodyさん
2006/05/18(木) 22:56:52ID:???マルチポストすんな
0588nobodyさん
2006/06/06(火) 15:21:29ID:Re1RmuFGもっと簡潔に書けるような気がするんですが自分ではこれが限界でした。
あと、ファイルロックのやり方が合っているのか自信がありません。
一応動いていることは動いているんですが、問題はないでしょうか。
改良すべき点、根本的にこういう書き方に直した方が良い、とかあればアドバイスお願いします。
大まかな内容は以下のようなものです。
予定として保存する内容は「予定日(月と日)」と
「予定内容(長くても200バイト程度)」の2つでフォームから渡します。
予定を保存するファイルは月単位で作成します。
例えば2006年6月の予定の場合なら「200606.txt」というファイル名です。
保存するファイルがないときはその都度作成し、
6月1日
6月2日
6月3日
.
.
.
という風に日付だけを先に入れておきます。
保存するファイルがあるときは、
フォームから渡された「予定日」とマッチした日付の次の行に「予定内容」を書き込みます。
内容は以上です。次レスにコードを晒します。
0589nobodyさん
2006/06/06(火) 15:22:42ID:???$a = sprintf("%04d%02d",$YEAR,$MON)
$file = "$a.txt";
# 月から日数を出す
if($MON == 1|3|5|7|8|10|12){
$m = 31;
}elsif($MON == 4|6|9|11){
$m = 30;
}else{
if($YEAR % 4 ==0){
$m = 29;
}else{
$m = 28;
}
}
for($i=1;$i<=$m;$i++){
$date .= "$MON月$i日\r\n\r\n";
}
0590後半
2006/06/06(火) 15:23:17ID:???if(!open(IN,"$file")){
open(OUT,">$file")
flock(OUT,2);
print OUT $date;
close(OUT);
}
open(IN,"$file");
flock(IN,2);
@A = <IN>;
close(IN);
# 「予定日」とファイル内の「日付」をマッチングさせて該当日付に「予定内容」を書き込む
$loop = @A;
$i = 0;
while($loop > 0){
if($A[$i] eq $plan_day){# $plan_day = "フォームからの情報(予定日)";
$A[$i] .= "$plan_value\r\n";# $plan_value = "フォームからの情報(予定内容)";
}
$loop --;
$i ++;
}
if(!open(OUT, "+< $file")){&error;};
flock(OUT, 2);
truncate(OUT, 0);
seek(OUT, 0, 0);
print OUT @A;
close(OUT);
0591nobodyさん
2006/06/06(火) 15:45:22ID:???まだちゃんと読んでないが…。
>if($MON == 1|3|5|7|8|10|12){
>}elsif($MON == 4|6|9|11){
これって比べてるのは、両方とも $MON == 15 だよね。
どっちの条件にも入らないと思うけど…正しく動作してるの?
0592nobodyさん
2006/06/06(火) 15:51:41ID:???セミコロンは?
動作するヤツうp
0593nobodyさん
2006/06/06(火) 15:52:34ID:???高度だな。
0594nobodyさん
2006/06/06(火) 16:09:34ID:???use Switch
switch ($MON) {
case [1,3,5,7,8,10,12] { $m = 31 }
case [4,6,9,11] { $m = 30 }
case [2] { $m = $YEAR % 4 ? 28 : 29 }
else { print "そんな月知らん" }
}
0595589
2006/06/06(火) 16:39:31ID:???該当部分を切り出して動作するコードをUPしてきます。
0596589
2006/06/06(火) 17:02:59ID:???UPしました。パスは「589」です。
日付のところは594さんのアドバイスにしたがって書き換えました。
アドバイスの方よろしくお願いします。
0597589
2006/06/06(火) 17:11:06ID:???コードの一部分だけ抜き出してできるだけ短く書こうとしたので
分かりにくかった&書き損じがありました。すみませんでした。
>>594
perlでもswitchが使えるとは知りませんでした。
0598nobodyさん
2006/06/06(火) 17:20:53ID:???0599nobodyさん
2006/06/06(火) 17:24:17ID:???0600nobodyさん
2006/06/06(火) 18:59:27ID:???0601nobodyさん
2006/06/07(水) 00:26:35ID:???0602nobodyさん
2006/06/20(火) 01:54:40ID:jChy1x4Z見れない・・
0603nobodyさん
2006/07/08(土) 12:44:17ID:hGiPCYN90604nobodyさん
2006/07/21(金) 16:23:10ID:BWWkPiVe0605nobodyさん
2006/10/07(土) 10:40:01ID:L17fbc1O恐ろしく見づらいと重いまスが・・
http://vip.ty.land.to/image/
http://pc8.2ch.net/test/read.cgi/php/1160569533/
でボチボチいじくったり、新しいことやったりしていきたいと思ってまスが、評価して欲しいス(・ω・`)
勉強かねてるので、車輪の再開発なのは承知でス
0607nobodyさん
2006/10/11(水) 23:36:54ID:???言葉遣い荒いけど、ばーっと書いた弊害なので許して。
取りあえずぱっとみてこんなもん。
・一部のうpろだは、リファラが不味いと弾かれる。
・画像がない場合の画像を一々作るのは無駄。
・CGIモジュール使え。
・グローバル変数も宣言しろ。
・これは好みだけど、設定の変数はハッシュに纏めた方が分かりやすいこともある。
・メインの流れはブロック作ってラベル付けた方が分かりやすいかも。
・正規表現の|は案外コストがかかる。配列にしてマッチング。
・先頭にrequire バージョン名;
・use warningsは〜?
・汚染チェックもきれい好きな方にはオススメ。
・サブルーチンを先頭で宣言して欲しい。
・変数名に日本語はいやん。
・データーベースつかってほすぃ。
おぉぉぉレスもらえたス(;ω;`)アリガタイ
感謝しまス!
>・正規表現の|は案外コストがかかる。配列にしてマッチング。
>・先頭にrequire バージョン名;
>・use warningsは〜?
>・サブルーチンを先頭で宣言して欲しい。
良くわからないス(・ω・`)
>・変数名に日本語はいやん。
英語苦手ス・・・毎度翻訳スかね・・頑張るス
>・データーベースつかってほすぃ。
現在勉強中でス!
生暖かい目で見守ってやってくださいス・・(・ω・`)
やっぱレベル高い人の意見は参考になるス!
文句なし!って言われるようなものをいつか作りたいス(・ω・`)thnkス
0609nobodyさん
2006/10/12(木) 04:41:48ID:???うる覚えなんだが
if($i_m_f){
use Image::Magick;
}
これって意味ないんじゃなかったっけ?
$i_m_fが真ならImage::Magickを使うって事なんだろうけど、
この書き方だと$i_m_fが偽でもImage::Magick呼ぶんじゃなかったっけ?
識者の方レスよろ
ファイルハンドルは大文字で
最後から10行目くらい@cache[$i]は$cache[$i]じゃないの?
print文中の"をエスケープするんならprint qq|ここに"文章"|;
こーすりゃいちいちエスケープしなくておk
サンクス
>最後から10行目くらい@cache[$i]は$cache[$i]じゃないの?
どちらも同じ意味だったはず
(若干の差はあるかもだが、使い方に大差なしでは?)
>print文中の"をエスケープするんならprint qq|ここに"文章"|;
>こーすりゃいちいちエスケープしなくておk
mjdsk!?
次から挑戦してみる
色々アドバイスやら素敵な解決策をありがとう
0611nobodyさん
2006/10/12(木) 13:46:42ID:???BEGIN{}で囲ったほうがいいな。
0612nobodyさん
2006/10/12(木) 22:51:01ID:???>うる覚えなんだが
http://www.tt.rim.or.jp/~rudyard/hirago014.html
> これって意味ないんじゃなかったっけ?
http://perldoc.jp/docs/perl/5.6.1/perlfunc.pod#item_use_Module_VERSION_LIST
> ファイルハンドルは大文字で
bareword で扱わず変数で取り回す方が今風。
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq5.html#how_can_i_make_a_filehandle_local_to_a_subroutine_how_do_i_pass_filehandles_between_subroutines_how_do_i_make_an_array_of_filehandles
>>610
> どちらも同じ意味だったはず
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq4.html#what_is_the_difference_between__array_1__and__array_1_
alter.s225.xrea.com/cgi/bbs/read.cgi?log=0
1. 評価と言うよりも bug の あぶり出しを希望します.
2. 操作がわかりづらいとの意見があります.
率直な ご意見をお願いいたします
3. 自信がないのが security 関連
・ 念のため, 全ファイルを upload しておきます:
alter.s225.xrea.com/bbs.zip
0615nobodyさん
2006/11/07(火) 08:23:24ID:???文章そのままって酷すぎるw
お返事ありがと〜.
でも, どういう意味かしら ?
誘導されて来たのに いまだに誰も...
どうなってるの ?
0618nobodyさん
2006/11/08(水) 10:54:37ID:???「とても読めたもんじゃない」
ということではないでしょうか。
613は釣りとしか思えない。
CGI以前の問題ね。
>CGI以前の問題ね
確かに... JavaScrit の bug がぁ〜〜〜
(絶対に書き込めない)
おまけに... WaMCom (Mozilla1.31) では問題とならなかった error が
IE5.17(Mac版) では発生して処理が止まる〜〜〜.
>613は釣りとしか思えない
釣りでは ありませぬ.
僕の環境で確認できる bug は退治しました.
引き続き あら探しをお願いいたしまする〜.
0620nobodyさん
2006/11/08(水) 20:37:07ID:???まず、「何を作ったのか」という概要や大まかな処理の流れすら書いてない。
>評価と言うよりも bug の あぶり出しを希望します.
評価するスレ。デバッグする所ではない。てか、デバッグなめすぎ。
>操作がわかりづらいとの...
具体的にはどういう操作?
>自信がないのが security 関連
どのファイルの何行目のどういう処理?
>JavaScrit の bug がぁ
JavaScritのスレへどうぞ。
>WaMCom (Mozilla1.31) では問題とならなかった error が
>IE5.17(Mac版) では発生して処理が止まる
と書いていながら
>僕の環境で確認できる bug は退治しました
ってどうよ。
何より、CGIについて無学なのがバレバレです。
背伸びせずPerlからでもきちんとお勉強しましょう。
0621nobodyさん
2006/11/08(水) 20:38:25ID:???最低でも変なファイル作られないようにするとか異常にでかい投稿は
書き込まないようにするとかしないと。
叩き専門の人にとっては叩く必要もないほどへなちょこだけど
プログラムに日本語を含めないつくりはいいと思う。
プロでもソースのいたるところに日本語を埋め込む人はいるからね。
ぶっちゃけそれくらいしか褒めようがないんだけどw
nullぽっぽはもしかしてOperaメインなの?
0622nobodyさん
2006/11/08(水) 21:25:25ID:???まずはuse strict及びuse warnings、
また-Tオプションを付けてエラーが出なくなってから来てください。
0623nobodyさん
2006/11/09(木) 02:37:09ID:???0624nobodyさん
2006/11/09(木) 05:11:43ID:Rlngnc6wありがとう ごぜ〜ますだ.
>>620
一応, 掲示板 CGI script (のつもり)
>デバッグする所ではない
言葉を間違えたかも ?
debug を他人に依頼するようでは問題外だと思っております.
動作はするけれど server 利用者に迷惑を書けるような
security hole に気づいていないかも知れない.
そんな問題があったら指摘して欲しかったですだ.
>>621
>変数の検査とか書き込む条件とかまったくないじゃん
おおせの通りです.
ようするに書きこみの部分を改良しなければならないのね ?
で, read.cgi の方は どうでしょう ?
人に迷惑を書けるような security hole が あったなら ご指摘くださいませ.
>CGIについて無学なのがバレバレです
弁解の余地もありません.
でも, 半端者の僕が言うのもアレですが
拾って来れるものには満足できなかったのら.
そもそも perl って できの悪い土台に無理な建て増しをした印象が...
>プログラムに日本語を含めないつくりはいいと思う
日本語を書きこむと文字化けするのでwww (僕の環境は一般的でない)
僕なりに いろいろ拾って来て解読を試みました.
その時, "皮肉にも comment が見通しを悪くしている" と思ったの.
徹底的に簡素化するのが先決だと...
> nullぽっぽはもしかしてOperaメインなの?
MacOS9.22 上で まともに動く Opera はなさそうです.
現在は WaMCom(Mozilla1.31+) がメインですだ.
動作確認に iCab, IE も立ち上げることがありますが,
あくまでも参考程度です.
>>622
メモメモ...
>>623
今では動作確認の参考程度ですだ.
改良されたかと思うと別の不具合が発生するのが許せません.
(これこそが最も知りたいところ)
量の制限は早急に対処したいと思いますが...
0627nobodyさん
2006/11/09(木) 16:01:13ID:???0629nobodyさん
2006/11/09(木) 19:51:53ID:???0630nobodyさん
2006/11/09(木) 22:54:18ID:???0631nobodyさん
2006/11/09(木) 23:12:35ID:???なにその英語はカッコイイ、日本語はダサいっていう中学生wwwww
それに、日本人なんだから直感的にわかりやすい日本語で注釈をつけておくのが、
あとを引き続く人へのマナーだと思うんだが。
0632nobodyさん
2006/11/09(木) 23:15:19ID:???まあ, 他人様に使ってもらおうとするのなら それなりの配慮が必要だろう.
しかし, 僕は自分のために作ったんだ.
最低限, 同じ server 利用者に迷惑を書けない配慮をすれば済む話なんだ.
僕が知りたかったのはその部分に問題があるかどうか なんだけど,
話は あらぬ方向に...
0634nobodyさん
2006/11/09(木) 23:45:04ID:???というかまずは普通の学校の勉強を頑張った方がいい.
0635nobodyさん
2006/11/09(木) 23:46:24ID:???> read(STDIN,$u,$ENV{'CONTENT_LENGTH'});
たとえ寝ぼけて他としてもこの一行を書いてしまうようでは CGI 書くのは辞め
た方がいい.
0636nobodyさん
2006/11/10(金) 03:57:46ID:???ただ、それは日本語に限った事じゃないな。
んじゃ〜ゴミでない script を書いてくらはい.
あっしは それを使わせていただきますだ. (イヒヒ)
>>635
>この一行を書いてしまうようでは CGI 書くのは辞めた方がいい
して, その理由は ?
それと read.cgi に security hole は ないのかどうかが知りたいのだけどなぁ.
-------------------------------------------------------------------
なんだか僕の質問に きちんと答えた回答はない.
ここを当てにした僕が愚か者ってことですかい ?
0638nobodyさん
2006/11/10(金) 07:10:46ID:???>>この一行を書いてしまうようでは CGI 書くのは辞めた方がいい
>して, その理由は ?
セキュリティホールになるから.理由は自分の頭で考えなさい.
>それと read.cgi に security hole は ないのかどうかが知りたいのだけどなぁ.
当然ある.
0639nobodyさん
2006/11/10(金) 07:14:05ID:???よく分かっていないようだからキミがすべきことを具体的に言おう。
スクリプト冒頭の#!/usr/local/bin/perlを、
#!/usr/local/bin/perl -T
use strict;
use warnings;
に書き換えてデバッグしなさい。
0640nobodyさん
2006/11/10(金) 11:09:25ID:???0641nobodyさん
2006/11/10(金) 11:30:01ID:???>>638でドットを使ったり、
キモチワルイ。流行ってるのか?
というかプログラマのくせに
「、」や「。」の代わりに「,」「.」使う奴って
なんだかなぁ…
0642nobodyさん
2006/11/10(金) 11:46:05ID:???この一行は書いてもいいよ。その前の行で$ENV{'CONTENT_LENGTH'}の最大値を
決めてチェックしていればね。
0643606
2006/11/10(金) 12:23:56ID:???人に物事を頼む態度じゃないよね?
こっちはみんな善意で見てるってこと忘れてる?
嫌なら他行ったら?
最初に自分で書いてたみたいだけど、他人のソースのつぎはぎスクリプトでしょ?
何の価値があるの?
まずはダサくてもきちんと問題なく動く物を作ることからじゃない?
利用者のことを考えないスクリプトなんて糞だと思います。
0644606
2006/11/10(金) 12:26:14ID:???どうにもならんのでしばらく放置〜
まだ様子見てくれてる人とかいるのだろうか・・・
もし居たら感謝
0645nobodyさん
2006/11/10(金) 14:20:19ID:???なぜ共用サーバーで使おうと思えるのか、その神経が理解できない。
プログラムよりも、その意識や存在自体が危険。
0646nobodyさん
2006/11/10(金) 16:16:14ID:???>なんだか僕の質問に きちんと答えた回答はない
「きちんと答えた回答」があることにさえ気付けてないだけ。
自分の無知を棚に上げておきながら、
コードに目を通してマジレスしてくれた住人に対して
>ここを当てにした僕が愚か者ってことですかい?
とは随分とご挨拶だな。
ま、オレが見た限りでは
お前の掲示板CGIscriptには何のsecurity holeもないよ。
安心して使って良い。オレが保証する。
0648nobodyさん
2006/11/10(金) 19:08:49ID:???ということを◆.PT9876/4Uは考えてみた方が良い。
645も指摘してる通り、今の時点では自分にその言葉が正しいのかどうかすらも
判断できないのに、共用サーバーで自作CGIを使おうとしていることがどれだけ危険か考えてみろ。
極端なことを言えば、それらしい説明があって「これを書き足した方が良い」と言われれば、
それが危険なコードであっても追記してしまうんじゃないのか?
少なくともこれだけマジレスしてくれたり
お世辞にも読みやすいとは言えないようなコードを読んでくれただけでも感謝すべきなのに
「まずこれをやれ」と言われたことはやらず、
自分のレベルの低さを指摘されると反省するどころか逆ギレして
637のような皮肉と煽りに満ちたようなレスしかできないことを恥ずかしいとは思わないのか?
(突っ込まれると思った global variable の突っ込みは なぜかないのね)
>>639
なるほろ...
さっそく確かめてみますだ〜.
>>642
おありがとうごぜますだ〜.
0651nobodyさん
2006/11/10(金) 19:36:37ID:???0652nobodyさん
2006/11/10(金) 20:12:51ID:???0653nobodyさん
2006/11/10(金) 20:53:05ID:???スクリプトが見れないし何の事を言ってるのかわからんち。
>>641
理系の論文はそういう仕様らしいぞ。
0654nobodyさん
2006/11/10(金) 20:57:05ID:???気持ち悪がるのは専門学校程度しか行けなかったやつか基本をろくに知らない文系プログラマじゃね?
0655nobodyさん
2006/11/10(金) 21:14:08ID:???いつから自分の投稿を論文調で発表する場になったんだ?
とりあえず、読みづらい。
読み手を考えないのは、物づくりで使い手を考えないのと同じ。
邪魔
0656nobodyさん
2006/11/10(金) 21:28:17ID:???0657nobodyさん
2006/11/10(金) 21:39:13ID:???ウザイのは句読点じゃなくてnullの存在なだけなんだし。
■ このスレッドは過去ログ倉庫に格納されています