知り合いにWEBショップ作ってくれと頼まれたのは良いけど、
フリーのショッピングカートCGIは設置は簡単でも、商品の登録
とかが手作業だったりで使い勝手が悪いです。
で、短絡的に「自分で作ってみようか」と思っているのですが・・・・
Perlも、いやプログラミングさえ未経験。「必ずわかるCGI」と
その他の入門書で何とか「掲示板」の仕組みがようやく理解できました。
やっぱ、無謀ですかねぇ・・・・・・
☆ショッピングカートのCGIを作りたい!Perlで☆
1無謀者
02/01/10 19:53ID:XY4Txmil02/02/09 14:58ID:???
>>306
<input>タグでできる。
<input>タグでできる。
02/02/09 18:56ID:???
309無謀者
02/02/09 19:23ID:??? 皆様いつもありがとうございます。
商品ページ作成部分が若干出来たのでウプしました。
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
から入れます。パスワードは「123」です。
今のところ、商品カテゴリーの作成と商品の追加しか動きません。
カテゴリーを追加した後に商品を追加する事になります。既存のカテゴリーは
「商品群1」と「商品群2」です。
商品群1の内容は
ttp://cgitest.s7.xrea.com/cgi-bin/main.cgi?mode=show&fname=test
で
商品群2の内容は
ttp://cgitest.s7.xrea.com/cgi-bin/main.cgi?mode=show&fname=test2
で見られます。
カテゴリーを新規作成の際のファイル名は拡張子無しで。新しく作ったカテゴリーの
内容を見るときは
ttp://cgitest.s7.xrea.com/cgi-bin/main.cgi?mode=show&fname=”作成時につけたファイル名”
できるはずです。
商品ページ作成部分が若干出来たのでウプしました。
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
から入れます。パスワードは「123」です。
今のところ、商品カテゴリーの作成と商品の追加しか動きません。
カテゴリーを追加した後に商品を追加する事になります。既存のカテゴリーは
「商品群1」と「商品群2」です。
商品群1の内容は
ttp://cgitest.s7.xrea.com/cgi-bin/main.cgi?mode=show&fname=test
で
商品群2の内容は
ttp://cgitest.s7.xrea.com/cgi-bin/main.cgi?mode=show&fname=test2
で見られます。
カテゴリーを新規作成の際のファイル名は拡張子無しで。新しく作ったカテゴリーの
内容を見るときは
ttp://cgitest.s7.xrea.com/cgi-bin/main.cgi?mode=show&fname=”作成時につけたファイル名”
できるはずです。
310無謀者
02/02/09 20:31ID:??? あ、今現在新規商品作成時に指定したオプション項目は反映されません。
「,」で区切って入力してもらって、そこからセレクトボックス生成させる
のを今作ってます。
「,」で区切って入力してもらって、そこからセレクトボックス生成させる
のを今作ってます。
02/02/10 16:31ID:???
うーん、せっかく上手くいっているところに水を差すようだが、
URIでパスワード指定やっちゃうと、認証もクソもないぜ。
URIがバレた時点でソッコーで改ざんされっぞ。
googleツールバーの高機能版では閲覧中のURI自動通知されちまうしな。
「登録しました」のページに「メニューに戻る」ボタンをつけて、
hidden渡しじゃだめなんかい?
どうしてもrefreshでやりたいなら、refererとってCGIと認証ページからの
アクセスのみ許可するとかやってやんねーと。
URIでパスワード指定やっちゃうと、認証もクソもないぜ。
URIがバレた時点でソッコーで改ざんされっぞ。
googleツールバーの高機能版では閲覧中のURI自動通知されちまうしな。
「登録しました」のページに「メニューに戻る」ボタンをつけて、
hidden渡しじゃだめなんかい?
どうしてもrefreshでやりたいなら、refererとってCGIと認証ページからの
アクセスのみ許可するとかやってやんねーと。
312無謀者
02/02/10 20:00ID:??? >>311
確かにそれは思ったんですけど、一応pass入れたあとの管理者用画面だから
大丈夫かな・・・と考えてたんですが・・・・・
hiddenで入れてもソース見ればそのままpassが見えちゃうわけですし・・・・
確かにそれは思ったんですけど、一応pass入れたあとの管理者用画面だから
大丈夫かな・・・と考えてたんですが・・・・・
hiddenで入れてもソース見ればそのままpassが見えちゃうわけですし・・・・
313311
02/02/10 23:43ID:??? >>312
postで(formから)passが入ってこないときadmin.cgiがエラーメッセージ吐いて
終了するようにすりゃいいんだよ。したら、URIがバレても簡単にはアクセスでき
ないだろ?
#!/usr/bin/perl
require 'cgi-lib.pl';
my $method=$ENV{REQUEST_METHOD};
$pass='123';
&ReadParse(*form);
if ($form{'pass'} ne $pass or $method ne 'post'){ #passミスマッチとGET拒否
print "Content-type: text/plain\n\nForbidden.";
exit;
}
#──以下処理。formを吐く場合は必ず
#<input type=hidden name=pass value=$pass>を仕込む
GET全拒否しちまってるけど、たとえば、こうよ。
>hiddenで入れてもソース見ればそのままpassが見えちゃうわけですし・・・・
上みたいな処置しときゃadmin.cgiにマトモにソースを吐かせるのに絶対にpostで
pass渡さなきゃいけねーから、過信は禁物だがpassを知らない限りソースも見れん
ワケよ。admin.htmにはpass書くわけじゃねーんだしさ。
#漏れはCGI.pm詳しくないんだが、CGI.pmでpostとgetの読み分けは出来んのかなあ。
#詳しい奴フォロータノム
後、>>311でも書いたがrefererとって
ttp://cgitest.s7.xrea.com/cgi-bin/admin.cgi
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
以外からのアクセスは弾いちまえばいいんだよ。
postで(formから)passが入ってこないときadmin.cgiがエラーメッセージ吐いて
終了するようにすりゃいいんだよ。したら、URIがバレても簡単にはアクセスでき
ないだろ?
#!/usr/bin/perl
require 'cgi-lib.pl';
my $method=$ENV{REQUEST_METHOD};
$pass='123';
&ReadParse(*form);
if ($form{'pass'} ne $pass or $method ne 'post'){ #passミスマッチとGET拒否
print "Content-type: text/plain\n\nForbidden.";
exit;
}
#──以下処理。formを吐く場合は必ず
#<input type=hidden name=pass value=$pass>を仕込む
GET全拒否しちまってるけど、たとえば、こうよ。
>hiddenで入れてもソース見ればそのままpassが見えちゃうわけですし・・・・
上みたいな処置しときゃadmin.cgiにマトモにソースを吐かせるのに絶対にpostで
pass渡さなきゃいけねーから、過信は禁物だがpassを知らない限りソースも見れん
ワケよ。admin.htmにはpass書くわけじゃねーんだしさ。
#漏れはCGI.pm詳しくないんだが、CGI.pmでpostとgetの読み分けは出来んのかなあ。
#詳しい奴フォロータノム
後、>>311でも書いたがrefererとって
ttp://cgitest.s7.xrea.com/cgi-bin/admin.cgi
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
以外からのアクセスは弾いちまえばいいんだよ。
314無謀者
02/02/11 02:03ID:??? ちょっと機能追加
登録済み商品の修正が出来るようになりました。
>商品登録テストしてくれて人
今のところ、文字置換やエラー処理全然いれて無いので、コメントのところで
改行入れるたり、新規ページ作成時に、ファイル名入れないと、データボロボロになります(汗
明日(今日か・・)必要フォーム項目未記入時のエラー処理と、改行その他、文字列の
置換処理を出来るようにします。
>>311=313
なるほど・・・・と入っても、いまいち管理用画面でのその辺のセキュリティの必要性が
理解できて無いんですが・・・・・
どっちにrefererとって弾く事だけはやっておいた方がよさそうですね。
登録済み商品の修正が出来るようになりました。
>商品登録テストしてくれて人
今のところ、文字置換やエラー処理全然いれて無いので、コメントのところで
改行入れるたり、新規ページ作成時に、ファイル名入れないと、データボロボロになります(汗
明日(今日か・・)必要フォーム項目未記入時のエラー処理と、改行その他、文字列の
置換処理を出来るようにします。
>>311=313
なるほど・・・・と入っても、いまいち管理用画面でのその辺のセキュリティの必要性が
理解できて無いんですが・・・・・
どっちにrefererとって弾く事だけはやっておいた方がよさそうですね。
315無謀者
02/02/11 02:16ID:??? ところで、今回、新規データ入力時に
@data=($no,$hoge,$mona,$gik)
$line=join("\t",@data);
open(FH,$file);
@logdata=<FH>;
close(FH);
open(WRITE,">$file");
print WRITE $line;
print WRITE @logdata;
close(WRITE);
として、新しいものが上に来るようにしました。
で商品修正時にココの前で教えてもらった方法2の応用で
@newdata=($no,$hoge,$mona,$gik);
$line=join("\t",@data);
open(IN,"$file");
open(TMP,">$temp");
print TMP "$line;
while(<IN>){
my @cell = split/\t/;
if($cell[0] ne "$no"){
print TMP;
}
}
rename($temp,$file)
ってやってるんですが、この方法だと、修正したファイルがデータの一番上(一行目)に
来ちゃうんですよね(そういう風にしてるんですが)
これって、たとえば4行目のデータだったら、また同じ所にかき戻す方法ってどうやれば良いんですか?
if($cell[0] ne "$no"){
print TMP;
の後に
if($cell[0] eq "$no"){
printTMP $line;
でうまくいかなかったです。書く位置がまずかったんでしょうか?
@data=($no,$hoge,$mona,$gik)
$line=join("\t",@data);
open(FH,$file);
@logdata=<FH>;
close(FH);
open(WRITE,">$file");
print WRITE $line;
print WRITE @logdata;
close(WRITE);
として、新しいものが上に来るようにしました。
で商品修正時にココの前で教えてもらった方法2の応用で
@newdata=($no,$hoge,$mona,$gik);
$line=join("\t",@data);
open(IN,"$file");
open(TMP,">$temp");
print TMP "$line;
while(<IN>){
my @cell = split/\t/;
if($cell[0] ne "$no"){
print TMP;
}
}
rename($temp,$file)
ってやってるんですが、この方法だと、修正したファイルがデータの一番上(一行目)に
来ちゃうんですよね(そういう風にしてるんですが)
これって、たとえば4行目のデータだったら、また同じ所にかき戻す方法ってどうやれば良いんですか?
if($cell[0] ne "$no"){
print TMP;
の後に
if($cell[0] eq "$no"){
printTMP $line;
でうまくいかなかったです。書く位置がまずかったんでしょうか?
316297(=259)
02/02/11 03:41ID:??? $noは数値だよね?
なら、
while(<IN>){
my @cell = split/\t/;
$_ = $line if $cell[0] == $no;
print TMP;
}
で数値評価したらどうかな?
なんとなくだけど、$cell[0]か$noに空白とか含まれてそうだったんで。
なら、
while(<IN>){
my @cell = split/\t/;
$_ = $line if $cell[0] == $no;
print TMP;
}
で数値評価したらどうかな?
なんとなくだけど、$cell[0]か$noに空白とか含まれてそうだったんで。
317無謀者
02/02/11 18:26ID:??? >>316
うまくいきました。ありがとうございます<IN>
で変数が$_に入ってるってのがすっかり頭から飛んでました・・
ところで、正規表現なんですが、たとえば$priceに半角数字以外(「,」とか)が入ってた場合に
エラーを表示させるのって
if ($price eq ~/\D/){
print "価格はカンマ無しの半角数字で入力してください";
}
で良いんですよね?
うまくいきました。ありがとうございます<IN>
で変数が$_に入ってるってのがすっかり頭から飛んでました・・
ところで、正規表現なんですが、たとえば$priceに半角数字以外(「,」とか)が入ってた場合に
エラーを表示させるのって
if ($price eq ~/\D/){
print "価格はカンマ無しの半角数字で入力してください";
}
で良いんですよね?
318名無しさん@お腹いっぱい。
02/02/11 22:44ID:+mlK3wYT >>317
全然違う。検索は $scalor =~ /$hoge/; だぞ。
if ($price =~ /\D/) {
print "価格はカンマ無しの半角数字で入力してください";
}
まあがんばれ。
全然違う。検索は $scalor =~ /$hoge/; だぞ。
if ($price =~ /\D/) {
print "価格はカンマ無しの半角数字で入力してください";
}
まあがんばれ。
319無謀者
02/02/11 23:18ID:??? ↑の通りに書いてみたら,半角数字も弾かれちゃいました・・・・・
02/02/11 23:24ID:???
321無謀者
02/02/11 23:28ID:??? そうだと思うんですが・・・・
だから
$price=~/\D/;
だと「$priceに数字以外のものが含まれていれば」
って事になりますよね?
だから
$price=~/\D/;
だと「$priceに数字以外のものが含まれていれば」
って事になりますよね?
02/02/11 23:32ID:???
だから半角数字だけならエラーにならないんじゃ?
323無謀者
02/02/11 23:34ID:??? のはずなんですが・・・・弾かれちゃうんですよ・・・
もう一度ソース見直してみます。
もう一度ソース見直してみます。
02/02/11 23:35ID:???
ってかさ、数字以外は取り除けばいいんでない?
そっちの方がユーザーライクだと思うが。
$price =~ tr/0-9//cd;
そっちの方がユーザーライクだと思うが。
$price =~ tr/0-9//cd;
02/02/11 23:38ID:???
326無謀者
02/02/11 23:40ID:??? それも考えたんですが、全角数字入れられた時の対応も一緒に
やっちゃおうと思ったので。
やっちゃおうと思ったので。
327無謀者
02/02/11 23:44ID:??? >325
そう思って
[\D\s\t]とかもやってみたんですが・・・ダメ
そう思って
[\D\s\t]とかもやってみたんですが・・・ダメ
02/02/11 23:48ID:???
適当なファイルに書き出して見てみたら?
CGI::Carpとかでハンドルしてるなら warnや dieで見てもいいけど。
CGI::Carpとかでハンドルしてるなら warnや dieで見てもいいけど。
329名無しさん@お腹いっぱい。
02/02/11 23:52ID:pHWWFybw もうめんどくせえから、全部最初からやり直せ!!
330297
02/02/11 23:52ID:??? そうか、上手く逝ったか。漏れこのスレ、検証してないやつばっか(297とか^^;)
書いてるから、ちょっと心配してるんだな。
> で変数が$_に入ってるってのがすっかり頭から飛んでました・・
慣れると便利なんだよ、デフォルト変数$_。
はまると怖いけどね。
で、正規表現検索は相手が文字列でも
if ($price =~ /\D/)・・・
だよ。
書いてるから、ちょっと心配してるんだな。
> で変数が$_に入ってるってのがすっかり頭から飛んでました・・
慣れると便利なんだよ、デフォルト変数$_。
はまると怖いけどね。
で、正規表現検索は相手が文字列でも
if ($price =~ /\D/)・・・
だよ。
331無謀者
02/02/11 23:52ID:??? えっと、上記の処理より前に
if ($price eq ""){
print"error"
}
・
・
#その他変数の未記入チェック
・
・
ってやってから上の処理やってるんですけど、その辺は関係あります?
一応、未記入のエラーはちゃんと表示されます。
で、上記の検索を書くと、数値だろうがなんだろうが弾かれちゃう・・・
if ($price eq ""){
print"error"
}
・
・
#その他変数の未記入チェック
・
・
ってやってから上の処理やってるんですけど、その辺は関係あります?
一応、未記入のエラーはちゃんと表示されます。
で、上記の検索を書くと、数値だろうがなんだろうが弾かれちゃう・・・
332無謀者
02/02/11 23:59ID:??? うわ、
if ($price =~ /\D/){
print "$price";
}
ってやったら、入力したのと違う数字が出てきた・・・・・
この数字どっから来たんだろ???
198000って入力したのに429467294って・・・たかどんな数字入れても
おんなじ数字が吐き出されてる????何でだ?
ちなみに置換処理を無くして実行すると、ファイルにはちゃんと入力した
数字が書き込まれてます。
if ($price =~ /\D/){
print "$price";
}
ってやったら、入力したのと違う数字が出てきた・・・・・
この数字どっから来たんだろ???
198000って入力したのに429467294って・・・たかどんな数字入れても
おんなじ数字が吐き出されてる????何でだ?
ちなみに置換処理を無くして実行すると、ファイルにはちゃんと入力した
数字が書き込まれてます。
333297
02/02/12 00:02ID:??? >>330
うわ、とっくに話題が過ぎ去ってやがる。リフレ忘れた。鬱打
&jcode::tr(\$price, '0-9', '0-9'); #全角数字を半角に変換
if ($price !~ /0-9/){
print "価格はカンマ無しの半角数字で入力してください";
}
あたりではどうかな?
うわ、とっくに話題が過ぎ去ってやがる。リフレ忘れた。鬱打
&jcode::tr(\$price, '0-9', '0-9'); #全角数字を半角に変換
if ($price !~ /0-9/){
print "価格はカンマ無しの半角数字で入力してください";
}
あたりではどうかな?
334名無しさん@お腹いっぱい。
02/02/12 00:06ID:r54lTbCX335無謀者
02/02/12 00:07ID:??? え〜〜〜〜
解決したっぽいです・・・
どうやら、使ってるエディタにバグがあるらしく、上書き保存するとなぜか
s-jisで保存されてたっぽい、のが原因みたいです。(設定はEUCにしてるのですが)
お騒がせして本当に申し訳ありませんでした・・・・m(__)m
エディタ変えようかな・・・・・
解決したっぽいです・・・
どうやら、使ってるエディタにバグがあるらしく、上書き保存するとなぜか
s-jisで保存されてたっぽい、のが原因みたいです。(設定はEUCにしてるのですが)
お騒がせして本当に申し訳ありませんでした・・・・m(__)m
エディタ変えようかな・・・・・
336名無しさん@お腹いっぱい。
02/02/12 00:09ID:r54lTbCX >>335
俺はいまだにメモ帳使ってるぞ。メモ帳最強。
俺はいまだにメモ帳使ってるぞ。メモ帳最強。
337無謀者
02/02/12 00:12ID:??? あと、
>&jcode::tr(\$price, '0-9', '0-9'); #全角数字を半角に変換
jcodeでこんな事も出来るんですね。フォームデータ受け取り時に
h2zでカタカナは全部置換させてるんですが、そこで数値にしなければならない
変数も全部変換掛けといた方がよさそうですね。
とりあえずご迷惑したお詫びに町内10周走ってきます。
>&jcode::tr(\$price, '0-9', '0-9'); #全角数字を半角に変換
jcodeでこんな事も出来るんですね。フォームデータ受け取り時に
h2zでカタカナは全部置換させてるんですが、そこで数値にしなければならない
変数も全部変換掛けといた方がよさそうですね。
とりあえずご迷惑したお詫びに町内10周走ってきます。
338無謀者
02/02/12 01:01ID:??? 皆様の暖かいご支援のおかげで、
新規ページの追加、商品の登録、編集、削除
までできるようになりました。また
「簡易商品ページメニュー」を作り、そこから商品ページにアクセス
出来るようにしました。(管理画面の中)
ココに表示されるURLをコピペすれば、使う人は、メニューページを
自由に作れるのでは無いかと・・・・
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
パスワードは123です。
ある程度のエラー処理と文字列置換は入れたつもりなのですが・・・・
新規ページの追加、商品の登録、編集、削除
までできるようになりました。また
「簡易商品ページメニュー」を作り、そこから商品ページにアクセス
出来るようにしました。(管理画面の中)
ココに表示されるURLをコピペすれば、使う人は、メニューページを
自由に作れるのでは無いかと・・・・
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
パスワードは123です。
ある程度のエラー処理と文字列置換は入れたつもりなのですが・・・・
02/02/12 02:46ID:???
340311
02/02/12 05:58ID:??? >>314
>いまいち管理用画面でのその辺のセキュリティの必要性が理解できて無いんですが・・・・・
だーかーらー、http://うんちゃらかんちゃら/admin.cgi?mode=login&pass=xxxって
URIがばれちまったらイッパツで商品ページ改ざんされちゃうだろっていってんの。
PasswordをGETに含めるのはヤバいんだって。直リンオッケーだしな。
知り合いとはいえ金絡んでやってんだろ?しっかりしろよ。
商品価格書き換えられたところに注文とか去れちまったら大損害だろ?
URIバレた瞬間にPasswordもってかれちまうんだから、ほんとはPOSTがいいんだけどな、
せめてリファラチェック(GETメソッドはCGI自身からのアクセスみ許可)と、
本稼動のときは変な名前のディレクトリ作って、cgi本体の名前からは予想も出来ねー
よーな名前でrobotよけのMETAつけた認証ページ設置するぐらいの対策はぐらいはしとけよ。
>いまいち管理用画面でのその辺のセキュリティの必要性が理解できて無いんですが・・・・・
だーかーらー、http://うんちゃらかんちゃら/admin.cgi?mode=login&pass=xxxって
URIがばれちまったらイッパツで商品ページ改ざんされちゃうだろっていってんの。
PasswordをGETに含めるのはヤバいんだって。直リンオッケーだしな。
知り合いとはいえ金絡んでやってんだろ?しっかりしろよ。
商品価格書き換えられたところに注文とか去れちまったら大損害だろ?
URIバレた瞬間にPasswordもってかれちまうんだから、ほんとはPOSTがいいんだけどな、
せめてリファラチェック(GETメソッドはCGI自身からのアクセスみ許可)と、
本稼動のときは変な名前のディレクトリ作って、cgi本体の名前からは予想も出来ねー
よーな名前でrobotよけのMETAつけた認証ページ設置するぐらいの対策はぐらいはしとけよ。
02/02/12 06:25ID:???
>340
robotよけのメタは、誰も見ていないです。きっと。
robotよけのメタは、誰も見ていないです。きっと。
342無謀者
02/02/12 13:16ID:??? >340
詳しい説明ありがとうございます。リフレッシュを止めて、フォームボタンで
hiddenを渡し、リファラチェックも入れるようにします。
ところで、一つのサブミットボタンで二つ以上のアクションを指定する事って
出来るんでしょうか?たとえば
<form method=post action=hoge.cgi>
<form method=post action=hage.cgi>
<input ...
<input....
<input type=submit value=OK>
</form>
</form>
とかやっておけば、submit押した時に、両方にフォームの内容が送られるんでしょうか?
詳しい説明ありがとうございます。リフレッシュを止めて、フォームボタンで
hiddenを渡し、リファラチェックも入れるようにします。
ところで、一つのサブミットボタンで二つ以上のアクションを指定する事って
出来るんでしょうか?たとえば
<form method=post action=hoge.cgi>
<form method=post action=hage.cgi>
<input ...
<input....
<input type=submit value=OK>
</form>
</form>
とかやっておけば、submit押した時に、両方にフォームの内容が送られるんでしょうか?
02/02/12 18:27ID:???
むり(やったことないけど)。
仮に出来たとして、ブラウザはどっちに応答すればいいのさ。
仮に出来たとして、ブラウザはどっちに応答すればいいのさ。
02/02/12 21:09ID:???
>>342
二つ以上アクションさせたい場合はhiddenでvalueを送ってスクリプト
のなかのifで受ける。
例:
<form method=post action=hage.cgi>
<input type=hidden name=action value=hoge>
<input type=hidden name=action value=hage>
<input type=submit value=OK>
</form>
〜hage.cgi〜
if ($DATA{'action'} eq 'hoge') {
*******************
}
if ($DATA{'action'} eq 'hage') {
*******************
}
二つ以上アクションさせたい場合はhiddenでvalueを送ってスクリプト
のなかのifで受ける。
例:
<form method=post action=hage.cgi>
<input type=hidden name=action value=hoge>
<input type=hidden name=action value=hage>
<input type=submit value=OK>
</form>
〜hage.cgi〜
if ($DATA{'action'} eq 'hoge') {
*******************
}
if ($DATA{'action'} eq 'hage') {
*******************
}
346無謀者
02/02/13 01:26ID:??? う〜ん、注文が確定した時(メールを送信する直前)にカートに入ってる
各商品の注文数を、商品ごとに各商品ファイルと照合して、注文数>在庫数
又は在庫数=0ならエラー、もし注文数<在庫数なら、「在庫数ー注文数」して
商品ファイル内の該当商品の在庫数を修正・・・・・
それぞれの処理は、今まで教えていただいた事でかけそうなんですが、データの抽出、条件分岐が非常に複雑になりそうです。
各商品の注文数を、商品ごとに各商品ファイルと照合して、注文数>在庫数
又は在庫数=0ならエラー、もし注文数<在庫数なら、「在庫数ー注文数」して
商品ファイル内の該当商品の在庫数を修正・・・・・
それぞれの処理は、今まで教えていただいた事でかけそうなんですが、データの抽出、条件分岐が非常に複雑になりそうです。
02/02/13 05:09ID:???
>>346
それって全然簡単じゃない?例としては
if ($ORDER{'mona'} > $ZAIKO{'mona'}) {
print "申し訳ありません。只今$ORDER{'mona'}は在庫を切らしております。\n";
} else {
$ZAIKO{'mona'} -= $ORDER{'mona'}
}
こんな場合こそ、パール独特の変数、ハッシュが力を発揮する時だよ。
ハッシュを上手く使ってね。
それって全然簡単じゃない?例としては
if ($ORDER{'mona'} > $ZAIKO{'mona'}) {
print "申し訳ありません。只今$ORDER{'mona'}は在庫を切らしております。\n";
} else {
$ZAIKO{'mona'} -= $ORDER{'mona'}
}
こんな場合こそ、パール独特の変数、ハッシュが力を発揮する時だよ。
ハッシュを上手く使ってね。
348無謀者
02/02/13 10:05ID:??? >347
えっと、カートの中身が複数だった場合商品によって、格納されているファイルがそれぞれ違うので
まずforeachとかで順にカートの中身を取り出しながら商品の格納されているファイルを、検索(hidenでファイル名を渡してある)して、見つかったファイル名をまたforeachなりwhileなりで
検索して、商品名がマッチしたら在庫数と注文数を比較、それで0か足りない場合は
エラー、もし大丈夫なら、在庫数から注文数を引いて、ファイルに書き直し・・・・
みたいな事をやらなければダメな気がするんですが・・・
えっと、カートの中身が複数だった場合商品によって、格納されているファイルがそれぞれ違うので
まずforeachとかで順にカートの中身を取り出しながら商品の格納されているファイルを、検索(hidenでファイル名を渡してある)して、見つかったファイル名をまたforeachなりwhileなりで
検索して、商品名がマッチしたら在庫数と注文数を比較、それで0か足りない場合は
エラー、もし大丈夫なら、在庫数から注文数を引いて、ファイルに書き直し・・・・
みたいな事をやらなければダメな気がするんですが・・・
349297
02/02/13 12:22ID:??? @files=glob "$dir/*.dat"; # $dirはディレクトリ名。*.datのlistを得る
foreach $file(@files){
open FILE,$file or &error;
while(<FILE>){
my($no, $hinmei, $zaiko・・・) = split /\t/; #左辺のmyのリストは適当に
$zaiko{"$file::$hinmei"} = $zaiko;
}
close FILE;
}
とかやって%zaiko{"ファイル名::品名"}(%zaiko{"ファイル名::商品番号"}?)に
代入して、%zaikoに対しデクリメント。
>>347さんの言うとおりhashならサーチ用にループしなくてイイからね。
で、
foreach $file(@files){
open FILE,$file or &error;
open TMP,">$temp" or &error;
while(<FILE>){
my(@dummy) = split /\t/;
@dummy[2] = $zaiko{"$file::$hinmei"} if exists $zaiko{"$file::$hinmei"}; #$dummy[2]は適宜変更
print TMP @dummy;
}
close FILE;
close TMP;
rename $temp,$file;
}
とかやって戻してやるってのはどうかな?
あ、ここまでやって思いついたが、カートの中身を
%cart{ファイル名::商品名}=注文数
ってハッシュにして、後者の書き戻しループで在庫チェックさせればイッパツだ。
そのほうがイイや。速いし。
foreach $file(@files){
open FILE,$file or &error;
while(<FILE>){
my($no, $hinmei, $zaiko・・・) = split /\t/; #左辺のmyのリストは適当に
$zaiko{"$file::$hinmei"} = $zaiko;
}
close FILE;
}
とかやって%zaiko{"ファイル名::品名"}(%zaiko{"ファイル名::商品番号"}?)に
代入して、%zaikoに対しデクリメント。
>>347さんの言うとおりhashならサーチ用にループしなくてイイからね。
で、
foreach $file(@files){
open FILE,$file or &error;
open TMP,">$temp" or &error;
while(<FILE>){
my(@dummy) = split /\t/;
@dummy[2] = $zaiko{"$file::$hinmei"} if exists $zaiko{"$file::$hinmei"}; #$dummy[2]は適宜変更
print TMP @dummy;
}
close FILE;
close TMP;
rename $temp,$file;
}
とかやって戻してやるってのはどうかな?
あ、ここまでやって思いついたが、カートの中身を
%cart{ファイル名::商品名}=注文数
ってハッシュにして、後者の書き戻しループで在庫チェックさせればイッパツだ。
そのほうがイイや。速いし。
350297
02/02/13 18:52ID:??? えーと、ちょっとヒマがあったんで上の追記を。
カートの中身を
$cart{ファイル名::商品名}=注文数 (注文がない場合は0でなくハッシュを生成しない)
ってハッシュにしてあるとして、
@files=glob "$dir/*.dat";
foreach $file(@files){
open FILE,$file or &error;
open TMP,">$temp" or &error;
while(<FILE>){
my(@data) = split /\t/;
my $key = "$file::$data[2]"; # $data[2]は商品名ね
if (exists $cart{$key}){
if ($data[1] < $cart{$key}){ #$dummy[1]は在庫
print "$data[2]は在庫が不足しています";
}else{
$data[1] -= $cart{$key};
}
}
print TMP @data;
}
close FILE;
close TMP;
rename $temp,$file;
}
で、読み出し→在庫チェック→在庫デクリメント→書き戻し
が1回で終わると思うんだな。
まあ例によって書きなぐりだから、globでファイルリストを取り出し、
cartをexistsで調べて在庫チェックとデクリメント処理する、
という流れだけ理解してもらえれば。
カートの中身を
$cart{ファイル名::商品名}=注文数 (注文がない場合は0でなくハッシュを生成しない)
ってハッシュにしてあるとして、
@files=glob "$dir/*.dat";
foreach $file(@files){
open FILE,$file or &error;
open TMP,">$temp" or &error;
while(<FILE>){
my(@data) = split /\t/;
my $key = "$file::$data[2]"; # $data[2]は商品名ね
if (exists $cart{$key}){
if ($data[1] < $cart{$key}){ #$dummy[1]は在庫
print "$data[2]は在庫が不足しています";
}else{
$data[1] -= $cart{$key};
}
}
print TMP @data;
}
close FILE;
close TMP;
rename $temp,$file;
}
で、読み出し→在庫チェック→在庫デクリメント→書き戻し
が1回で終わると思うんだな。
まあ例によって書きなぐりだから、globでファイルリストを取り出し、
cartをexistsで調べて在庫チェックとデクリメント処理する、
という流れだけ理解してもらえれば。
351無謀者
02/02/14 15:56ID:??? >>350=297さん
いつもありがとうございます。
せっかく、頂いたんですが、違う方法で実装できました。
次は「在庫がありません」だけではちょっと不親切なので「在庫が無いので買物カゴから削除しました」
と「在庫が足りないので$cyumon個を$zeiko個に変更しました」と表示して
カートの中身を書き換える機能を作成中です。一度に商品ファイルとカートファイルを
の二つをハンドルするので、ループ中の何処で、書き込んで、何処でテンポラリーファイルを
リネームするのかが、書いててわからなくなる・・・・(苦笑
スクリプト一行書くごとに、print"処理結果" and exit;で出力内容を確認しながら
進めてます
いつもありがとうございます。
せっかく、頂いたんですが、違う方法で実装できました。
次は「在庫がありません」だけではちょっと不親切なので「在庫が無いので買物カゴから削除しました」
と「在庫が足りないので$cyumon個を$zeiko個に変更しました」と表示して
カートの中身を書き換える機能を作成中です。一度に商品ファイルとカートファイルを
の二つをハンドルするので、ループ中の何処で、書き込んで、何処でテンポラリーファイルを
リネームするのかが、書いててわからなくなる・・・・(苦笑
スクリプト一行書くごとに、print"処理結果" and exit;で出力内容を確認しながら
進めてます
352無謀者
02/02/15 00:25ID:??? 買物を途中で止められた場合、datファイルが残ってしまっているので、それを
定期的に消したいんですが、たとえば最終更新時間から$time以上経過したら
削除させるのって
@files=glob("./cart/*.dat");
foreach(@files){
@info=stat $_;
$deltime=time-60*60*$time
if ($info[9] >$deltime){
unlink $_;
}
}
で、大丈夫ですか?
これを、買物終了時かなんかに実行されれば、誰かが買物を完了してくれたら自動的に
入らないファイルが消える、というふうにしようと思うんですが・・・・
statで得られる時間って time関数と同じで方式(1700年からの秒数?)ですか?
定期的に消したいんですが、たとえば最終更新時間から$time以上経過したら
削除させるのって
@files=glob("./cart/*.dat");
foreach(@files){
@info=stat $_;
$deltime=time-60*60*$time
if ($info[9] >$deltime){
unlink $_;
}
}
で、大丈夫ですか?
これを、買物終了時かなんかに実行されれば、誰かが買物を完了してくれたら自動的に
入らないファイルが消える、というふうにしようと思うんですが・・・・
statで得られる時間って time関数と同じで方式(1700年からの秒数?)ですか?
353無謀者
02/02/15 00:39ID:??? なんか誤字だらけ・・・
×入らないファイルが消える
○要らないファイルが消える
×入らないファイルが消える
○要らないファイルが消える
354297
02/02/15 01:39ID:??? おお、自力で実装できたか。ガンガン腕を上げていますね。
あとは欲張って機能拡張しすぎてスパゲッティにならんようにね。
statで得られるのはtimeとおなじ*1970年からの*通算秒だよ。
最終更新からの経過だけ調べるだけなら、ファイルテスト演算子-Mで
最終更新からの*経過日数*が得られるよ。
foreach(glob("./cart/*.dat")){
unlink if -M $_ > $time; # $timeは日数、0.5なら12時間
}
とか。
あとは欲張って機能拡張しすぎてスパゲッティにならんようにね。
statで得られるのはtimeとおなじ*1970年からの*通算秒だよ。
最終更新からの経過だけ調べるだけなら、ファイルテスト演算子-Mで
最終更新からの*経過日数*が得られるよ。
foreach(glob("./cart/*.dat")){
unlink if -M $_ > $time; # $timeは日数、0.5なら12時間
}
とか。
355無謀者
02/02/16 01:32ID:??? 画像のアップロードって、難しいですね・・・・
356名無しさん@お腹いっぱい。
02/02/16 15:01ID:BlI0w0O/ 大人のCGI(書籍)
ttp://www.byakuya-shobo.co.jp/hj21/otona/main.html
あたり読んで、パクれ。
今のお前ならもうこの本のスクリプトを解析、応用できるはずだ。
ttp://www.byakuya-shobo.co.jp/hj21/otona/main.html
あたり読んで、パクれ。
今のお前ならもうこの本のスクリプトを解析、応用できるはずだ。
357無謀者
02/02/16 16:40ID:??? 持ってたりします・・・>大人のCGI
実は他でソースパクってUpload.cgi作ったら動いた事は動いたんですが
それを、admin.cgiにサブルーチンとして埋め込むと動かなくなります。
そのソースは、CGI.pm使ってたんですが、enctype="multipart/form-data" で受け取ったデータを
ReadParseかけちゃってるのが問題なのかな?とか思ってたりするんですが、関係あります?
実は他でソースパクってUpload.cgi作ったら動いた事は動いたんですが
それを、admin.cgiにサブルーチンとして埋め込むと動かなくなります。
そのソースは、CGI.pm使ってたんですが、enctype="multipart/form-data" で受け取ったデータを
ReadParseかけちゃってるのが問題なのかな?とか思ってたりするんですが、関係あります?
358名無しさん@お腹いっぱい。
02/02/16 17:51ID:BlI0w0O/ そこだ。ファイルデータは生で扱え。
その動いたっちゅうUpload.cgiで、どこをパースしてどこを生で扱っているか
解析してみるのだ。この件に関して間違いのない文書はRFC1867。
その動いたっちゅうUpload.cgiで、どこをパースしてどこを生で扱っているか
解析してみるのだ。この件に関して間違いのない文書はRFC1867。
359無謀者
02/02/16 19:24ID:??? ちょっと、頭の中がテンパって来たので、気分転換で、管理画面のUIを整理しました。
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
各画面から必要なページに戻れるようにボタンをつけました。
あと、新規ページ作成時と、デザイン変更時に作成結果(変更結果)が確認できるようにしました。
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
各画面から必要なページに戻れるようにボタンをつけました。
あと、新規ページ作成時と、デザイン変更時に作成結果(変更結果)が確認できるようにしました。
02/02/16 20:34ID:???
うぷろだでわかんないってどの辺?よかったら書いてみ
361無謀者
02/02/16 22:34ID:??? なんか、今日xreaが調子悪くないですが?
私のPCのせいだろうか・・・・
私のPCのせいだろうか・・・・
02/02/17 01:51ID:???
しかし、1/10に
> Perlも、いやプログラミングさえ未経験。「必ずわかるCGI」と
> その他の入門書で何とか「掲示板」の仕組みがようやく理解できました。
んな事書いてた>>1が一ヶ月でここまで来るとは正直予想できなかった。
> Perlも、いやプログラミングさえ未経験。「必ずわかるCGI」と
> その他の入門書で何とか「掲示板」の仕組みがようやく理解できました。
んな事書いてた>>1が一ヶ月でここまで来るとは正直予想できなかった。
02/02/17 09:32ID:???
マジすごい! 無謀者さん
素直に感動しました
素直に感動しました
364名無しさん@お腹いっぱい。
02/02/17 10:54ID:FSHvXFjS 俺モジュール使え無い。つまり1にいつの間にか越された。ウツウツウツウツウツウツ。。
02/02/17 11:14ID:???
>356
そんなクソ本を紹介すんな。
誤字脱字だらけ&ヘタレすぎ。立ち読みしてて叩きつけたくなった。
そんなクソ本を紹介すんな。
誤字脱字だらけ&ヘタレすぎ。立ち読みしてて叩きつけたくなった。
02/02/17 11:50ID:???
367356
02/02/17 11:53ID:S4ml9rOy >>365
あれがクソ本だと言うのは構わないから、具体的にどのあたりのコードがヤバいとか、
他にいい本や資料、URIがあったら教えてやってくれ。
実践的で単機能のコードの量、カバーするCGIの範囲では間違いなく現在トップ
クラスの良書だ。
あれがクソ本だと言うのは構わないから、具体的にどのあたりのコードがヤバいとか、
他にいい本や資料、URIがあったら教えてやってくれ。
実践的で単機能のコードの量、カバーするCGIの範囲では間違いなく現在トップ
クラスの良書だ。
02/02/17 12:47ID:???
O'REILLYが出してる本ならまず間違いない・・・・・・高い&重いけど。
369無謀者
02/02/17 13:13ID:??? 久々にレスが沢山ついててちょっとビクーリ
さて、アプロダの件なんですが、今まではスクリプトの頭で
ReadParseかけちゃってて、multipart/form-data使うには
それがまずそう、というヒントを頂いたんですが、いまさら
ReadPaeseの前に
use CGI;
$query = new CGI;
$images=$query->param('gazou');
if ($images ne ""){
#処理
}
&ReadParse;
#今まで通り
で大丈夫なんですかね?要はReadparseはそのままでmultipart/form-dataで
受け取った特定の物だけCGI.pmで処理するというかんじになるかと思うんですが
さて、アプロダの件なんですが、今まではスクリプトの頭で
ReadParseかけちゃってて、multipart/form-data使うには
それがまずそう、というヒントを頂いたんですが、いまさら
ReadPaeseの前に
use CGI;
$query = new CGI;
$images=$query->param('gazou');
if ($images ne ""){
#処理
}
&ReadParse;
#今まで通り
で大丈夫なんですかね?要はReadparseはそのままでmultipart/form-dataで
受け取った特定の物だけCGI.pmで処理するというかんじになるかと思うんですが
370無謀者
02/02/17 13:15ID:??? また、日本語がおかしい・・・
×というヒントを頂いたんですが、いまさら
○というヒントを頂いたんですが、いまさらReadParse止められないので。
×というヒントを頂いたんですが、いまさら
○というヒントを頂いたんですが、いまさらReadParse止められないので。
02/02/17 15:58ID:???
それだと後ろの&ReadPaeseがコケる。POSTデータをCGI.pmが先に拾って
まうんやないかな。そんな妙なコード組んだことないから、いざやったら
出来てしまうんかも知れへんけど。
もうこの際CGI.pmで逝きゃええやんと思ふ(書き直しも大した手間じゃない)
けど、まぁ何にせよcgi-lib.plで逝くと決めたんやから、動くコードが落ちて
たからといって場当たりで手を広げるもんやない。
cgi-lib.plを用いたファイルアップロードのサンプル
ttp://cgi-lib.berkeley.edu/ex/perl5/fup.html
と、そのソースや。
ttp://cgi-lib.berkeley.edu/ex/perl5/fup.cgi.txt
読め。ほどけ。取り入れろ。
まうんやないかな。そんな妙なコード組んだことないから、いざやったら
出来てしまうんかも知れへんけど。
もうこの際CGI.pmで逝きゃええやんと思ふ(書き直しも大した手間じゃない)
けど、まぁ何にせよcgi-lib.plで逝くと決めたんやから、動くコードが落ちて
たからといって場当たりで手を広げるもんやない。
cgi-lib.plを用いたファイルアップロードのサンプル
ttp://cgi-lib.berkeley.edu/ex/perl5/fup.html
と、そのソースや。
ttp://cgi-lib.berkeley.edu/ex/perl5/fup.cgi.txt
読め。ほどけ。取り入れろ。
372名無しさん@お腹いっぱい。
02/02/18 07:41ID:THrW4CtS373無謀者
02/02/18 12:04ID:??? あぷろだはいまだ研究中で未実装ですが、今までずっと気になっていた
「同じ商品を買い足した場合」の処理を変更しました。
これで、あとはアプロダさえ実装できればほぼ完成かと・・・
「同じ商品を買い足した場合」の処理を変更しました。
これで、あとはアプロダさえ実装できればほぼ完成かと・・・
374無謀者
02/02/20 16:42ID:??? ようやくアプロダ実装完了しました・・・
商品画像、ページ背景画像、ページバナー、それぞれあぷろど可能です。
但し、実サイズで表示されますので、あまり大きい画像は・・・・・
というわけで久々にageさせていただきます。
ページメニュー
ttp://cgitest.s7.xrea.com/cgi-bin/menu.cgi
管理ログイン画面 pass=123
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
商品画像、ページ背景画像、ページバナー、それぞれあぷろど可能です。
但し、実サイズで表示されますので、あまり大きい画像は・・・・・
というわけで久々にageさせていただきます。
ページメニュー
ttp://cgitest.s7.xrea.com/cgi-bin/menu.cgi
管理ログイン画面 pass=123
ttp://cgitest.s7.xrea.com/cgi-bin/admin.htm
02/02/20 16:51ID:???
>374
トラフグ100円だったら買うよ。
トラフグ100円だったら買うよ。
02/02/20 16:53ID:???
いいかんじかな?
買い物かごの中をみる、を選択したときに、中身がある場合は常に
「精算する」というか、買い物フェーズに行くボタンが必要かなと思うけど。
買い物かごの中をみる、を選択したときに、中身がある場合は常に
「精算する」というか、買い物フェーズに行くボタンが必要かなと思うけど。
02/02/20 16:58ID:???
reply-to:ツ蟆・
この度はご注文ありがとうございます。このメールはご注文いただいた方に自動的に送信
される
確認メールです。追って店主よりご連絡致しますので、ご注文の内容をご確認の上、今し
ばらく
お待ちください
・・・メールが文字化けしているかな?
この度はご注文ありがとうございます。このメールはご注文いただいた方に自動的に送信
される
確認メールです。追って店主よりご連絡致しますので、ご注文の内容をご確認の上、今し
ばらく
お待ちください
・・・メールが文字化けしているかな?
02/02/20 23:11ID:???
menu.cgiが吐くMETA
<meta http-equiv=content-type content=text/html; chaset=EUC-JP>
になってるけど、
<meta http-equiv="Content-Type" CONTENT="text/html; charset=EUC-JP">
とクオートせんとばけちゃうよ。スペース入ってるから・・・
あと、「買い物を続ける」のリンク色が背景に溶けこんでて見にくいな。
ま、いずれも小さなことだ。よくやったね!
<meta http-equiv=content-type content=text/html; chaset=EUC-JP>
になってるけど、
<meta http-equiv="Content-Type" CONTENT="text/html; charset=EUC-JP">
とクオートせんとばけちゃうよ。スペース入ってるから・・・
あと、「買い物を続ける」のリンク色が背景に溶けこんでて見にくいな。
ま、いずれも小さなことだ。よくやったね!
02/02/21 02:27ID:???
ほんとよく頑張ったよね。
見習わなきゃと思いました。
見習わなきゃと思いました。
380無謀者
02/02/23 19:41ID:??? ページ作成時に既存の画像ファイルを使えるようにアプロダ以外にファイル名指定
を可能にしました。また、商品やページを書き換える際に画像を削除できなかったので
(てかそうしちゃうと弊害もありそうなので)画像管理用のメニューを用意して
必要無い画像ファイルを削除するプログラムを追加しました。
ひとまずこれで「完成」という事にさせていただこうかと思います。(V1.00)
ファイル名を変えたのでアクセス用URL変更になりました
ttp://cgitest.s7.xrea.com/cgi-bin/login.cgi
パスワードは123です。
さて調子に乗ってCGIZooあたりにシェアで登録してみようか・・とか思ってるのですが・・・・
を可能にしました。また、商品やページを書き換える際に画像を削除できなかったので
(てかそうしちゃうと弊害もありそうなので)画像管理用のメニューを用意して
必要無い画像ファイルを削除するプログラムを追加しました。
ひとまずこれで「完成」という事にさせていただこうかと思います。(V1.00)
ファイル名を変えたのでアクセス用URL変更になりました
ttp://cgitest.s7.xrea.com/cgi-bin/login.cgi
パスワードは123です。
さて調子に乗ってCGIZooあたりにシェアで登録してみようか・・とか思ってるのですが・・・・
381厨房
02/02/23 19:44ID:bztVw72v 顧客情報のファイルって、パーミッションを適切に設定しても覗けるんですか?
テキストじゃダメなんでしょうか。
テキストじゃダメなんでしょうか。
02/02/23 22:33ID:???
頑張ってるとは思うがシェアで登録するほどのものではないだろ。
まだね。
まだね。
383ぷうすけ
02/02/23 22:41ID:aACc4Jsl perlで、画像貼り付け可能な掲示板を作ろうと思ってます。
ユーザに、画像のURLを入力させて、遠隔地にある画像を
表示するわけです。このような場合に、その遠隔地にある画像の
サイズ(ピクセルサイズ)を取得することはできますか?
小さいサイズの画像に制限したいのです。画像ファイル(GIF)の
ヘッダ数バイトを取得できればいいのですが、もし可能ならば、
方法を教えてください!
ユーザに、画像のURLを入力させて、遠隔地にある画像を
表示するわけです。このような場合に、その遠隔地にある画像の
サイズ(ピクセルサイズ)を取得することはできますか?
小さいサイズの画像に制限したいのです。画像ファイル(GIF)の
ヘッダ数バイトを取得できればいいのですが、もし可能ならば、
方法を教えてください!
384名無しさん@お腹いっぱい。
02/02/24 00:57ID:XskoKYES02/02/24 01:37ID:???
画像はローカルじゃなくて別サーバーか。
一般的なサーバーにLWPは入ってないだろうから
単純にSocket開いてreadすればいいのでは。力技だけど。
あ、でもSocket自体普通のプロバイダじゃ使えなかったりするな・・・
そういえばPNGもサイズの位置は固定だね。
一般的なサーバーにLWPは入ってないだろうから
単純にSocket開いてreadすればいいのでは。力技だけど。
あ、でもSocket自体普通のプロバイダじゃ使えなかったりするな・・・
そういえばPNGもサイズの位置は固定だね。
02/02/24 20:49ID:???
「フリー」ウェアの精神は最近廃れているのだろうか。
自分を育ててくれたネットに対しての貢献というか恩返しというか、
後塵のために自分も・・・・・・まあいいや。
自分を育ててくれたネットに対しての貢献というか恩返しというか、
後塵のために自分も・・・・・・まあいいや。
02/02/24 22:41ID:???
シェアで置くのか(笑)ひでえな。
388結構出ていた者の愚痴
02/02/25 03:49ID:??? 設計から実装まで、果てはβテストからデバッグまでここで聞いてたのになぁ。
「フリーで配布しているものはない」「知人に頼まれて急いでいるがPerlは未経験」
というから、ちょっと調べればすぐ解るようなことも教えてきたのにな。
無謀者が苦労に相応した報酬を受け取ることに異論はないよ。
教わろうがなんだろうが今回のCGIは無謀者が作ったんだからさ。
だけどさ、なんか寂しいよな、こういうのって。>^(無謀者)
「フリーで配布しているものはない」「知人に頼まれて急いでいるがPerlは未経験」
というから、ちょっと調べればすぐ解るようなことも教えてきたのにな。
無謀者が苦労に相応した報酬を受け取ることに異論はないよ。
教わろうがなんだろうが今回のCGIは無謀者が作ったんだからさ。
だけどさ、なんか寂しいよな、こういうのって。>^(無謀者)
02/02/25 03:57ID:???
このスレにいた人には無料で配ると、不満がでなくなる上テスターまで確保できるんだぜ(笑)
そういう腹芸をこなさないとだめだな。
そういう腹芸をこなさないとだめだな。
02/02/25 05:12ID:???
ここまで作ったんだからシェアにしたいと思うのも人情でしょうけど、これまで
一から無償で教えてきて下さった人たちが、寂しい思いをするのも分かるような
気がします
Perl初心者なのに、ご友人のためにショッピングカートを作ろうと、頑張られて
いるのは偉いなぁ、と影ながら応援していましたが、ここに来て、突然にお金に
対する色気を出してくるのも、うーん、と思ってしまいます
シェアにするのが悪いとかでなく、無謀者さんが一生懸命作られたcgiを無償で
欲しかったからというわけでもなく、なんだか、うーん、なのです(^^;)
うーん、と思う他に、少し悲しいのは、これからこの板で質問する人たちが
「お前も、完成が近づいたらシェアにするとか言いだすんじゃないの?
なんで、他人の金儲けに俺らがタダで協力しないといけないのよ?」
と思われることでしょうか
まあ、簡単なことも自分で調べない教えて君が減って、むしろ良かったりする
のかも知れませんが(^^;)
ただ、私なら、自分で作ったcgiなんて信用できないので、私用に使うのなら
ともかく、他人に使ってもらおうなんて、恐くてとても考えられないのですが、
無謀者さんはその点、勇気があるなぁ、と純粋に感心しました
一から無償で教えてきて下さった人たちが、寂しい思いをするのも分かるような
気がします
Perl初心者なのに、ご友人のためにショッピングカートを作ろうと、頑張られて
いるのは偉いなぁ、と影ながら応援していましたが、ここに来て、突然にお金に
対する色気を出してくるのも、うーん、と思ってしまいます
シェアにするのが悪いとかでなく、無謀者さんが一生懸命作られたcgiを無償で
欲しかったからというわけでもなく、なんだか、うーん、なのです(^^;)
うーん、と思う他に、少し悲しいのは、これからこの板で質問する人たちが
「お前も、完成が近づいたらシェアにするとか言いだすんじゃないの?
なんで、他人の金儲けに俺らがタダで協力しないといけないのよ?」
と思われることでしょうか
まあ、簡単なことも自分で調べない教えて君が減って、むしろ良かったりする
のかも知れませんが(^^;)
ただ、私なら、自分で作ったcgiなんて信用できないので、私用に使うのなら
ともかく、他人に使ってもらおうなんて、恐くてとても考えられないのですが、
無謀者さんはその点、勇気があるなぁ、と純粋に感心しました
02/02/25 05:16ID:???
ところで、自分は、欲しいcgiがあったら海外の物を探して、適当に日本語化して
使うのが主なので、よく知らないのですが、シェアのcgiって、そんなに需要の
あるものなのでしょうか?
無謀者さんのおっしゃってたcgizooを見ると、結構な数のシェアcgiがあるよう
ですが・・・
使うのが主なので、よく知らないのですが、シェアのcgiって、そんなに需要の
あるものなのでしょうか?
無謀者さんのおっしゃってたcgizooを見ると、結構な数のシェアcgiがあるよう
ですが・・・
02/02/25 05:29ID:???
>391
実際あるよ。
というかね、個人に対する需要はともかく、やっぱCGIていうのは、Webデザインとか
設計の問題とかがあって「オーダーメイド」なものなんだよな。
んで、CGIとか出しておくと、オーダーが入る。
お金払うからこういうもの作ってくれ、とかね。
儲けというか、良い小遣い稼ぎにはなる。
実際あるよ。
というかね、個人に対する需要はともかく、やっぱCGIていうのは、Webデザインとか
設計の問題とかがあって「オーダーメイド」なものなんだよな。
んで、CGIとか出しておくと、オーダーが入る。
お金払うからこういうもの作ってくれ、とかね。
儲けというか、良い小遣い稼ぎにはなる。
02/02/25 08:08ID:???
115 :参加するカモさん :01/12/21 19:46
http://gotonext.cool.ne.jp/gazou/hiroyuki02.jpg
ひろゆき、歯まっ黄色!!
歯糞だらけ!!びっくり!!(・∀・)キタナイ!!ビークリ!!
ひろゆきへ
歯みがきしましょうね・・・・
156 :参加するカモさん :02/01/08 14:08
>>115
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
157 :参加するカモさん :02/01/08 14:11
>>115
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
http://gotonext.cool.ne.jp/gazou/hiroyuki02.jpg
ひろゆき、歯まっ黄色!!
歯糞だらけ!!びっくり!!(・∀・)キタナイ!!ビークリ!!
ひろゆきへ
歯みがきしましょうね・・・・
156 :参加するカモさん :02/01/08 14:08
>>115
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
157 :参加するカモさん :02/01/08 14:11
>>115
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪呪
394名無しさん@お腹いっぱい。
02/02/25 09:57ID:jnXGNVbP 卒業研究でショッピングシステムとか作るってのは今更というカンジかなぁ。
02/02/25 10:02ID:???
>このスレにいた人には無料で〜
素人が作ったものなんかいらんよ
素人が作ったものなんかいらんよ
02/02/25 10:56ID:???
シェアで配布でもいいんでない?
その後いろいろな問題にぶちあたりまたこの板を利用して質問してくることだろう。
何度かそれを繰り返して一人前になったらここで同じような疑問をもった人間に教
える立場に変わってくれればいいんでない?
俺はオーダーメイドのものしか作らないけど、配布に耐えれるだけのものをつくる
にはかなり大変だからねぇ、まぁがんばれよってことだ。
その後いろいろな問題にぶちあたりまたこの板を利用して質問してくることだろう。
何度かそれを繰り返して一人前になったらここで同じような疑問をもった人間に教
える立場に変わってくれればいいんでない?
俺はオーダーメイドのものしか作らないけど、配布に耐えれるだけのものをつくる
にはかなり大変だからねぇ、まぁがんばれよってことだ。
397無謀者
02/02/25 11:24ID:??? ども。やはりシェアに関しては予想通りお叱りを受けてしまいましたね。
自分でもまだ迷っています。まシェアにしたからって必ず売れるというもんでも
ないでしょうし、何人かの方がおっしゃるとおり実用にどこまで耐えられるものなのか
まだ未知数ですし・・・
とりあえず、開発するきっかけとなった友人の所では取り合えず設置しておいた
フリーの奴で「使い方なれてきたからとりあえずこのままで」っていわれて
行き場がなくなってしまいました(w
現在は、デバッグしながら細かい機能実装してます。捕らえずサーバーパス以外の
ほとんどすべてをWEB上で設定できるようにしました。
自分でもまだ迷っています。まシェアにしたからって必ず売れるというもんでも
ないでしょうし、何人かの方がおっしゃるとおり実用にどこまで耐えられるものなのか
まだ未知数ですし・・・
とりあえず、開発するきっかけとなった友人の所では取り合えず設置しておいた
フリーの奴で「使い方なれてきたからとりあえずこのままで」っていわれて
行き場がなくなってしまいました(w
現在は、デバッグしながら細かい機能実装してます。捕らえずサーバーパス以外の
ほとんどすべてをWEB上で設定できるようにしました。
02/02/25 12:51ID:???
「調子に乗るなボケ」って意見がひとつも出ないのは、素人が作ったこの程度のスクリプトでも
シェアとして成り立ってしまう可能性があるからなんだろうな。
実際ZOO見てみてもカートってカテゴリだと登録数少ないしな。
値段によっては結構売れるかも知れんぞ
シェアとして成り立ってしまう可能性があるからなんだろうな。
実際ZOO見てみてもカートってカテゴリだと登録数少ないしな。
値段によっては結構売れるかも知れんぞ
02/02/25 12:53ID:???
まあ敢えて言わないだけなんだけどね
02/02/25 14:38ID:???
400get
02/02/26 09:50ID:???
金をとるなら、取れるなりのものを作ってからにしてほしいと思う。
フリーのモノのより落ちるんじゃあダメじゃないかと。
機能の数ということではなく、ね。
フリーのモノのより落ちるんじゃあダメじゃないかと。
機能の数ということではなく、ね。
02/02/26 12:27ID:???
オープンプラットフォームということで、
アップローダーは最低でもサイズ制限、MacBinaryぐらいは対応していないと、
シェアのWebアプリとはいえないと、「個人的には」思います。
アップローダーは最低でもサイズ制限、MacBinaryぐらいは対応していないと、
シェアのWebアプリとはいえないと、「個人的には」思います。
403名無しさん@お腹いっぱい。
02/02/26 14:32ID:pfD6iFiv WEBショップを開店しようと思ってるので
無謀者さんのカートCGIに興味あります。
でもどこまで実用に耐えられるものなのか不安があるので
シェアだと手が出ないです。
問題なく運用できて売り上げがあがったら
幾らか払っても良いですが。
無謀者さんのカートCGIに興味あります。
でもどこまで実用に耐えられるものなのか不安があるので
シェアだと手が出ないです。
問題なく運用できて売り上げがあがったら
幾らか払っても良いですが。
404無謀者
02/02/26 17:27ID:??? >403
試用していただけるなら喜んでお出しします。もちろん無料で。
>402
マックバイナリーは一応対処してるつもりです。まだMACでの最終確認してないですが。
サイズ制限に関しては表示部の表示の自動縮小を含め研究中です。
KENT氏の&JpegSizeあたりを改造(ぱくり?)しようと思ってます
試用していただけるなら喜んでお出しします。もちろん無料で。
>402
マックバイナリーは一応対処してるつもりです。まだMACでの最終確認してないですが。
サイズ制限に関しては表示部の表示の自動縮小を含め研究中です。
KENT氏の&JpegSizeあたりを改造(ぱくり?)しようと思ってます
02/02/26 17:46ID:???
>>404
ここだけ無料で配っておいて、他で値段つけたりすると何かと問題になるような・・・
ここだけ無料で配っておいて、他で値段つけたりすると何かと問題になるような・・・
406無謀者
02/02/26 18:04ID:??? 配るというか、モニターしていただけると助かるな・・・という感じでして。
ここの方々には何もない常態からおんぶに抱っこでお世話になっていますので。
万が一、間違って「使ってみたい」って人がいらっしゃれば是非試用していただいて
ご感想をいただきたいのです。その結果「ダメだ使い物にならん」と思ったら
破棄していただければ良いですし。少しでも使えそうなら不満点を指摘していただき
改良の参考にさせていただければと。
ここの方々には何もない常態からおんぶに抱っこでお世話になっていますので。
万が一、間違って「使ってみたい」って人がいらっしゃれば是非試用していただいて
ご感想をいただきたいのです。その結果「ダメだ使い物にならん」と思ったら
破棄していただければ良いですし。少しでも使えそうなら不満点を指摘していただき
改良の参考にさせていただければと。
レスを投稿する
ニュース
- なぜコンビニは「外国人店員」だらけになったのか? 大手3社で8万人超…元セブン社員が明かす「日本人が集まらなくなった」現場の実情★4 [♪♪♪★]
- 副首都構想 広島は人口要件満たさず 横田知事が国に意見表明へ [首都圏の虎★]
- 【競馬】凱旋門賞 ダリズが連覇! 武豊が騎乗した日本馬・メイショウタバルは14着 アドマイヤテラは11着 [冬月記者★]
- ヒコロヒー 新幹線でカレーや肉まん等ニオイの強いもの食べる問題に「食べていいというルールになっている以上、ある程度仕方ないよね」 [muffin★]
- 大谷翔平が吐露…「自分のなかでもあまりよくない年の一つ」「WBCがあるとすごく長く感じる」★2 [王子★]
- 三浦大知、マイケル・ジャクソンの歌唱を分析「マイケル=歌が上手いと言われることが少ないけど…とんでもなく歌が上手い」 [muffin★]
- 子どもの頃の話。
- 【悲報】おじさん、ビール売り子から買ったビールをそのまま捨てまくるwwwwwwwwwwwwwwwwwww [398059782]
- 【悲報】新沖縄県知事の古謝玄太さん、米兵による県民殺害事件を受けて大いに笑いながら遺憾の意を示す [904151406]
- ネトウヨが米兵の強姦殺人にダンマリな理由、何?
- 【動画】宮大工の朝礼、限界突破💥🔨 [632966346]
- 明日の無職を頑張る人たちのお🏡