知り合いにWEBショップ作ってくれと頼まれたのは良いけど、
フリーのショッピングカートCGIは設置は簡単でも、商品の登録
とかが手作業だったりで使い勝手が悪いです。
で、短絡的に「自分で作ってみようか」と思っているのですが・・・・
Perlも、いやプログラミングさえ未経験。「必ずわかるCGI」と
その他の入門書で何とか「掲示板」の仕組みがようやく理解できました。
やっぱ、無謀ですかねぇ・・・・・・
☆ショッピングカートのCGIを作りたい!Perlで☆
1無謀者
02/01/10 19:53ID:XY4Txmil02/01/16 16:29ID:???
. ∧ ∧
( ´ ・∀・`) へー
( ´ ・∀・`) へー
02/01/16 17:12ID:???
( ・∀・)y━~~ プハー マァマァ>>141オチツケヨ
02/01/16 23:51ID:???
02/01/17 12:12ID:???
02/01/17 13:41ID:???
147名無しさん@お腹いっぱい。
02/01/17 14:23ID:wRcZzrUC02/01/17 14:37ID:???
. ∧ ∧
( ´ ・∀・`) へー
( ´ ・∀・`) へー
02/01/17 17:46ID:???
( ・∀・)y━~~ プハー デ >>1ハドコイッタ?
02/01/17 19:20ID:???
>149-150
社会的弱者は役に立たないから、2ちゃんねるに来なくていいよ。
社会的弱者は役に立たないから、2ちゃんねるに来なくていいよ。
152無謀者
02/01/17 19:50ID:??? >怒ってる方
別に、プログラムを馬鹿にしているつもりは無いんですが、気分を害されたようなら
申し訳ありません。四則演算云々に関してはおっしゃる通りです。学生の頃
もっと数学勉強しときゃよかった・・・・
いろいろ、親切にレス頂いてる方もいるので、ありがたい限りですが、
やはり大勢として「システム構築」「セキュリティ」「運用」という
話が結構出てきますね。やはりプロフェッショナルな方が多いからでしょうか?
自分としては、それこそ「とりあえず動くスクリプト」という気持ちで
作り始めてるので、舐めてるといわれればその通りかも知れません。
ここにスレ立てたのは、外部と違って、多方面の情報をいただけるかな・・・と・・・
現在の進捗状況。
合計を出すのは>>135でいけました。ありがとうございました。が・・・
ここまで来て気が付いたんですが、注文ボタン押すたびにtmpファイルに書き込んでたんじゃ、
同時に二人以上の人が使えないですよね・・・
注文の最終段階まで配列で処理していって、最後に吐き出すようにしないとダメなのかなぁ・・・・
というわけで、振り出しに戻ってます(藁
別に、プログラムを馬鹿にしているつもりは無いんですが、気分を害されたようなら
申し訳ありません。四則演算云々に関してはおっしゃる通りです。学生の頃
もっと数学勉強しときゃよかった・・・・
いろいろ、親切にレス頂いてる方もいるので、ありがたい限りですが、
やはり大勢として「システム構築」「セキュリティ」「運用」という
話が結構出てきますね。やはりプロフェッショナルな方が多いからでしょうか?
自分としては、それこそ「とりあえず動くスクリプト」という気持ちで
作り始めてるので、舐めてるといわれればその通りかも知れません。
ここにスレ立てたのは、外部と違って、多方面の情報をいただけるかな・・・と・・・
現在の進捗状況。
合計を出すのは>>135でいけました。ありがとうございました。が・・・
ここまで来て気が付いたんですが、注文ボタン押すたびにtmpファイルに書き込んでたんじゃ、
同時に二人以上の人が使えないですよね・・・
注文の最終段階まで配列で処理していって、最後に吐き出すようにしないとダメなのかなぁ・・・・
というわけで、振り出しに戻ってます(藁
02/01/17 22:22ID:???
セッション管理ィィィィィィィィィィィィィィィィィィ
02/01/17 23:21ID:???
なぁ>>1よ
過去のログは読んでるかい?たとえば>>99なんて結構親切に書いてくれ
ていると思わないかい?
我々も段階を追ってアドバイスしてるのだ、だがどうしても説明しき
れないことがあるから具体例も出している。
経験して失敗するのはかまわない、そっちの方が身になって覚えるこ
とができるからな。でももし>>99のようなアドバイスを難しいから
とか面倒だからと言って聞き流してるとだれもアドバイスをくれなく
なるよ。
だから>>153のキーワードも大切にして欲しい。
多分セッション管理と聞いて難しいことをしているように思えるだろ
う、説明している人によっては理解不能なくらい難解な言葉を使って
いて読みにくいことだろう、でもperlには効率的なセッション管理は
苦手とする分野だ。
>>141のぶち切れてる部分を除いて読んでみて、perlの特性と言って
るがセッション管理にも十分出ている。たとえばこれをPHP4でやろう
とすれば簡単にできるのだよ。
とりあえずはperlでできることを学んで行こう。キーワードはわかる
ね、セッション管理だ。
過去のログは読んでるかい?たとえば>>99なんて結構親切に書いてくれ
ていると思わないかい?
我々も段階を追ってアドバイスしてるのだ、だがどうしても説明しき
れないことがあるから具体例も出している。
経験して失敗するのはかまわない、そっちの方が身になって覚えるこ
とができるからな。でももし>>99のようなアドバイスを難しいから
とか面倒だからと言って聞き流してるとだれもアドバイスをくれなく
なるよ。
だから>>153のキーワードも大切にして欲しい。
多分セッション管理と聞いて難しいことをしているように思えるだろ
う、説明している人によっては理解不能なくらい難解な言葉を使って
いて読みにくいことだろう、でもperlには効率的なセッション管理は
苦手とする分野だ。
>>141のぶち切れてる部分を除いて読んでみて、perlの特性と言って
るがセッション管理にも十分出ている。たとえばこれをPHP4でやろう
とすれば簡単にできるのだよ。
とりあえずはperlでできることを学んで行こう。キーワードはわかる
ね、セッション管理だ。
02/01/17 23:46ID:???
. ∧ ∧
( ´ ・∀・`) へー
( ´ ・∀・`) へー
02/01/18 00:57ID:???
http://headlines.yahoo.co.jp/hl?a=20020118-00000006-imp-sci
無理して作らなくてもこの辺使えば?
>>114のサイトでも十分だと思うがな。
自作にこだわる理由て何?。
商品登録の使い勝手が悪いというなら既存のショッピングカートCGIの商品情報を
GUIで設定するアプリをVB当たりで作った方が早いぞ。
無理して作らなくてもこの辺使えば?
>>114のサイトでも十分だと思うがな。
自作にこだわる理由て何?。
商品登録の使い勝手が悪いというなら既存のショッピングカートCGIの商品情報を
GUIで設定するアプリをVB当たりで作った方が早いぞ。
02/01/18 01:40ID:???
>>156 に禿げしく胴衣
そのほうが絶対楽。
そのほうが絶対楽。
02/01/18 01:44ID:???
クレジット決済効かない職種だったりしてな。
それにしても、クレジット手数料、ピンハネしすぎ。
それにしても、クレジット手数料、ピンハネしすぎ。
02/01/18 01:46ID:???
02/01/18 02:24ID:???
>159
うん、クッキーはだめだよね。
よそのサイトからスクリプト投げられるのはどう防いでいます?
うん、クッキーはだめだよね。
よそのサイトからスクリプト投げられるのはどう防いでいます?
161名無しさん@お腹いっぱい。
02/01/18 02:25ID:pneLb9V7162sage
02/01/18 10:51ID:???02/01/18 18:51ID:???
. ∧ ∧
( ´ ・∀・`) へー
( ´ ・∀・`) へー
02/01/18 21:31ID:???
Perlによるセッション管理の難しさ、俺も痛いほどわかるぜ・・・。
ちょっとgoogleで旅してくるかな
ちょっとgoogleで旅してくるかな
165無謀者
02/01/18 21:44ID:??? いろいろレスありがとうございます。
>自作にこだわる理由て何?。
う〜ん・・・前前からCGIを作れるようになりたいと思ってたんですが
掲示板とかカウンターとかは自分のHP作る際もフリーので満足できちゃって
きっかけが無かったんです。で、今回のがきっかけになっただけで・・・
どちらにしろ、いろいろ寄り道しながらperlを勉強していきたいと思ってますので、
お暇な方は今後とも激励、お叱り、罵倒などいただければ幸いです。
さて、セッション管理の件ですが、とりあえず「Cokieを使う」という検討を付けたのですが、
セッションID発行する際って一般的にはどうしてるんでしょう?調べてみると
Perl自体にはユニークなIDを発行する関数が無いみたいなので、環境変数を利用
して生成するようなのですが・・・取得できる環境変数の中でユニークな値って
いうと、IPと時間でしょうか?
>GUIで設定するアプリをVB当たりで作った方が早いぞ。
平行して既存のフリーのCGIに使うページ生成のプログラムをAccessで作り始めてます。
どうせなら、こっちを先にPerlで作ってみようかな・・・・
>自作にこだわる理由て何?。
う〜ん・・・前前からCGIを作れるようになりたいと思ってたんですが
掲示板とかカウンターとかは自分のHP作る際もフリーので満足できちゃって
きっかけが無かったんです。で、今回のがきっかけになっただけで・・・
どちらにしろ、いろいろ寄り道しながらperlを勉強していきたいと思ってますので、
お暇な方は今後とも激励、お叱り、罵倒などいただければ幸いです。
さて、セッション管理の件ですが、とりあえず「Cokieを使う」という検討を付けたのですが、
セッションID発行する際って一般的にはどうしてるんでしょう?調べてみると
Perl自体にはユニークなIDを発行する関数が無いみたいなので、環境変数を利用
して生成するようなのですが・・・取得できる環境変数の中でユニークな値って
いうと、IPと時間でしょうか?
>GUIで設定するアプリをVB当たりで作った方が早いぞ。
平行して既存のフリーのCGIに使うページ生成のプログラムをAccessで作り始めてます。
どうせなら、こっちを先にPerlで作ってみようかな・・・・
02/01/19 00:41ID:???
つうか 1には無理
まずは 1は掲示版CGIでもつくってなさいってことよ
単なる掲示版でも荒し対策とか色々細かいこと考えると結構大きなプログラムになるぞ
まずは 1は掲示版CGIでもつくってなさいってことよ
単なる掲示版でも荒し対策とか色々細かいこと考えると結構大きなプログラムになるぞ
02/01/19 00:45ID:???
しかし、1ってプログラムの経験がないとか言う割には
そうでもなく感じられるようなことも書いてるね。
VBAは使えるの?
そうでもなく感じられるようなことも書いてるね。
VBAは使えるの?
168無謀者
02/01/19 00:55ID:??? >VBAは使えるの?
VBAを使える、というかアクセスのマニュアル本見ながらどうにかこうにか
簡単なものが作れる程度です。アクセスってその気になればMACROだけでも
かなり複雑なことやらせられるし・・・・
「よーし、パパプログラム作っちゃうぞ!!」って言いながら
エクセルのマクロ得意げに組み合わせてるおじさんとかわらんレベルです。
VBAを使える、というかアクセスのマニュアル本見ながらどうにかこうにか
簡単なものが作れる程度です。アクセスってその気になればMACROだけでも
かなり複雑なことやらせられるし・・・・
「よーし、パパプログラム作っちゃうぞ!!」って言いながら
エクセルのマクロ得意げに組み合わせてるおじさんとかわらんレベルです。
02/01/19 01:53ID:???
ここまで来て、疑問なんですが。
プログラムをしたこともない素人に頼む知り合いって
なかなか理解に苦しみます。
商売を舐めてるのでしょうか?w
プログラムをしたこともない素人に頼む知り合いって
なかなか理解に苦しみます。
商売を舐めてるのでしょうか?w
02/01/19 02:25ID:???
ていうか、たかが2ちゃんの書き込みに、いちいち詮索入れるってのも
不思議で性がない。
ネタならネタで乗ってあげるか、放置できないのか?
不思議で性がない。
ネタならネタで乗ってあげるか、放置できないのか?
171
02/01/19 03:46ID:Z1wHwPDO >>165
>Perl自体にはユニークなIDを発行する関数が無いみたいなので、環境変数を利用
>して生成するようなのですが・・・取得できる環境変数の中でユニークな値って
>いうと、IPと時間でしょうか?
ユニークな値が欲しいなら、現在の時間と、プロセスIDを組み合わせる
のが定石かな。プロセスIDは、$$と書けば得られる。
実行中のプログラムに割り当てられるIDで、同時に同じ値が割り当て
られることはない。知ってるかもしれんが。
時間はtimeとかなんとか書けば、エポック秒が得られるだろ。
マイクロ秒まで出す方法があったはずだけど、忘れた。
プログラムの内容にもよるけど、大半この組み合わせでいけるでしょ。
>Perl自体にはユニークなIDを発行する関数が無いみたいなので、環境変数を利用
>して生成するようなのですが・・・取得できる環境変数の中でユニークな値って
>いうと、IPと時間でしょうか?
ユニークな値が欲しいなら、現在の時間と、プロセスIDを組み合わせる
のが定石かな。プロセスIDは、$$と書けば得られる。
実行中のプログラムに割り当てられるIDで、同時に同じ値が割り当て
られることはない。知ってるかもしれんが。
時間はtimeとかなんとか書けば、エポック秒が得られるだろ。
マイクロ秒まで出す方法があったはずだけど、忘れた。
プログラムの内容にもよるけど、大半この組み合わせでいけるでしょ。
172agege
02/01/19 04:12ID:Z/A0FYpK > 171
> マイクロ秒まで出す方法があったはずだけど、忘れた。
実は知らないんじゃないの?
> マイクロ秒まで出す方法があったはずだけど、忘れた。
実は知らないんじゃないの?
02/01/19 04:18ID:???
>172
いや、実は知らなくってもちっともかまわない(笑)
いや、実は知らなくってもちっともかまわない(笑)
02/01/19 08:37ID:???
175171
02/01/19 09:24ID:Mv1Es+po176無謀者
02/01/19 16:47ID:??? どんな内容でもレスがつくのがありがたい限りです。
>>169
単にHPの作成頼まれただけです。一応既存のカートでOK貰って
ページ自体は完成してます。プログラム作ろうと思ったのは単にきっかけ
になったに過ぎません。極端に言えば作る必要性は無いんです。
で・・・
$id=$$+time()でユニークID作って、cookie渡して
split(/\=/,$ENV{'HTTP_COOKIE'})で埋め込まれたID参照して
これが無ければcookieを渡す、もし有るようなら{取り出したID}.dat
ていうファイルを作ってその後の処理をさせようと思ってるんですが、
方法的にはこんなんで良いんですかね?
>>169
単にHPの作成頼まれただけです。一応既存のカートでOK貰って
ページ自体は完成してます。プログラム作ろうと思ったのは単にきっかけ
になったに過ぎません。極端に言えば作る必要性は無いんです。
で・・・
$id=$$+time()でユニークID作って、cookie渡して
split(/\=/,$ENV{'HTTP_COOKIE'})で埋め込まれたID参照して
これが無ければcookieを渡す、もし有るようなら{取り出したID}.dat
ていうファイルを作ってその後の処理をさせようと思ってるんですが、
方法的にはこんなんで良いんですかね?
02/01/19 17:04ID:???
process ID + time で unique だと思ってると mod_perl ではまるよ。
02/01/19 18:47ID:???
>>176
OK,OK
OK,OK
02/01/20 13:24ID:???
失速気味age
ここまでよくがんばった!
ここまでよくがんばった!
180無謀者
02/01/20 20:25ID:COvSUhiy クッキー・・・
if ($ENV{'HTTP_COOKIE'} eq ""){
&set_cookie
}
print "content-type: text/html\n\n";
print $ENV{'HTTP_COOKIE'};
ってやると、もともとクッキーがあるときは$ENVを表示するんですが、
持ってないときは&set_cookieでクッキーをセットしてるはずなのに
表示してくれません。リロードすれば表示するんですが・・・
ちなみにサブルーチンはこんな感じです(変数省略)
sub get_cookie{
$cookie="set-cookie: Tscart=$cid; expires=$gmt; ";
print <<EOF;
$cookie
EOF
}
if ($ENV{'HTTP_COOKIE'} eq ""){
&set_cookie
}
print "content-type: text/html\n\n";
print $ENV{'HTTP_COOKIE'};
ってやると、もともとクッキーがあるときは$ENVを表示するんですが、
持ってないときは&set_cookieでクッキーをセットしてるはずなのに
表示してくれません。リロードすれば表示するんですが・・・
ちなみにサブルーチンはこんな感じです(変数省略)
sub get_cookie{
$cookie="set-cookie: Tscart=$cid; expires=$gmt; ";
print <<EOF;
$cookie
EOF
}
02/01/20 20:45ID:???
set-cookieした次のアクセスからクッキーが使える。
02/01/20 21:05ID:???
う〜ん、本当にがんばってるね。
陰ながら応援の機会を伺うとしよう。
陰ながら応援の機会を伺うとしよう。
183仕様書無しさん
02/01/20 21:26ID:???184無謀者
02/01/20 22:14ID:???185無謀者
02/01/20 22:24ID:??? で"$cookieのID.dat”を定義するのに
以下のような方法で解決できたっぽいんですが・・・
$ctime=time();
$cid=$$+$ctime;#クッキー用ID
if ($ENV{'HTTP_COOKIE'} eq ""){
&set_cookie
$cart="$cid"."\.dat";
}
else{
@id=split (/\=/,$ENV{'HTTP_COOKIE'});
$cart="$id[1]"."\.dat";
}
以下のような方法で解決できたっぽいんですが・・・
$ctime=time();
$cid=$$+$ctime;#クッキー用ID
if ($ENV{'HTTP_COOKIE'} eq ""){
&set_cookie
$cart="$cid"."\.dat";
}
else{
@id=split (/\=/,$ENV{'HTTP_COOKIE'});
$cart="$id[1]"."\.dat";
}
02/01/20 23:13ID:???
クッキー食わない奴がいるから、最初にチェックしたほうが良いと思われ。
操作した後に駄目でしたはイラツキの原因。
後、クッキーはセッションクッキーで充分だろう。
操作した後に駄目でしたはイラツキの原因。
後、クッキーはセッションクッキーで充分だろう。
187無謀者
02/01/21 03:36ID:??? とりあえずクッキーに関しては>>185の方法で一応動作してるようなので
その方法で進めてみます。>>186さんの進言に関しては後々方法考えてみます
で、普通のクッキーとセッションクッキーの違いって?
さて、またひとつ問題が発生してるのでどなたかよろしければご教示ください。
データの削除に関してですが、現在.datの中身が
$id\t$hoge\t$mona\t$giko\n
$id\t$hoge\t$mona\t$giko\n
$id\t$hoge\t$mona\t$giko\n
・
・
・
というようにタブ区切りで一行づつ格納されています。でこの中の
たとえば3行目を削除したい時なんですが、画面表示するときに
open(FH,$file);
@line<FH>;
close(FH);
foreach$list(@line){
@item=split(/\t/,"$list")
}
として、各要素をテーブルで区切って表示した上で
画面上に各行ごとにフォームボタンを作り、Hideenで削除用のキー(=$ID)を入れています。
で削除ボタンを押した時にそのキーに対応する$idを持った行を丸々消したいんですが・・・
いろいろ試してるんですが、ファイルの中身が全部消えちゃったり・・(鬱
<FH>で呼び出して、foreachで配列に格納して$id=削除キーだったら
その配列を消して、残りの配列をまた\n区切りの変数にもどして.datに格納・・・
みたいな事を考えたんですが・・・
その方法で進めてみます。>>186さんの進言に関しては後々方法考えてみます
で、普通のクッキーとセッションクッキーの違いって?
さて、またひとつ問題が発生してるのでどなたかよろしければご教示ください。
データの削除に関してですが、現在.datの中身が
$id\t$hoge\t$mona\t$giko\n
$id\t$hoge\t$mona\t$giko\n
$id\t$hoge\t$mona\t$giko\n
・
・
・
というようにタブ区切りで一行づつ格納されています。でこの中の
たとえば3行目を削除したい時なんですが、画面表示するときに
open(FH,$file);
@line<FH>;
close(FH);
foreach$list(@line){
@item=split(/\t/,"$list")
}
として、各要素をテーブルで区切って表示した上で
画面上に各行ごとにフォームボタンを作り、Hideenで削除用のキー(=$ID)を入れています。
で削除ボタンを押した時にそのキーに対応する$idを持った行を丸々消したいんですが・・・
いろいろ試してるんですが、ファイルの中身が全部消えちゃったり・・(鬱
<FH>で呼び出して、foreachで配列に格納して$id=削除キーだったら
その配列を消して、残りの配列をまた\n区切りの変数にもどして.datに格納・・・
みたいな事を考えたんですが・・・
188名無しさん@お腹いっぱい。
02/01/21 06:32ID:yXZYknLA >187
$i = 0;
foreach (@line) {
($id,$hoge,$mona,$giko) = split(/\,/,$_);
if (削除キー eq $id) { splice(@line,$i,1); last; }
$i++;
}
削除キーには、削除ボタン押したときに飛ばされる値を指定する。
$i = 0;
foreach (@line) {
($id,$hoge,$mona,$giko) = split(/\,/,$_);
if (削除キー eq $id) { splice(@line,$i,1); last; }
$i++;
}
削除キーには、削除ボタン押したときに飛ばされる値を指定する。
02/01/21 12:21ID:???
やっぱりこうやって見てるとDB使った方が楽だよね(わら
190名無しさん@お腹いっぱい。
02/01/21 12:30ID:TFQKF+6T >189
禿同。
セッションIDだけhiddenで渡しておいて、あとは全部DB任せ。
この方が絶対楽だね。ソートするにせよ、合計金額を出すにせよ
全部DB任せ。こんなに楽な方法ばかり普段使っていると
>1が凄いことをしているように見えてくる・・・
禿同。
セッションIDだけhiddenで渡しておいて、あとは全部DB任せ。
この方が絶対楽だね。ソートするにせよ、合計金額を出すにせよ
全部DB任せ。こんなに楽な方法ばかり普段使っていると
>1が凄いことをしているように見えてくる・・・
191189
02/01/21 12:42ID:???192無謀者
02/01/21 12:54ID:???193無謀者
02/01/21 13:00ID:??? ↑
×DBでMySQLとかでしょうか?
○DBってMySQLとかでしょうか?
×DBでMySQLとかでしょうか?
○DBってMySQLとかでしょうか?
02/01/21 13:02ID:???
>192
いいところ突きまくり・・・
いいところ突きまくり・・・
195190
02/01/21 13:14ID:??? >192
最近は安い共用鯖でもMySQLとかPostgreSQLを使えるところが
増えてきているから、汎用的だって判断しても良いんじゃない?
漏れはDB使えない(使わない)って仕事を受ける時は、それだけで
料金5割増にしてる(w しかも最近はPHPとかJavaを使うことが
多いんで、「Perlで書いてね」なんて言われたら、さらに5割増(w
最低限DBが使える鯖に移転することを強く薦めている。
フリーでばらまくならPerlでファイル操作で構成しておく方が
汎用的と言えるだろうが、作るのが面倒だよなぁ。
漏れの場合は、過去に使ったクラスを使いまわして自分の中で
汎用的にするだけだな。もちろん、客には「1から作りました」
と言って、「あっという間に作ってくれましたね」と言われて
喜ぶのが好きだけど(w
最近は安い共用鯖でもMySQLとかPostgreSQLを使えるところが
増えてきているから、汎用的だって判断しても良いんじゃない?
漏れはDB使えない(使わない)って仕事を受ける時は、それだけで
料金5割増にしてる(w しかも最近はPHPとかJavaを使うことが
多いんで、「Perlで書いてね」なんて言われたら、さらに5割増(w
最低限DBが使える鯖に移転することを強く薦めている。
フリーでばらまくならPerlでファイル操作で構成しておく方が
汎用的と言えるだろうが、作るのが面倒だよなぁ。
漏れの場合は、過去に使ったクラスを使いまわして自分の中で
汎用的にするだけだな。もちろん、客には「1から作りました」
と言って、「あっという間に作ってくれましたね」と言われて
喜ぶのが好きだけど(w
196無謀者
02/01/21 15:03ID:??? えっと・・>>188を試しているんですが、これの意味って
$i = 0;#行数カウント用の初期設定
foreach (@line) {
($id,$hoge,$mona,$giko) = split(/\,/,$_);
if (削除キー eq $id) { splice(@line,$i,1); last; }#もし削除キー=$idだったら、@lineの$i個目(つまりファイルの$i行目)を空にする)
$i++;
}
って事で良いんですよね?
$i = 0;#行数カウント用の初期設定
foreach (@line) {
($id,$hoge,$mona,$giko) = split(/\,/,$_);
if (削除キー eq $id) { splice(@line,$i,1); last; }#もし削除キー=$idだったら、@lineの$i個目(つまりファイルの$i行目)を空にする)
$i++;
}
って事で良いんですよね?
197名無しさん@お腹いっぱい。
02/01/21 15:35ID:yxhIL91Y >196
うん、その通り。
うん、その通り。
198名無しさん@お腹いっぱい。
02/01/21 15:35ID:yxhIL91Y >196
あ、ちがうよ。
空にするんじゃなくて、その行削除ね。
あ、ちがうよ。
空にするんじゃなくて、その行削除ね。
199無謀者
02/01/21 16:25ID:??? いろいろ試してみて近いところまで来てると思うのですが・・・
open(DEL,"$cart");
@dl=<DEL>;
close(DEL);
$i=0;
foreach $line(@dl){
@cell = split(/\t/, $line);
if ($cell[0] eq "$del") {
$line="";
}
@del=join("\n",$line);
close(DEL);
#ここまで@delには削除済みのリストが入ってるのを確認
#その後
open(FH2,">>$cart");
print FH2 @del;
close(FH2);
}
で書き込もうと思ってるんですが、>>でやると元のリスト+(元のリストー削除した要素)
が追加されちゃうし、>でやるとなぜか、もとのリストが全て消えて、削除すべき要素だけがファイルに書き込まれてしまいます。
@delで欲しいリストは完成してるので、あとはファイルに書き戻すだけだと思うのですが・・・
open(DEL,"$cart");
@dl=<DEL>;
close(DEL);
$i=0;
foreach $line(@dl){
@cell = split(/\t/, $line);
if ($cell[0] eq "$del") {
$line="";
}
@del=join("\n",$line);
close(DEL);
#ここまで@delには削除済みのリストが入ってるのを確認
#その後
open(FH2,">>$cart");
print FH2 @del;
close(FH2);
}
で書き込もうと思ってるんですが、>>でやると元のリスト+(元のリストー削除した要素)
が追加されちゃうし、>でやるとなぜか、もとのリストが全て消えて、削除すべき要素だけがファイルに書き込まれてしまいます。
@delで欲しいリストは完成してるので、あとはファイルに書き戻すだけだと思うのですが・・・
02/01/21 16:30ID:???
>199
なんでそんな苦労をしているんだろう・・・・
なんでそんな苦労をしているんだろう・・・・
201 ◆6KgJyjvE
02/01/21 16:49ID:rYGhtF3P open(IN,"$cart");
open(TMP,">${cart}.tmp");
while(<IN>){
my @cell = split/\t/;
if($cell[0] ne "$del"){
print TMP;
}
}
close IN;
close TMP;
rename(${cart}.tmp,$cart);
でどうよ。
open(TMP,">${cart}.tmp");
while(<IN>){
my @cell = split/\t/;
if($cell[0] ne "$del"){
print TMP;
}
}
close IN;
close TMP;
rename(${cart}.tmp,$cart);
でどうよ。
02/01/21 17:18ID:???
んじゃもっと短くして・・・
open(IN,"$cart");
open(TMP,">${cart}.tmp");
print TMP grep { ! /^$del\t/ } <IN>
close IN;
close TMP;
rename(${cart}.tmp,$cart);
grep使うのは別におすすめしないけど、
判定のためだけにsplitする必要はないかと。
というか、素直にApache::Session使えばいいのにと思ったり。
open(IN,"$cart");
open(TMP,">${cart}.tmp");
print TMP grep { ! /^$del\t/ } <IN>
close IN;
close TMP;
rename(${cart}.tmp,$cart);
grep使うのは別におすすめしないけど、
判定のためだけにsplitする必要はないかと。
というか、素直にApache::Session使えばいいのにと思ったり。
203無謀者
02/01/21 21:33ID:??? >>201
最初、うまく行かなかったんですが、renameのところを変えたら
うまくいきました↓
open(IN,"$cart");
open(TMP,">$cart.tmp");
while(<IN>){
my @cell = split/\t/;
if($cell[0] ne "$del"){
print TMP;
}
}
close IN;
close TMP;
rename("$cart\.tmp","$cart");
ありがとうございました。
>>202
$id(=削除キー)が単純に振られた連番(数字)なので、配列で
確実に指定してやったほうがいいかな・・・と。grepも使いかた調べたんですが、
個数とかの数字を拾っちゃいそうな気がして・・・
☆進捗状況
おかげさまで、
・買物カゴに入れる
・カゴの中身を削除する
の部分は動作するようになりました。皆様の助けが無ければとても10日でここまでは
出来なかったと思います。ありがとうございます。
次の予定は、個人情報の入力画面です。
・・・と、思い出したので質問です。非常に基本的なことだとは思うのですが、
cookieって有効期限内でも、新たに渡せば上書きされるんですかね?
買物カゴで渡したcookieを個人情報画面で、書き換えたいんですが・・
てかそういう場合って新たにクッキー渡すんですか?
最初、うまく行かなかったんですが、renameのところを変えたら
うまくいきました↓
open(IN,"$cart");
open(TMP,">$cart.tmp");
while(<IN>){
my @cell = split/\t/;
if($cell[0] ne "$del"){
print TMP;
}
}
close IN;
close TMP;
rename("$cart\.tmp","$cart");
ありがとうございました。
>>202
$id(=削除キー)が単純に振られた連番(数字)なので、配列で
確実に指定してやったほうがいいかな・・・と。grepも使いかた調べたんですが、
個数とかの数字を拾っちゃいそうな気がして・・・
☆進捗状況
おかげさまで、
・買物カゴに入れる
・カゴの中身を削除する
の部分は動作するようになりました。皆様の助けが無ければとても10日でここまでは
出来なかったと思います。ありがとうございます。
次の予定は、個人情報の入力画面です。
・・・と、思い出したので質問です。非常に基本的なことだとは思うのですが、
cookieって有効期限内でも、新たに渡せば上書きされるんですかね?
買物カゴで渡したcookieを個人情報画面で、書き換えたいんですが・・
てかそういう場合って新たにクッキー渡すんですか?
204
02/01/22 00:28ID:zQlW9qzl もう解決ずみみたいだけど。
>で書き込もうと思ってるんですが、>>でやると元のリスト+
>(元のリストー削除した要素)が追加されちゃうし、
> でやるとなぜか、もとのリストが全て消えて、
> 削除すべき要素だけがファイルに書き込まれてしまいます。
>> で開くのは、追加書き込み。ファイルは安全。
> で開くと、ファイルサイズがゼロになる。ファイルのデータは失われる。
ファイルロックを併用で、ファイルから読んだあと同一ファイルに
書き戻したい場合は、読み+書き(+<)で開くのが一般的かな。
該当ファイルが存在しない場合は、ファイルを作ってはくれないが。
>で書き込もうと思ってるんですが、>>でやると元のリスト+
>(元のリストー削除した要素)が追加されちゃうし、
> でやるとなぜか、もとのリストが全て消えて、
> 削除すべき要素だけがファイルに書き込まれてしまいます。
>> で開くのは、追加書き込み。ファイルは安全。
> で開くと、ファイルサイズがゼロになる。ファイルのデータは失われる。
ファイルロックを併用で、ファイルから読んだあと同一ファイルに
書き戻したい場合は、読み+書き(+<)で開くのが一般的かな。
該当ファイルが存在しない場合は、ファイルを作ってはくれないが。
205名無しさん@お腹いっぱい。
02/01/22 01:23ID:4ftMAJcg02/01/22 11:42ID:???
02/01/22 16:17ID:???
とりあえず今までのスクリプトどこかにUPしてみ
添削してくれるぞ、きっと
添削してくれるぞ、きっと
208無謀者
02/01/22 16:33ID:??? >>207
今、個人情報の入力&その処理、の部分を書いてるので、それが終わったら
どっかにアップしてみます。垢とってこなきゃ・・・
もう、自分で処理内容を忘れないためのコメントが各所、各行に入りまくりの
ソースなんで恥ずかしいんですが、なにぶん2週間前までは「配列って何?」
っていう人間が書いているものなのでその辺はご容赦ください。
今日の夜くらいにアップできればと・・・
今、個人情報の入力&その処理、の部分を書いてるので、それが終わったら
どっかにアップしてみます。垢とってこなきゃ・・・
もう、自分で処理内容を忘れないためのコメントが各所、各行に入りまくりの
ソースなんで恥ずかしいんですが、なにぶん2週間前までは「配列って何?」
っていう人間が書いているものなのでその辺はご容赦ください。
今日の夜くらいにアップできればと・・・
02/01/22 16:40ID:???
02/01/22 16:50ID:???
ココまで伸びてきていてなんだが‥‥
>>65
>えっと最終的にイメージにあるのは、来訪者(客)が各売場(ページ)で
>任意に商品をカートに入れていって、最終的に注文ボタンを押すと
>その内容が管理者(店主)と客注文明細のメールが行く、というものです。
以前作ったことがあるぞ、それ。個人商店向けで、ほとんど同じ仕様。
メール送信だけPerlでSendmail叩いて、あとJavaScript。
あ、商品ページは商品と単価はtextであげといてCGIから書かせたけどね。
#これなら途中で放棄してジャンプされてもカンケーなしだね。
ID/Pass発行して再ログインとか考えないなら、これで十分かもよ。
>>65
>えっと最終的にイメージにあるのは、来訪者(客)が各売場(ページ)で
>任意に商品をカートに入れていって、最終的に注文ボタンを押すと
>その内容が管理者(店主)と客注文明細のメールが行く、というものです。
以前作ったことがあるぞ、それ。個人商店向けで、ほとんど同じ仕様。
メール送信だけPerlでSendmail叩いて、あとJavaScript。
あ、商品ページは商品と単価はtextであげといてCGIから書かせたけどね。
#これなら途中で放棄してジャンプされてもカンケーなしだね。
ID/Pass発行して再ログインとか考えないなら、これで十分かもよ。
211無謀者
02/01/22 17:05ID:???02/01/22 17:07ID:???
クッキーは正常終了する場合消しとけよ、意味は自分で考えろ。
途中終了の場合は仕方ないがそれでも退室ボタンなどで消せるようにしとけ
途中終了の場合は仕方ないがそれでも退室ボタンなどで消せるようにしとけ
213210
02/01/22 17:27ID:??? >タグがわからず苦労してたりします
ドリウィで満足行くまでデザインして、パクれ。
ドリウィで満足行くまでデザインして、パクれ。
02/01/22 17:29ID:???
商品ページ作成機能ってなに?
イメージが湧かない
イメージが湧かない
215無謀者
02/01/22 20:25ID:??? >>212
はい、最終的にマイナス時間で渡して消すつもりです。
>>213
いやそのつもりではいるんですが、現段階DW立ち上げてると重くて効率
悪いので、手で打ってます。ある程度目処がついたらデザイン面は見直そうと思います。
>>214
究極で言うと、楽天みたいにWEB上で全てのページが作れてしまう機能とでも言いましょうか・・・・
http://www.xrea.com/に垢取ってアップしたけど動かん・・
ローカルはもちろん自分の借りてる鯖でも動いたんですが・・・・・
はい、最終的にマイナス時間で渡して消すつもりです。
>>213
いやそのつもりではいるんですが、現段階DW立ち上げてると重くて効率
悪いので、手で打ってます。ある程度目処がついたらデザイン面は見直そうと思います。
>>214
究極で言うと、楽天みたいにWEB上で全てのページが作れてしまう機能とでも言いましょうか・・・・
http://www.xrea.com/に垢取ってアップしたけど動かん・・
ローカルはもちろん自分の借りてる鯖でも動いたんですが・・・・・
217名無しさん@お腹いっぱい。
02/01/23 01:15ID:Jv+hzd4q >>211
初心者ですが、質問です。
JavaScript のカート、フリーのやつ
見たことあります。
フレームのindex.html の部分に、
プログラムが書いてありました。
あれって、フレームなしじゃ、
できないもんなんですか?
初心者ですが、質問です。
JavaScript のカート、フリーのやつ
見たことあります。
フレームのindex.html の部分に、
プログラムが書いてありました。
あれって、フレームなしじゃ、
できないもんなんですか?
218210
02/01/23 03:21ID:??? >>217
>フレームなし
JSの諸事情で、商品が複数ページに渡る場合、正直フレームにしないと
辛いな。
カート(このスレでの実装の場合、単なる送信フォームだが)と、
商品ページあわせて一枚なら、問題ないね。(ECサイトまで行かない
小さいショップのサイトの通販ページなんかで、この一枚タイプは
結構見かけるよ)
複数ページでフレーム避けたいなら、途中退場処理のコストを払っても
やはりカートをサーバーサイドに置いたほうが楽だと思われ。
ただ、JavaScript使用を前提とする場合、フレームを嫌う理由はあまり
ないね。この辺はクライアントの意向によるな。
>フレームなし
JSの諸事情で、商品が複数ページに渡る場合、正直フレームにしないと
辛いな。
カート(このスレでの実装の場合、単なる送信フォームだが)と、
商品ページあわせて一枚なら、問題ないね。(ECサイトまで行かない
小さいショップのサイトの通販ページなんかで、この一枚タイプは
結構見かけるよ)
複数ページでフレーム避けたいなら、途中退場処理のコストを払っても
やはりカートをサーバーサイドに置いたほうが楽だと思われ。
ただ、JavaScript使用を前提とする場合、フレームを嫌う理由はあまり
ないね。この辺はクライアントの意向によるな。
02/01/24 10:19ID:???
あげ。
02/01/24 11:10ID:???
そろそろあきらめたかな?
02/01/24 11:26ID:???
そろそろあきられたかな?
222無謀者
02/01/24 13:34ID:??? あきらめてないです。なんとか・・・
一応sendmailでメールを送信するところまでは漕ぎ着けました。
まだ、文字化けしたり、mailに必要な内容が反映されなかったり
とかありますが・・・・・それが解決したら次はページ作成用の
スクリプトに着手です。
一応sendmailでメールを送信するところまでは漕ぎ着けました。
まだ、文字化けしたり、mailに必要な内容が反映されなかったり
とかありますが・・・・・それが解決したら次はページ作成用の
スクリプトに着手です。
02/01/24 14:25ID:???
がんばれよ。
日本語は本文はベタにISO-2022-JPだが、
subjectのエンコードはけっこうめんどくさいんだ。
日本語は本文はベタにISO-2022-JPだが、
subjectのエンコードはけっこうめんどくさいんだ。
02/01/24 21:22ID:???
226無謀者
02/01/24 22:06ID:??? 日本語コードって難しいですね・・・・
本とか読むと”EUCで書く”って書いてあり、フォームから取得したデータを
&jcode::convert(*form, 'euc');でデコード、でsendmailに送る時は
&jcode'convert(*name, 'jis');って書いてあるんですが、それでやると
表示が文字化けしたり、送られたメールが文字化けしたり・・・・
でいろいろ試した結果、スクリプトをsjisで保存、フォームでコードは
&jcode::convert(*form, 'sjis');メールはjisでデコードしたら今のところ
うまく行ってます。ちなみにw2k+IE6での検証です。あとはWinのNNと
MACでIE&NNを試してみないと・・・・
本とか読むと”EUCで書く”って書いてあり、フォームから取得したデータを
&jcode::convert(*form, 'euc');でデコード、でsendmailに送る時は
&jcode'convert(*name, 'jis');って書いてあるんですが、それでやると
表示が文字化けしたり、送られたメールが文字化けしたり・・・・
でいろいろ試した結果、スクリプトをsjisで保存、フォームでコードは
&jcode::convert(*form, 'sjis');メールはjisでデコードしたら今のところ
うまく行ってます。ちなみにw2k+IE6での検証です。あとはWinのNNと
MACでIE&NNを試してみないと・・・・
02/01/24 23:49ID:???
うんこすけーぷ4.xのヤロウ、たまにエンコード間違えやがるから、
確実にjis/sjis/eucを判定できる文字を各フォームに突っ込んどいて、
jcode.plかなんかで判定、convertんとき元コード指定せんと、テストで
上手く行ってても稼動させてしばらく経ったらクレームがなんて事が。
# 昔はまったな、これで。
charsetもHTTPヘッダ、METAで両方吐き出しとけ。念には念だ。
確実にjis/sjis/eucを判定できる文字を各フォームに突っ込んどいて、
jcode.plかなんかで判定、convertんとき元コード指定せんと、テストで
上手く行ってても稼動させてしばらく経ったらクレームがなんて事が。
# 昔はまったな、これで。
charsetもHTTPヘッダ、METAで両方吐き出しとけ。念には念だ。
02/01/25 01:13ID:???
02/01/25 01:25ID:???
02/01/25 01:25ID:???
スイマセン。どうしてもxrea.comで動かないんです・・・・・
他のところで垢とって試してみます。
他のところで垢とって試してみます。
02/01/25 02:13ID:???
困ったらとにかくへろぅわぅうど!
#!/usr/bin/perl #サーバにあわせりゅ
print "Content-type:text/plain \n\nHelloWorld.";
exit;
をウプだ。
これが動かないなら設置/設定方法が悪いかCGIが使えないかどっちかだな。
flockやsymlink、スクリプト本体より上のディレクトリにアクセスしてる
場合なんかもサーバによっては引っかかるぞ。
#!/usr/bin/perl #サーバにあわせりゅ
print "Content-type:text/plain \n\nHelloWorld.";
exit;
をウプだ。
これが動かないなら設置/設定方法が悪いかCGIが使えないかどっちかだな。
flockやsymlink、スクリプト本体より上のディレクトリにアクセスしてる
場合なんかもサーバによっては引っかかるぞ。
02/01/25 02:17ID:???
なにげに人気のあるスレだな。
何でだろう?
何でだろう?
02/01/25 02:29ID:???
>>232
1のマメなレスと、微妙なジサクジエンによるものであろう。
1のマメなレスと、微妙なジサクジエンによるものであろう。
234sage
02/01/25 14:31ID:??? これ自作慈円?なの?
02/01/25 15:25ID:???
236無謀者
02/01/25 19:29ID:??? 先の鯖でどうしても動かないのですが、ご協力いただいた方へのお礼も含めて
とりあえずソースだけでもウプして晒してみます。
コメントだらけの汚いソースですが2週間前にCGIに手をつけた素人という事で
見逃してください・・・・
ttp://cgitest.s7.xrea.com/cart.txt
まだエラー処理とかは全然してません。とりあえず動いたというレベルです。
今他の鯖の垢申請中なので動けばまたウプします。
ちなみに自作自演はしてません。てかこんな自作自演できるくらいなこんな苦労しなくていいのに・・・・・(w
とりあえずソースだけでもウプして晒してみます。
コメントだらけの汚いソースですが2週間前にCGIに手をつけた素人という事で
見逃してください・・・・
ttp://cgitest.s7.xrea.com/cart.txt
まだエラー処理とかは全然してません。とりあえず動いたというレベルです。
今他の鯖の垢申請中なので動けばまたウプします。
ちなみに自作自演はしてません。てかこんな自作自演できるくらいなこんな苦労しなくていいのに・・・・・(w
02/01/25 21:11ID:???
さまになってきたジャン。
なんかスゲー懐かしい感じだyo
なんかスゲー懐かしい感じだyo
02/01/25 23:43ID:???
たいしたもんです。感心しました。
239無謀者
02/01/26 00:38ID:??? 文字コードEUCで送ったら動きました
ttp://cgitest.s7.xrea.com/cgi-bin/shop4.htm
ただやっぱりブラウザで頻繁に文字化けするし、sendmailで送られる
データはバヶバケなんですよね
はてさて、何にあわせるのが一番楽なのか・・・・
EUC統一がよさそうなんですが、そうするとブラウザが頻繁にエンコードミスるようなんですが
うちのIEのせいでしょうか?それともやっぱりブラウザ出力部はS-JISにしといたほうがいいですか?
ttp://cgitest.s7.xrea.com/cgi-bin/shop4.htm
ただやっぱりブラウザで頻繁に文字化けするし、sendmailで送られる
データはバヶバケなんですよね
はてさて、何にあわせるのが一番楽なのか・・・・
EUC統一がよさそうなんですが、そうするとブラウザが頻繁にエンコードミスるようなんですが
うちのIEのせいでしょうか?それともやっぱりブラウザ出力部はS-JISにしといたほうがいいですか?
02/01/26 01:11ID:???
02/01/26 01:18ID:???
少し休め。
CGIが吐き出すHTML、<html>〜<head>〜</head>〜</html>が丸々抜けてんぞ。
shop4.htmはMETAの指定がShift_JISなのにファイル自体はEUC-JPだしな。
よくやったよ。フィニッシュに向けて、まずは寝れ。
CGIが吐き出すHTML、<html>〜<head>〜</head>〜</html>が丸々抜けてんぞ。
shop4.htmはMETAの指定がShift_JISなのにファイル自体はEUC-JPだしな。
よくやったよ。フィニッシュに向けて、まずは寝れ。
レスを投稿する
ニュース
- なぜコンビニは「外国人店員」だらけになったのか? 大手3社で8万人超…元セブン社員が明かす「日本人が集まらなくなった」現場の実情★4 [♪♪♪★]
- 副首都構想 広島は人口要件満たさず 横田知事が国に意見表明へ [首都圏の虎★]
- 【競馬】凱旋門賞 ダリズが連覇! 武豊が騎乗した日本馬・メイショウタバルは14着 アドマイヤテラは11着 [冬月記者★]
- ヒコロヒー 新幹線でカレーや肉まん等ニオイの強いもの食べる問題に「食べていいというルールになっている以上、ある程度仕方ないよね」 [muffin★]
- 大谷翔平が吐露…「自分のなかでもあまりよくない年の一つ」「WBCがあるとすごく長く感じる」★2 [王子★]
- 【平均給与】男性は400万円台、女性は200万円台が最多。平均487万円より下に人が集まり、年収500万円以下が約6割 [首都圏の虎★]
- 子どもの頃の話。
- 【悲報】おじさん、ビール売り子から買ったビールをそのまま捨てまくるwwwwwwwwwwwwwwwwwww [398059782]
- 【悲報】新沖縄県知事の古謝玄太さん、米兵による県民殺害事件を受けて大いに笑いながら遺憾の意を示す [904151406]
- ネトウヨが米兵の強姦殺人にダンマリな理由、何?
- 【動画】宮大工の朝礼、限界突破💥🔨 [632966346]
- 明日の無職を頑張る人たちのお🏡