☆ショッピングカートのCGIを作りたい!Perlで☆ (517レス)
☆ショッピングカートのCGIを作りたい!Perlで☆ http://medaka.5ch.io/test/read.cgi/php/1010660032/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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
247: 名無しさん@お腹いっぱい。 [sage] 02/01/26 15:43 ID:??? >>246 内部でEUC処理するなら、出力もEUCで良いんじゃないの。 METAタグと、出力ヘッダの両方でEUCに指定した方がいいよ。 あと、メール本文はJIS出力でいいけど subjectはそれだけじゃダメでちゅ。バケまちゅ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/247
248: 244 [] 02/01/26 15:50 ID:8S+CJ+jU プロセスIDは、65535 までいくよ。 + って、文字列くっつけるんだっけ? 忘れちゃった。 $cid = "$ctime$$"; とかにしとく方がいいかと思ったんだけど。 あとcgi なら、同時アクセスでも、別のプロセスを立ち上げるから、 同時に買い物をスタートされても平気。 http://medaka.5ch.io/test/read.cgi/php/1010660032/248
249: 名無しさん@お腹いっぱい。 [ ] 02/01/26 16:10 ID:??? お!キレイにかけてるじゃん 俺のスクリプトよりもキレイだぞ; しかしCGI.pm使ってないの見るの久しぶりなんでなんとも懐かしいにおいがする のう。。。 http://medaka.5ch.io/test/read.cgi/php/1010660032/249
250: 無謀者 [sage] 02/01/26 16:12 ID:??? あ、そうか・・・・数字の足し算だと確かに重複の可能性がありますね・・・ 修正させてもらいます。 で、やっぱりメールの本文の文字化けが解消しない・・・・ スクリプトとHTML出力はEUCで統一したんですが。 @sendml=メールの本文; &jcode'convert(*sendml, 'jis'); じゃダメなんですかね? @sendmlはファイルから読み出して格納してます。 ファイル自体は開いて見るとeucになってるみたいなんですが。 http://medaka.5ch.io/test/read.cgi/php/1010660032/250
251: 名無しさん@お腹いっぱい。 [sage] 02/01/26 16:22 ID:??? ソースよく見てないんだけど、 @sendmlってことは、配列なんでしょ。 jcodeなら各要素ごとにやらなだめでしょ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/251
252: 無謀者 [sage] 02/01/26 16:31 ID:??? なるほど・・・だとすればファイルに書き込む段階で各要素(変数) をjisでコンバートして最後に一気に読み込んで送信すれば良いんですかね? http://medaka.5ch.io/test/read.cgi/php/1010660032/252
253: 名無しさん@お腹いっぱい。 [sage] 02/01/26 16:35 ID:??? readparseが見当たらないが、ブラウザから受け取ったデータの汚染チェックはしているかな? たとえばcookieに予想していない文字列突っ込まれたときとか http://medaka.5ch.io/test/read.cgi/php/1010660032/253
254: 無謀者 [sage] 02/01/26 16:44 ID:??? メールの文字化けの件、ほぼ解決しました。ご指導いただいた方ありがとうございました。 >>253 ReadParseってフォームからのデータの取得にしか使ってないんですが、 他にも何か使い方があるんでしょうか?なんやら重要そうな内容みたいですが・・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/254
255: 名無しさん@お腹いっぱい。 [sage] 02/01/26 17:06 ID:??? ソース見たんですが、ReadParseのあと フォーム要素のハッシュに対してもjcodeで一括変換しようとしてるでしょ。 テストしてうまく行ってるのかもしれないけど、 jcodeは効いてないんじゃないかな。 http://medaka.5ch.io/test/read.cgi/php/1010660032/255
256: 名無しさん@お腹いっぱい。 [sage] 02/01/26 17:07 ID:??? 例えばcookieに"../xxxx%00"とか仕込まれて、汚染チェックをしていないと cartファイルが../xxxxになってしまう。 ブラウザから渡されたデータは全て信用できないものと仮定して汚染チェックを行わなければいけない。 それをReadParseの中でやっているのなら問題はないが、汎用ルーチンのようなのでやっていない可能性大。 http://medaka.5ch.io/test/read.cgi/php/1010660032/256
257: 241 [sage] 02/01/26 22:45 ID:??? お、直ってんジャン、CGIの吐くタグ。 まだ余計な<center>が<body>の前にひとつついてくるが。 EUC統一ついでにHTMLファイルもEUCに統一しちゃうと、フォームから入力される 文字コードはEUCと決め打ちできるから、入力段(&ReadParseのあと)でのコード 変換は要らなくなるぞ。 いま化けるのは>>255さんの言うとおり、商品ページがSJISで、jcode.plが SJIS->EUCを変換し切れてないからだろう。 (ひょっとするとメールの件もここの変換ミスが一枚絡んでいるかもね) &ReadParse( *form); foreach $key(keys %form){ jcode::convert(\$form{$key}, 'euc'); #現在内部処理をEUC統一したそうなんで } とかのほうがベターだろう。(生書きだから検証してないけど) http://medaka.5ch.io/test/read.cgi/php/1010660032/257
258: 無謀者 [sage] 02/01/26 23:14 ID:??? いろいろありがとうございます。shop.cgiに関しては少しずつ煮詰めていきたいと思います。 さて、これを始めるきっかけにもなった商品用ページ作成用CGIの作成に取り掛かろうと 思ってるのですが、その方法についてお知恵拝借いたしたく。 作りたい商品ページの形式としては今ウプしてあるようなかたちです。 画像ファイルのアップロード等勉強しなくちゃいけないことは山ほどあるのですが、手順として どういうものがあるのか。 今考えてるのは、テーブル一個分の項目(1商品分)を一行としたdatファイルに保存しておいて それにタグを挿入してHTMLファイルを作るというものです。新規商品を追加する時や削除 する時はそのdatファイルを呼び出して編集・削除・追加を行いHTMLファイルを丸々上書きという 方法です。HTMLファイルを直接いじるのはタグなどが邪魔して非常にめんどくさそうなので、 HTMLファイルをいじるのではなく、datファイルを編集してそのたびにHTMLを書き直すほうが 楽かなぁと思ったので・・・・ HTMLを作らずにdatファイルからcgiで表示も考えたのですが、鯖の負荷等考えるとHTML生成しちゃった 方が良い気もしたので。 あとページごとのデザイン等の一括変更とかの機能にはCSS使うしかないですかね・・ http://medaka.5ch.io/test/read.cgi/php/1010660032/258
259: 名無しさん@お腹いっぱい。 [sage] 02/01/27 00:03 ID:??? 編集、削除が出来る掲示板で、管理者以外カキコ禁止にすれば、あと一ひねりだろう。 画像は専用ディレクトリを作って、ファイルリストをgetして、 BBSの書き込みフォームのページかなんかにWidth/height指定してfilenameと 画像をサムネイル表示。 書き込みフォーム自体にはプルダウンメニュー(select/option)か何かを動的に 生成して、書き込み情報に加えるとかすればOK 画像ウプは説明が長くなるから、まあ「form multipart」あたりでグーグル逝け。 デザイン一括変更は雛型式(デザインを外部ファイルで指定)のBBSを (拾ってく|作)ればいいんでないかい? http://medaka.5ch.io/test/read.cgi/php/1010660032/259
260: 無謀者 [sage] 02/01/27 01:50 ID:??? なるほど、掲示板を応用すれば良いんですね。商品ページは複数ページ作りたいんで、 ・多板作成が可能 ・板毎のデザイン変更が可能 ・書き込み内容編集が可能 ・画像アップロード可 って掲示板探してそれを参考にしてみよう。 ・・・・って思って、画像以外は2ch型改造のAhhanBBSがよさそう なんでソース見てみたら複雑すぎてわけわかめ(鬱 もうちょっと簡単そうなの探してみよう。 というわけでCGI INDEXとCGI ZOOで旅してきます。 http://medaka.5ch.io/test/read.cgi/php/1010660032/260
261: sage [sage] 02/01/28 15:00 ID:??? ttp://cgitest.s7.xrea.com/cart.txt これみれなくなってるぞ?! けした? おれもソースみてみたいからみせてくれ>>1 なんかだいぶできてきたみたいだね! http://medaka.5ch.io/test/read.cgi/php/1010660032/261
262: 無謀者 [sage] 02/01/28 17:13 ID:??? >>261 スイマセン消してました。 またアップしますのでしばらくお待ちください。 http://medaka.5ch.io/test/read.cgi/php/1010660032/262
263: sage [sage] 02/01/29 11:00 ID:??? うぃ!たのしみにまっとるよ! http://medaka.5ch.io/test/read.cgi/php/1010660032/263
264: 名無しさん@お腹いっぱい。 [age] 02/01/30 16:55 ID:??? あげ。 http://medaka.5ch.io/test/read.cgi/php/1010660032/264
265: 無謀者 [sage] 02/01/30 20:21 ID:??? ちょっと仕事がつまり気味で、停滞中・・・・・ >>263さんスンマソンしばらくお待ちください http://medaka.5ch.io/test/read.cgi/php/1010660032/265
266: 名無しさん@お腹いっぱい。 [ ] 02/02/02 18:51 ID:??? 1よ、もうこのスレは放置かい? http://medaka.5ch.io/test/read.cgi/php/1010660032/266
267: 無謀者 [sage] 02/02/02 20:06 ID:??? スイマセン、ちょっと仕事が立て込んでて・・・・ 尻取りスレにでも使っといてください http://medaka.5ch.io/test/read.cgi/php/1010660032/267
268: うぇw [] 02/02/03 01:02 ID:RmsIRY/L 援助交際な出会い http://www.kgy999.net/e.html 女子小学6年生レイプ画像 http://www.kgy999.net/imc/434233455231.jpg 女子小学6年生レイプ動画 http://www.kgy999.net/imc/94324.mpeg ertret r r et rt http://medaka.5ch.io/test/read.cgi/php/1010660032/268
269: 名無しさん@お腹いっぱい。 [sage] 02/02/03 13:52 ID:??? 良くココまで来た・・・。 http://medaka.5ch.io/test/read.cgi/php/1010660032/269
270: 傍観者 [sage:復帰おまちしてますぞ] 02/02/03 16:59 ID:??? ちと進行が遅くなってるのが残念だけど、無謀者氏とレベルが 近しいので、実用的な読み物としてヲチしてます …ま、目先の仕事優先は仕方なし…かな? http://medaka.5ch.io/test/read.cgi/php/1010660032/270
271: 名無しさん@お腹いっぱい。 [sage] 02/02/03 20:00 ID:??? >>267 あんたさ、折角なんとかマトナなスレになりつつあったのに、 尻取りスレにでも、は無いだろう。 一体どういう神経してるんだよ。 それじゃ、始めるぞ。 「パール」 http://medaka.5ch.io/test/read.cgi/php/1010660032/271
272: 名無しさん@お腹いっぱい。 [ ] 02/02/03 20:58 ID:??? >271 まったくだプンプン。 早く帰ってくるのみんな待ってるのに。 「ルビー」 http://medaka.5ch.io/test/read.cgi/php/1010660032/272
273: 名無しさん@お腹いっぱい。 [sage] 02/02/03 21:01 ID:??? おいおい、本当に>>1は呆れた奴だなー 「ビール」 http://medaka.5ch.io/test/read.cgi/php/1010660032/273
274: 名無しさん@お腹いっぱい。 [sage] 02/02/03 22:54 ID:??? 「ルビー」(´Д`;) http://medaka.5ch.io/test/read.cgi/php/1010660032/274
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 243 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s