☆ショッピングカートのCGIを作りたい!Perlで☆ (517レス)
☆ショッピングカートのCGIを作りたい!Perlで☆ http://medaka.5ch.io/test/read.cgi/php/1010660032/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
147: 名無しさん@お腹いっぱい。 [] 02/01/17 14:23 ID:wRcZzrUC >145 >・合計金額だすだけであたふたする>>1の支援人ももうちょっと勉強しろ ああこれおれのことか(笑) 勉強というか、ちゃんと睡眠取るようにするよ(笑) http://medaka.5ch.io/test/read.cgi/php/1010660032/147
148: sage [sage] 02/01/17 14:26 ID:??? すまん >>143 >>144 怒らずにはいられんかった PGなめてんのかってぐらい無知だからさ! ふぅ http://medaka.5ch.io/test/read.cgi/php/1010660032/148
149: 名無しさん@お腹いっぱい。 [sage] 02/01/17 14:37 ID:??? . ∧ ∧ ( ´ ・∀・`) へー http://medaka.5ch.io/test/read.cgi/php/1010660032/149
150: 名無しさん@お腹いっぱい。 [ ] 02/01/17 17:46 ID:??? ( ・∀・)y━~~ プハー デ >>1ハドコイッタ? http://medaka.5ch.io/test/read.cgi/php/1010660032/150
151: 名無しさん@お腹いっぱい。 [age] 02/01/17 19:20 ID:??? >149-150 社会的弱者は役に立たないから、2ちゃんねるに来なくていいよ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/151
152: 無謀者 [sage] 02/01/17 19:50 ID:??? >怒ってる方 別に、プログラムを馬鹿にしているつもりは無いんですが、気分を害されたようなら 申し訳ありません。四則演算云々に関してはおっしゃる通りです。学生の頃 もっと数学勉強しときゃよかった・・・・ いろいろ、親切にレス頂いてる方もいるので、ありがたい限りですが、 やはり大勢として「システム構築」「セキュリティ」「運用」という 話が結構出てきますね。やはりプロフェッショナルな方が多いからでしょうか? 自分としては、それこそ「とりあえず動くスクリプト」という気持ちで 作り始めてるので、舐めてるといわれればその通りかも知れません。 ここにスレ立てたのは、外部と違って、多方面の情報をいただけるかな・・・と・・・ 現在の進捗状況。 合計を出すのは>>135でいけました。ありがとうございました。が・・・ ここまで来て気が付いたんですが、注文ボタン押すたびにtmpファイルに書き込んでたんじゃ、 同時に二人以上の人が使えないですよね・・・ 注文の最終段階まで配列で処理していって、最後に吐き出すようにしないとダメなのかなぁ・・・・ というわけで、振り出しに戻ってます(藁 http://medaka.5ch.io/test/read.cgi/php/1010660032/152
153: 名無しさん@お腹いっぱい。 [sage] 02/01/17 22:22 ID:??? セッション管理ィィィィィィィィィィィィィィィィィィ http://medaka.5ch.io/test/read.cgi/php/1010660032/153
154: 名無しさん@お腹いっぱい。 [ ] 02/01/17 23:21 ID:??? なぁ>>1よ 過去のログは読んでるかい?たとえば>>99なんて結構親切に書いてくれ ていると思わないかい? 我々も段階を追ってアドバイスしてるのだ、だがどうしても説明しき れないことがあるから具体例も出している。 経験して失敗するのはかまわない、そっちの方が身になって覚えるこ とができるからな。でももし>>99のようなアドバイスを難しいから とか面倒だからと言って聞き流してるとだれもアドバイスをくれなく なるよ。 だから>>153のキーワードも大切にして欲しい。 多分セッション管理と聞いて難しいことをしているように思えるだろ う、説明している人によっては理解不能なくらい難解な言葉を使って いて読みにくいことだろう、でもperlには効率的なセッション管理は 苦手とする分野だ。 >>141のぶち切れてる部分を除いて読んでみて、perlの特性と言って るがセッション管理にも十分出ている。たとえばこれをPHP4でやろう とすれば簡単にできるのだよ。 とりあえずはperlでできることを学んで行こう。キーワードはわかる ね、セッション管理だ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/154
155: 名無しさん@お腹いっぱい。 [sage] 02/01/17 23:46 ID:??? . ∧ ∧ ( ´ ・∀・`) へー http://medaka.5ch.io/test/read.cgi/php/1010660032/155
156: 名無しさん@お腹いっぱい。 [sage] 02/01/18 00:57 ID:??? http://headlines.yahoo.co.jp/hl?a=20020118-00000006-imp-sci 無理して作らなくてもこの辺使えば? >>114のサイトでも十分だと思うがな。 自作にこだわる理由て何?。 商品登録の使い勝手が悪いというなら既存のショッピングカートCGIの商品情報を GUIで設定するアプリをVB当たりで作った方が早いぞ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/156
157: 名無しさん@お腹いっぱい。 [sage] 02/01/18 01:40 ID:??? >>156 に禿げしく胴衣 そのほうが絶対楽。 http://medaka.5ch.io/test/read.cgi/php/1010660032/157
158: 名無しさん@お腹いっぱい。 [age] 02/01/18 01:44 ID:??? クレジット決済効かない職種だったりしてな。 それにしても、クレジット手数料、ピンハネしすぎ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/158
159: 名無しさん@お腹いっぱい。 [sage] 02/01/18 01:46 ID:??? >>1 うちでは、1のいう tmp ファイルをお客さんごとに作ってる。 途中で買い物やめた人の分は、時間で消してる。 PHPだけどセッションは、hiddenで持ち回り。 クッキー使うと i-mode 使えないから。 >>154に同意 http://medaka.5ch.io/test/read.cgi/php/1010660032/159
160: 名無しさん@お腹いっぱい。 [age] 02/01/18 02:24 ID:??? >159 うん、クッキーはだめだよね。 よそのサイトからスクリプト投げられるのはどう防いでいます? http://medaka.5ch.io/test/read.cgi/php/1010660032/160
161: 名無しさん@お腹いっぱい。 [] 02/01/18 02:25 ID:pneLb9V7 うちもPHPで格闘中。 >>106 ホントに夜のrootがウヨウヨしてるとしたら、よっぽどヤバイ鯖? でも、まぁ共有鯖は危険なことは同意。せめて、置き場所と権限はキッチリしないとね。 >>1 初プログラムがカートはやめたほうがいい。せめて小さいものを10コぐらい作ってからにしたほうが、時間の効率的利用になると思われる。 イマはまだマシ。部分ごとにカンペキにしていっても、全体動作がうまくいくとは限らない。大きなプログラムは虫取りが大変だぞ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/161
162: sage [sage] 02/01/18 10:51 ID:??? いまおれもPHPの開発だ!最初はとっつきにくかったがなれればOK! おとなげなくおこってしまったが、 >>161 にかかれているように、段階を踏んでPGを勉強していったほうがよいとおもわれる PGって積み重ねていくものだからね!>>1 >>156 おれも同意する!おれはVB嫌いだが・・・そっちのほうがはやいかもよ! http://medaka.5ch.io/test/read.cgi/php/1010660032/162
163: 名無しさん@お腹いっぱい。 [sage] 02/01/18 18:51 ID:??? . ∧ ∧ ( ´ ・∀・`) へー http://medaka.5ch.io/test/read.cgi/php/1010660032/163
164: 名無しさん@お腹いっぱい。 [sage] 02/01/18 21:31 ID:??? Perlによるセッション管理の難しさ、俺も痛いほどわかるぜ・・・。 ちょっとgoogleで旅してくるかな http://medaka.5ch.io/test/read.cgi/php/1010660032/164
165: 無謀者 [sage] 02/01/18 21:44 ID:??? いろいろレスありがとうございます。 >自作にこだわる理由て何?。 う〜ん・・・前前からCGIを作れるようになりたいと思ってたんですが 掲示板とかカウンターとかは自分のHP作る際もフリーので満足できちゃって きっかけが無かったんです。で、今回のがきっかけになっただけで・・・ どちらにしろ、いろいろ寄り道しながらperlを勉強していきたいと思ってますので、 お暇な方は今後とも激励、お叱り、罵倒などいただければ幸いです。 さて、セッション管理の件ですが、とりあえず「Cokieを使う」という検討を付けたのですが、 セッションID発行する際って一般的にはどうしてるんでしょう?調べてみると Perl自体にはユニークなIDを発行する関数が無いみたいなので、環境変数を利用 して生成するようなのですが・・・取得できる環境変数の中でユニークな値って いうと、IPと時間でしょうか? >GUIで設定するアプリをVB当たりで作った方が早いぞ。 平行して既存のフリーのCGIに使うページ生成のプログラムをAccessで作り始めてます。 どうせなら、こっちを先にPerlで作ってみようかな・・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/165
166: 名無しさん@お腹いっぱい。 [sage] 02/01/19 00:41 ID:??? つうか 1には無理 まずは 1は掲示版CGIでもつくってなさいってことよ 単なる掲示版でも荒し対策とか色々細かいこと考えると結構大きなプログラムになるぞ http://medaka.5ch.io/test/read.cgi/php/1010660032/166
167: 名無しさん@お腹いっぱい。 [sage] 02/01/19 00:45 ID:??? しかし、1ってプログラムの経験がないとか言う割には そうでもなく感じられるようなことも書いてるね。 VBAは使えるの? http://medaka.5ch.io/test/read.cgi/php/1010660032/167
168: 無謀者 [sage] 02/01/19 00:55 ID:??? >VBAは使えるの? VBAを使える、というかアクセスのマニュアル本見ながらどうにかこうにか 簡単なものが作れる程度です。アクセスってその気になればMACROだけでも かなり複雑なことやらせられるし・・・・ 「よーし、パパプログラム作っちゃうぞ!!」って言いながら エクセルのマクロ得意げに組み合わせてるおじさんとかわらんレベルです。 http://medaka.5ch.io/test/read.cgi/php/1010660032/168
169: 名無しさん@お腹いっぱい。 [sage] 02/01/19 01:53 ID:??? ここまで来て、疑問なんですが。 プログラムをしたこともない素人に頼む知り合いって なかなか理解に苦しみます。 商売を舐めてるのでしょうか?w http://medaka.5ch.io/test/read.cgi/php/1010660032/169
170: 名無しさん@お腹いっぱい。 [sage] 02/01/19 02:25 ID:??? ていうか、たかが2ちゃんの書き込みに、いちいち詮索入れるってのも 不思議で性がない。 ネタならネタで乗ってあげるか、放置できないのか? http://medaka.5ch.io/test/read.cgi/php/1010660032/170
171: [] 02/01/19 03:46 ID:Z1wHwPDO >>165 >Perl自体にはユニークなIDを発行する関数が無いみたいなので、環境変数を利用 >して生成するようなのですが・・・取得できる環境変数の中でユニークな値って >いうと、IPと時間でしょうか? ユニークな値が欲しいなら、現在の時間と、プロセスIDを組み合わせる のが定石かな。プロセスIDは、$$と書けば得られる。 実行中のプログラムに割り当てられるIDで、同時に同じ値が割り当て られることはない。知ってるかもしれんが。 時間はtimeとかなんとか書けば、エポック秒が得られるだろ。 マイクロ秒まで出す方法があったはずだけど、忘れた。 プログラムの内容にもよるけど、大半この組み合わせでいけるでしょ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/171
172: agege [] 02/01/19 04:12 ID:Z/A0FYpK > 171 > マイクロ秒まで出す方法があったはずだけど、忘れた。 実は知らないんじゃないの? http://medaka.5ch.io/test/read.cgi/php/1010660032/172
173: 名無しさん@お腹いっぱい。 [age] 02/01/19 04:18 ID:??? >172 いや、実は知らなくってもちっともかまわない(笑) http://medaka.5ch.io/test/read.cgi/php/1010660032/173
174: 名無しさん@お腹いっぱい。 [sage] 02/01/19 08:37 ID:??? >>165 apacheが生成してくれるの使えば? 最初に見たときは糞スレだと思ったけど、>>1の根気とチャレンジ精神で 良スレになりつつある予感。PGには必須の資質なので頑張ってくれ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/174
175: 171 [] 02/01/19 09:24 ID:Mv1Es+po >>172 モジュール入れないとダメだった。他の方法は知らん。 use Time::HiRes; $time = Time::HiRes::time; http://medaka.5ch.io/test/read.cgi/php/1010660032/175
176: 無謀者 [sage] 02/01/19 16:47 ID:??? どんな内容でもレスがつくのがありがたい限りです。 >>169 単にHPの作成頼まれただけです。一応既存のカートでOK貰って ページ自体は完成してます。プログラム作ろうと思ったのは単にきっかけ になったに過ぎません。極端に言えば作る必要性は無いんです。 で・・・ $id=$$+time()でユニークID作って、cookie渡して split(/\=/,$ENV{'HTTP_COOKIE'})で埋め込まれたID参照して これが無ければcookieを渡す、もし有るようなら{取り出したID}.dat ていうファイルを作ってその後の処理をさせようと思ってるんですが、 方法的にはこんなんで良いんですかね? http://medaka.5ch.io/test/read.cgi/php/1010660032/176
177: 名無しさん@お腹いっぱい。 [sage] 02/01/19 17:04 ID:??? process ID + time で unique だと思ってると mod_perl ではまるよ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/177
178: 名無しさん@お腹いっぱい。 [sage] 02/01/19 18:47 ID:??? >>176 OK,OK http://medaka.5ch.io/test/read.cgi/php/1010660032/178
179: 名無しさん@お腹いっぱい。 [sage] 02/01/20 13:24 ID:??? 失速気味age ここまでよくがんばった! http://medaka.5ch.io/test/read.cgi/php/1010660032/179
180: 無謀者 [] 02/01/20 20:25 ID: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 } http://medaka.5ch.io/test/read.cgi/php/1010660032/180
181: 名無しさん@お腹いっぱい。 [sage] 02/01/20 20:45 ID:??? set-cookieした次のアクセスからクッキーが使える。 http://medaka.5ch.io/test/read.cgi/php/1010660032/181
182: 名無しさん@お腹いっぱい。 [sage] 02/01/20 21:05 ID:??? う〜ん、本当にがんばってるね。 陰ながら応援の機会を伺うとしよう。 http://medaka.5ch.io/test/read.cgi/php/1010660032/182
183: 仕様書無しさん [sage] 02/01/20 21:26 ID:??? >>180 >>181にも書いてるけど、1セッションで一発読み書きは出来ない そこにくる前(Top辺りで)、コッソリとダミーのCookieを仕込んでおいて そいつを読んでクライアントのONOFFを確認するっつのが常套手段 http://medaka.5ch.io/test/read.cgi/php/1010660032/183
184: 無謀者 [sage] 02/01/20 22:14 ID:??? >>181,183さん なるほどですね。>>183さんの方法は考えたんですが、Cookieに 埋め込むIDでその後の処理を管理する予定なので、どうしようかと・・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/184
185: 無謀者 [sage] 02/01/20 22:24 ID:??? で"$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"; } http://medaka.5ch.io/test/read.cgi/php/1010660032/185
186: 名無しさん@お腹いっぱい。 [sage] 02/01/20 23:13 ID:??? クッキー食わない奴がいるから、最初にチェックしたほうが良いと思われ。 操作した後に駄目でしたはイラツキの原因。 後、クッキーはセッションクッキーで充分だろう。 http://medaka.5ch.io/test/read.cgi/php/1010660032/186
187: 無謀者 [sage] 02/01/21 03:36 ID:??? とりあえずクッキーに関しては>>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に格納・・・ みたいな事を考えたんですが・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/187
188: 名無しさん@お腹いっぱい。 [] 02/01/21 06:32 ID:yXZYknLA >187 $i = 0; foreach (@line) { ($id,$hoge,$mona,$giko) = split(/\,/,$_); if (削除キー eq $id) { splice(@line,$i,1); last; } $i++; } 削除キーには、削除ボタン押したときに飛ばされる値を指定する。 http://medaka.5ch.io/test/read.cgi/php/1010660032/188
189: 名無しさん@お腹いっぱい。 [ ] 02/01/21 12:21 ID:??? やっぱりこうやって見てるとDB使った方が楽だよね(わら http://medaka.5ch.io/test/read.cgi/php/1010660032/189
190: 名無しさん@お腹いっぱい。 [] 02/01/21 12:30 ID:TFQKF+6T >189 禿同。 セッションIDだけhiddenで渡しておいて、あとは全部DB任せ。 この方が絶対楽だね。ソートするにせよ、合計金額を出すにせよ 全部DB任せ。こんなに楽な方法ばかり普段使っていると >1が凄いことをしているように見えてくる・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/190
191: 189 [ ] 02/01/21 12:42 ID:??? >>190 だよね(わら 久しぶりにファイル操作スクリプトみたんで懐かしいよ。 >>1さん エラー処理はきちんとしましょうね。 クッキー渡すときも、ファイルを開くときもね。 あとデータ受け取ったときもサイズとか中身のチェックいれとかないと だめだかんね〜♪ 全ての人間がフォームに従って入力してくれるとは限りませんから。 http://medaka.5ch.io/test/read.cgi/php/1010660032/191
192: 無謀者 [sage] 02/01/21 12:54 ID:??? >>188 ありがとうございます。試してみます。ってやってみたけどいまいち うまくいかん・・スクリプトの意味もう一回良く見ながら考えてみます。 >>189-190 DBでMySQLとかでしょうか? 私が借りてる鯖(共用)は使えるようになってるみたいなんですが、 一般的にはどうなんでしょ?置く鯖が決まってればそれにあわせた 仕様で書けば良いんでしょうが、出来るだけ汎用性のあるものを 書きたいので・・・・もしDBが鯖依存でなくてPerlが使えれば 必ず使える、とかUNIX系の鯖ならほぼ大丈夫ってものなら 勉強してみようと思うのですが・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/192
193: 無謀者 [sage] 02/01/21 13:00 ID:??? ↑ ×DBでMySQLとかでしょうか? ○DBってMySQLとかでしょうか? http://medaka.5ch.io/test/read.cgi/php/1010660032/193
194: 名無しさん@お腹いっぱい。 [age] 02/01/21 13:02 ID:??? >192 いいところ突きまくり・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/194
195: 190 [0] 02/01/21 13:14 ID:??? >192 最近は安い共用鯖でもMySQLとかPostgreSQLを使えるところが 増えてきているから、汎用的だって判断しても良いんじゃない? 漏れはDB使えない(使わない)って仕事を受ける時は、それだけで 料金5割増にしてる(w しかも最近はPHPとかJavaを使うことが 多いんで、「Perlで書いてね」なんて言われたら、さらに5割増(w 最低限DBが使える鯖に移転することを強く薦めている。 フリーでばらまくならPerlでファイル操作で構成しておく方が 汎用的と言えるだろうが、作るのが面倒だよなぁ。 漏れの場合は、過去に使ったクラスを使いまわして自分の中で 汎用的にするだけだな。もちろん、客には「1から作りました」 と言って、「あっという間に作ってくれましたね」と言われて 喜ぶのが好きだけど(w http://medaka.5ch.io/test/read.cgi/php/1010660032/195
196: 無謀者 [sage] 02/01/21 15:03 ID:??? えっと・・>>188を試しているんですが、これの意味って $i = 0;#行数カウント用の初期設定 foreach (@line) { ($id,$hoge,$mona,$giko) = split(/\,/,$_); if (削除キー eq $id) { splice(@line,$i,1); last; }#もし削除キー=$idだったら、@lineの$i個目(つまりファイルの$i行目)を空にする) $i++; } って事で良いんですよね? http://medaka.5ch.io/test/read.cgi/php/1010660032/196
197: 名無しさん@お腹いっぱい。 [] 02/01/21 15:35 ID:yxhIL91Y >196 うん、その通り。 http://medaka.5ch.io/test/read.cgi/php/1010660032/197
198: 名無しさん@お腹いっぱい。 [] 02/01/21 15:35 ID:yxhIL91Y >196 あ、ちがうよ。 空にするんじゃなくて、その行削除ね。 http://medaka.5ch.io/test/read.cgi/php/1010660032/198
199: 無謀者 [sage] 02/01/21 16:25 ID:??? いろいろ試してみて近いところまで来てると思うのですが・・・ 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で欲しいリストは完成してるので、あとはファイルに書き戻すだけだと思うのですが・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/199
200: 名無しさん@お腹いっぱい。 [sage] 02/01/21 16:30 ID:??? >199 なんでそんな苦労をしているんだろう・・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/200
201: ◆6KgJyjvE [] 02/01/21 16:49 ID: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); でどうよ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/201
202: 名無しさん@お腹いっぱい。 [sage] 02/01/21 17:18 ID:??? んじゃもっと短くして・・・ 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使えばいいのにと思ったり。 http://medaka.5ch.io/test/read.cgi/php/1010660032/202
203: 無謀者 [sage] 02/01/21 21:33 ID:??? >>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を個人情報画面で、書き換えたいんですが・・ てかそういう場合って新たにクッキー渡すんですか? http://medaka.5ch.io/test/read.cgi/php/1010660032/203
204: [] 02/01/22 00:28 ID:zQlW9qzl もう解決ずみみたいだけど。 >で書き込もうと思ってるんですが、>>でやると元のリスト+ >(元のリストー削除した要素)が追加されちゃうし、 > でやるとなぜか、もとのリストが全て消えて、 > 削除すべき要素だけがファイルに書き込まれてしまいます。 >> で開くのは、追加書き込み。ファイルは安全。 > で開くと、ファイルサイズがゼロになる。ファイルのデータは失われる。 ファイルロックを併用で、ファイルから読んだあと同一ファイルに 書き戻したい場合は、読み+書き(+<)で開くのが一般的かな。 該当ファイルが存在しない場合は、ファイルを作ってはくれないが。 http://medaka.5ch.io/test/read.cgi/php/1010660032/204
205: 名無しさん@お腹いっぱい。 [] 02/01/22 01:23 ID:4ftMAJcg >>203 クッキーの上書きだァ? それ位調べろってんだよヴォケ! http://medaka.5ch.io/test/read.cgi/php/1010660032/205
206: 名無しさん@お腹いっぱい。 [sage] 02/01/22 11:42 ID:??? >>205 数少ない自分が知ってるネタが出て来てよかったね ボクちゃん 早く病院に戻りなさい http://medaka.5ch.io/test/read.cgi/php/1010660032/206
207: 名無しさん@お腹いっぱい。 [ ] 02/01/22 16:17 ID:??? とりあえず今までのスクリプトどこかにUPしてみ 添削してくれるぞ、きっと http://medaka.5ch.io/test/read.cgi/php/1010660032/207
208: 無謀者 [sage] 02/01/22 16:33 ID:??? >>207 今、個人情報の入力&その処理、の部分を書いてるので、それが終わったら どっかにアップしてみます。垢とってこなきゃ・・・ もう、自分で処理内容を忘れないためのコメントが各所、各行に入りまくりの ソースなんで恥ずかしいんですが、なにぶん2週間前までは「配列って何?」 っていう人間が書いているものなのでその辺はご容赦ください。 今日の夜くらいにアップできればと・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/208
209: 名無しさん@お腹いっぱい。 [sage] 02/01/22 16:40 ID:??? >>208 ソースパクって明後日ぐらいからシェアウェアとして 配布させてもらいます。w プログラム名は、SuperCart2002です。 早めにうpして下さいね。 http://medaka.5ch.io/test/read.cgi/php/1010660032/209
210: 名無しさん@お腹いっぱい。 [sage] 02/01/22 16:50 ID:??? ココまで伸びてきていてなんだが‥‥ >>65 >えっと最終的にイメージにあるのは、来訪者(客)が各売場(ページ)で >任意に商品をカートに入れていって、最終的に注文ボタンを押すと >その内容が管理者(店主)と客注文明細のメールが行く、というものです。 以前作ったことがあるぞ、それ。個人商店向けで、ほとんど同じ仕様。 メール送信だけPerlでSendmail叩いて、あとJavaScript。 あ、商品ページは商品と単価はtextであげといてCGIから書かせたけどね。 #これなら途中で放棄してジャンプされてもカンケーなしだね。 ID/Pass発行して再ログインとか考えないなら、これで十分かもよ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/210
211: 無謀者 [sage] 02/01/22 17:05 ID:??? >>209 つうか、ここの住人の方ならパクらないでも数時間で書き上げる内容じゃないかと・・・(w >>210 javaScriptも触ったこと無いんで、スクリプトを書くという意味では、結局はどっちではじめても同じだったのかも 知れません。ただ、とっかかりが「既存のショッピングカートに商品ページ作成機能があればなぁ」 だったので、何も考えずにPerlでCGIを始めてしまいました。 しかし・・・普段HP作る時はDWとかばっかりだったんで、CGIの中のHTML書くのにタグが わからず苦労してたりします(苦笑 http://medaka.5ch.io/test/read.cgi/php/1010660032/211
212: 名無しさん@お腹いっぱい。 [sage] 02/01/22 17:07 ID:??? クッキーは正常終了する場合消しとけよ、意味は自分で考えろ。 途中終了の場合は仕方ないがそれでも退室ボタンなどで消せるようにしとけ http://medaka.5ch.io/test/read.cgi/php/1010660032/212
213: 210 [sage] 02/01/22 17:27 ID:??? >タグがわからず苦労してたりします ドリウィで満足行くまでデザインして、パクれ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/213
214: 名無しさん@お腹いっぱい。 [sage] 02/01/22 17:29 ID:??? 商品ページ作成機能ってなに? イメージが湧かない http://medaka.5ch.io/test/read.cgi/php/1010660032/214
215: 無謀者 [sage] 02/01/22 20:25 ID:??? >>212 はい、最終的にマイナス時間で渡して消すつもりです。 >>213 いやそのつもりではいるんですが、現段階DW立ち上げてると重くて効率 悪いので、手で打ってます。ある程度目処がついたらデザイン面は見直そうと思います。 >>214 究極で言うと、楽天みたいにWEB上で全てのページが作れてしまう機能とでも言いましょうか・・・・ http://www.xrea.com/に垢取ってアップしたけど動かん・・ ローカルはもちろん自分の借りてる鯖でも動いたんですが・・・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/215
216: 214 [sage] 02/01/23 01:12 ID:??? >>215 ああ、そういう機能ね。わかりました。 うちのは、エクセルからコピペして終わりだから そんなこと考えたことなかったです。 http://medaka.5ch.io/test/read.cgi/php/1010660032/216
217: 名無しさん@お腹いっぱい。 [] 02/01/23 01:15 ID:Jv+hzd4q >>211 初心者ですが、質問です。 JavaScript のカート、フリーのやつ 見たことあります。 フレームのindex.html の部分に、 プログラムが書いてありました。 あれって、フレームなしじゃ、 できないもんなんですか? http://medaka.5ch.io/test/read.cgi/php/1010660032/217
218: 210 [sage] 02/01/23 03:21 ID:??? >>217 >フレームなし JSの諸事情で、商品が複数ページに渡る場合、正直フレームにしないと 辛いな。 カート(このスレでの実装の場合、単なる送信フォームだが)と、 商品ページあわせて一枚なら、問題ないね。(ECサイトまで行かない 小さいショップのサイトの通販ページなんかで、この一枚タイプは 結構見かけるよ) 複数ページでフレーム避けたいなら、途中退場処理のコストを払っても やはりカートをサーバーサイドに置いたほうが楽だと思われ。 ただ、JavaScript使用を前提とする場合、フレームを嫌う理由はあまり ないね。この辺はクライアントの意向によるな。 http://medaka.5ch.io/test/read.cgi/php/1010660032/218
219: 名無しさん@お腹いっぱい。 [age] 02/01/24 10:19 ID:??? あげ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/219
220: 名無しさん@お腹いっぱい。 [ ] 02/01/24 11:10 ID:??? そろそろあきらめたかな? http://medaka.5ch.io/test/read.cgi/php/1010660032/220
221: 名無しさん@お腹いっぱい。 [sage] 02/01/24 11:26 ID:??? そろそろあきられたかな? http://medaka.5ch.io/test/read.cgi/php/1010660032/221
222: 無謀者 [sage] 02/01/24 13:34 ID:??? あきらめてないです。なんとか・・・ 一応sendmailでメールを送信するところまでは漕ぎ着けました。 まだ、文字化けしたり、mailに必要な内容が反映されなかったり とかありますが・・・・・それが解決したら次はページ作成用の スクリプトに着手です。 http://medaka.5ch.io/test/read.cgi/php/1010660032/222
223: sage [sage] 02/01/24 14:18 ID:??? いつのも間にかどんどんすすんでるね! がんばれよ>>1 http://medaka.5ch.io/test/read.cgi/php/1010660032/223
224: 名無しさん@お腹いっぱい。 [sage] 02/01/24 14:25 ID:??? がんばれよ。 日本語は本文はベタにISO-2022-JPだが、 subjectのエンコードはけっこうめんどくさいんだ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/224
225: 名無しさん@お腹いっぱい。 [sage] 02/01/24 21:22 ID:??? >>224 原理主義者で無ければ全部MIME::Base64しちまえば良いだろう。 これで困るMUAある? http://medaka.5ch.io/test/read.cgi/php/1010660032/225
226: 無謀者 [sage] 02/01/24 22:06 ID:??? 日本語コードって難しいですね・・・・ 本とか読むと”EUCで書く”って書いてあり、フォームから取得したデータを &jcode::convert(*form, 'euc');でデコード、でsendmailに送る時は &jcode'convert(*name, 'jis');って書いてあるんですが、それでやると 表示が文字化けしたり、送られたメールが文字化けしたり・・・・ でいろいろ試した結果、スクリプトをsjisで保存、フォームでコードは &jcode::convert(*form, 'sjis');メールはjisでデコードしたら今のところ うまく行ってます。ちなみにw2k+IE6での検証です。あとはWinのNNと MACでIE&NNを試してみないと・・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/226
227: 名無しさん@お腹いっぱい。 [sage] 02/01/24 23:49 ID:??? うんこすけーぷ4.xのヤロウ、たまにエンコード間違えやがるから、 確実にjis/sjis/eucを判定できる文字を各フォームに突っ込んどいて、 jcode.plかなんかで判定、convertんとき元コード指定せんと、テストで 上手く行ってても稼動させてしばらく経ったらクレームがなんて事が。 # 昔はまったな、これで。 charsetもHTTPヘッダ、METAで両方吐き出しとけ。念には念だ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/227
228: 名無しさん@お腹いっぱい。 [sage] 02/01/25 01:13 ID:??? >>215 アップされるのを待ってるんだが。 http://medaka.5ch.io/test/read.cgi/php/1010660032/228
229: 名無しさん@お腹いっぱい。 [sage] 02/01/25 01:25 ID:??? >>226 gooとかhotmailとかの有名どころも アカウント取って検証した方がいいよ。 以前 goo ではまったことがある。 http://medaka.5ch.io/test/read.cgi/php/1010660032/229
230: 名無しさん@お腹いっぱい。 [sage] 02/01/25 01:25 ID:??? スイマセン。どうしてもxrea.comで動かないんです・・・・・ 他のところで垢とって試してみます。 http://medaka.5ch.io/test/read.cgi/php/1010660032/230
231: 名無しさん@お腹いっぱい。 [sage] 02/01/25 02:13 ID:??? 困ったらとにかくへろぅわぅうど! #!/usr/bin/perl #サーバにあわせりゅ print "Content-type:text/plain \n\nHelloWorld."; exit; をウプだ。 これが動かないなら設置/設定方法が悪いかCGIが使えないかどっちかだな。 flockやsymlink、スクリプト本体より上のディレクトリにアクセスしてる 場合なんかもサーバによっては引っかかるぞ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/231
232: 名無しさん@お腹いっぱい。 [age] 02/01/25 02:17 ID:??? なにげに人気のあるスレだな。 何でだろう? http://medaka.5ch.io/test/read.cgi/php/1010660032/232
233: 名無しさん@お腹いっぱい。 [sage] 02/01/25 02:29 ID:??? >>232 1のマメなレスと、微妙なジサクジエンによるものであろう。 http://medaka.5ch.io/test/read.cgi/php/1010660032/233
234: sage [sage] 02/01/25 14:31 ID:??? これ自作慈円?なの? http://medaka.5ch.io/test/read.cgi/php/1010660032/234
235: 名無しさん@お腹いっぱい。 [sage] 02/01/25 15:25 ID:??? >>234 なんか>>1が叩かれても逆切れせず、氏ったかもしないで真摯にガンバッテイルから、 漏れはいくつか応援出したじょ。 #なんか自分がPerlいじりだしたころを思い出すんだよな、このスレ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/235
236: 無謀者 [sage] 02/01/25 19:29 ID:??? 先の鯖でどうしても動かないのですが、ご協力いただいた方へのお礼も含めて とりあえずソースだけでもウプして晒してみます。 コメントだらけの汚いソースですが2週間前にCGIに手をつけた素人という事で 見逃してください・・・・ ttp://cgitest.s7.xrea.com/cart.txt まだエラー処理とかは全然してません。とりあえず動いたというレベルです。 今他の鯖の垢申請中なので動けばまたウプします。 ちなみに自作自演はしてません。てかこんな自作自演できるくらいなこんな苦労しなくていいのに・・・・・(w http://medaka.5ch.io/test/read.cgi/php/1010660032/236
237: 名無しさん@お腹いっぱい。 [sage] 02/01/25 21:11 ID:??? さまになってきたジャン。 なんかスゲー懐かしい感じだyo http://medaka.5ch.io/test/read.cgi/php/1010660032/237
238: 名無しさん@お腹いっぱい。 [sage] 02/01/25 23:43 ID:??? たいしたもんです。感心しました。 http://medaka.5ch.io/test/read.cgi/php/1010660032/238
239: 無謀者 [sage] 02/01/26 00:38 ID:??? 文字コードEUCで送ったら動きました ttp://cgitest.s7.xrea.com/cgi-bin/shop4.htm ただやっぱりブラウザで頻繁に文字化けするし、sendmailで送られる データはバヶバケなんですよね はてさて、何にあわせるのが一番楽なのか・・・・ EUC統一がよさそうなんですが、そうするとブラウザが頻繁にエンコードミスるようなんですが うちのIEのせいでしょうか?それともやっぱりブラウザ出力部はS-JISにしといたほうがいいですか? http://medaka.5ch.io/test/read.cgi/php/1010660032/239
240: 名無しさん@お腹いっぱい。 [sage] 02/01/26 01:11 ID:??? >>239 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> だからじゃないの? http://medaka.5ch.io/test/read.cgi/php/1010660032/240
241: 名無しさん@お腹いっぱい。 [sage] 02/01/26 01:18 ID:??? 少し休め。 CGIが吐き出すHTML、<html>〜<head>〜</head>〜</html>が丸々抜けてんぞ。 shop4.htmはMETAの指定がShift_JISなのにファイル自体はEUC-JPだしな。 よくやったよ。フィニッシュに向けて、まずは寝れ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/241
242: 名無しさん@お腹いっぱい。 [sage] 02/01/26 01:28 ID:??? 正直、ここまでたどり着くとは思わなかった。 http://medaka.5ch.io/test/read.cgi/php/1010660032/242
243: 名無しさん@お腹いっぱい。 [] 02/01/26 10:31 ID:8XQYuO1B ☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < >>1 ねぇねぇまだなの?早く早く〜 \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 長野りんご. |/ http://medaka.5ch.io/test/read.cgi/php/1010660032/243
244: [] 02/01/26 13:29 ID:cJzc6DfB おおー、よくやったなー。お見事。 ちゃんとサブルーチンに分けてあるし。 見やすいし。 別に汚いソースじゃないじゃん。いいんじゃないの? http://medaka.5ch.io/test/read.cgi/php/1010660032/244
245: 244 [] 02/01/26 13:49 ID:8S+CJ+jU >sub sub_add{ > $ctime=time();#クッキーID作成用要素(時間) > $cid=$$+$ctime;#クッキー用ID 厳密には、クッキー用のIDが足し算だとイカンと思うが・・。 プロセスIDは一回転して戻ってくるから。 Windows だと、プロセスIDはランダムに割り当てられるし。 http://medaka.5ch.io/test/read.cgi/php/1010660032/245
246: 無謀者 [sage] 02/01/26 15:20 ID:??? お褒めの言葉ありがたい限りです。ホントここに来て見てよかったですありがとうございます。 で、文字コードなんですが・・・ 一般的にはスクリプト自体はEUCで書けとものの本には書いてありますよね? ただ、HTML表示はS-JISが一般的(だと思うのですが) たとえばスクリプトをeucで書いて(保存して)フォームからのデータは jcode.pl使ってEUCにコンバートで、スクリプト内のHTML表示部だけMETAタグでs-jis 指定してやればブラウザはちゃんと解釈してくれるんでしょうか? CGIというよりWEB作成の基礎の気もするんですが、今まではDW使ってて 文字コードって意識した事無かったもので・・・・・ 前に書いた通り全てS-JISで統一すれば楽なんですけど、スクリプトがeucじゃないと 動かない鯖にいきなりあたっちゃったもんで・・・・・ あと、この鯖、(てかeucでスクリプト書くと)sendmailで送られたメールが どうしようもなく文字化けするんですよね・・・・ちゃんとコンバートはかけてる はずなんですが。 >>245 $$で得られるIDが3桁みたいだったので重複する可能性も考えtime()とあわせてみたんですが ダメですかね?1秒以内に$$が重複する可能性は無いと思いまして・・・ アクセス数の極端に多い(同時に買物をスタートする可能性が高い)場合は問題になりそうですが・・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/246
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 271 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s