☆ショッピングカートのCGIを作りたい!Perlで☆ (517レス)
1-

181
(2): 名無しさん@お腹いっぱい。 02/01/20 20:45 ID:??? AAS
set-cookieした次のアクセスからクッキーが使える。
182: 名無しさん@お腹いっぱい。 02/01/20 21:05 ID:??? AAS
う〜ん、本当にがんばってるね。
陰ながら応援の機会を伺うとしよう。
183
(1): 仕様書無しさん 02/01/20 21:26 ID:??? AAS
>>180
>>181にも書いてるけど、1セッションで一発読み書きは出来ない
そこにくる前(Top辺りで)、コッソリとダミーのCookieを仕込んでおいて
そいつを読んでクライアントのONOFFを確認するっつのが常套手段
184: 無謀者 02/01/20 22:14 ID:??? AAS
>>181,183さん
なるほどですね。>>183さんの方法は考えたんですが、Cookieに
埋め込むIDでその後の処理を管理する予定なので、どうしようかと・・・・
185
(1): 無謀者 02/01/20 22:24 ID:??? AAS
で"$cookieのID.dat”を定義するのに
以下のような方法で解決できたっぽいんですが・・・

$ctime=time();
$cid=$$+$ctime;#クッキー用ID

if ($ENV{'HTTP_COOKIE'} eq ""){
&set_cookie
$cart="$cid"."\.dat";
}
else{
@id=split (/\=/,$ENV{'HTTP_COOKIE'});
省2
186
(1): 名無しさん@お腹いっぱい。 02/01/20 23:13 ID:??? AAS
クッキー食わない奴がいるから、最初にチェックしたほうが良いと思われ。
操作した後に駄目でしたはイラツキの原因。
後、クッキーはセッションクッキーで充分だろう。
187
(1): 無謀者 02/01/21 03:36 ID:??? AAS
とりあえずクッキーに関しては>>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


省16
188
(2): 名無しさん@お腹いっぱい。 02/01/21 06:32 ID:yXZYknLA(1) AAS
>187

$i = 0;
foreach (@line) {
($id,$hoge,$mona,$giko) = split(/\,/,$_);
if (削除キー eq $id) { splice(@line,$i,1); last; }
$i++;
}

削除キーには、削除ボタン押したときに飛ばされる値を指定する。
189
(2): 名無しさん@お腹いっぱい。 [ ] 02/01/21 12:21 ID:??? AAS
やっぱりこうやって見てるとDB使った方が楽だよね(わら
190
(2): 名無しさん@お腹いっぱい。 02/01/21 12:30 ID:TFQKF+6T(1) AAS
>189
禿同。
セッションIDだけhiddenで渡しておいて、あとは全部DB任せ。
この方が絶対楽だね。ソートするにせよ、合計金額を出すにせよ
全部DB任せ。こんなに楽な方法ばかり普段使っていると
>1が凄いことをしているように見えてくる・・・
191: 189 [ ] 02/01/21 12:42 ID:??? AAS
>>190
だよね(わら
久しぶりにファイル操作スクリプトみたんで懐かしいよ。

>>1さん
エラー処理はきちんとしましょうね。
クッキー渡すときも、ファイルを開くときもね。
あとデータ受け取ったときもサイズとか中身のチェックいれとかないと
だめだかんね〜♪
全ての人間がフォームに従って入力してくれるとは限りませんから。
192
(2): 無謀者 02/01/21 12:54 ID:??? AAS
>>188
ありがとうございます。試してみます。ってやってみたけどいまいち
うまくいかん・・スクリプトの意味もう一回良く見ながら考えてみます。
>>189-190
DBでMySQLとかでしょうか?
私が借りてる鯖(共用)は使えるようになってるみたいなんですが、
一般的にはどうなんでしょ?置く鯖が決まってればそれにあわせた
仕様で書けば良いんでしょうが、出来るだけ汎用性のあるものを
書きたいので・・・・もしDBが鯖依存でなくてPerlが使えれば
必ず使える、とかUNIX系の鯖ならほぼ大丈夫ってものなら
省1
193: 無謀者 02/01/21 13:00 ID:??? AAS

×DBでMySQLとかでしょうか?
○DBってMySQLとかでしょうか?
194: 名無しさん@お腹いっぱい。 [age] 02/01/21 13:02 ID:??? AAS
>192
いいところ突きまくり・・・
195: 190 [0] 02/01/21 13:14 ID:??? AAS
>192
最近は安い共用鯖でもMySQLとかPostgreSQLを使えるところが
増えてきているから、汎用的だって判断しても良いんじゃない?

漏れはDB使えない(使わない)って仕事を受ける時は、それだけで
料金5割増にしてる(w しかも最近はPHPとかJavaを使うことが
多いんで、「Perlで書いてね」なんて言われたら、さらに5割増(w
最低限DBが使える鯖に移転することを強く薦めている。

フリーでばらまくならPerlでファイル操作で構成しておく方が
汎用的と言えるだろうが、作るのが面倒だよなぁ。
漏れの場合は、過去に使ったクラスを使いまわして自分の中で
省3
196
(2): 無謀者 02/01/21 15:03 ID:??? AAS
えっと・・>>188を試しているんですが、これの意味って
$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:35 ID:yxhIL91Y(1/2) AAS
>196
うん、その通り。
198: 名無しさん@お腹いっぱい。 02/01/21 15:35 ID:yxhIL91Y(2/2) AAS
>196
あ、ちがうよ。
空にするんじゃなくて、その行削除ね。
199
(1): 無謀者 02/01/21 16:25 ID:??? AAS
いろいろ試してみて近いところまで来てると思うのですが・・・
open(DEL,"$cart");
@dl=<DEL>;
close(DEL);
$i=0;
foreach $line(@dl){
@cell = split(/\t/, $line);
if ($cell[0] eq "$del") {
$line="";
}
省11
200: 名無しさん@お腹いっぱい。 02/01/21 16:30 ID:??? AAS
>199
なんでそんな苦労をしているんだろう・・・・
1-
あと 317 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.022s