1read 100read
2013年06月WebProg459: ●CGI作成に愛の手を・・・● (160) TOP カテ一覧 スレ一覧 2ch元 削除依頼
CGIとJSPとPHPどれが得か? (177)
Mac OS X + PHP + MySQL (189)
htmlを「文章を意味付けする」なんて言う奴はヴァカ (110)
ASP.NET MVC (107)
MacOSXでローカルCGIテスト (198)
不正アクセスUPを防ぐには (106)

●CGI作成に愛の手を・・・●


1 :2008/08/10 〜 最終レス :2012/06/10
とあるバイクの部品問屋で働いておりまつ
ウチのお客さんはバイク屋さんになるわけなんですが、
お得意さんが500件以上あり、毎日電話注文がじゃんじゃんと。。。
そこで、ベーシックな部品(タイヤや電球やブレーキパッドなどなど)だけ
PCやケータイから発注してもらえたら、電話受けを大幅に減らせると思い
よくある無料ショッピングカートCGI?を設置してみたけど
想定の作業とは大幅に違ってしまい、CGI改変か0から勉強して
自作してみようと思っています。
どなたかヒントか原型を作成していただけませんでしょか・・・

2 :
現段階で作成したいCGIの動作・構造は

●お得意さんの管理は電話番号とパス(初期は1234とか)をCSVなどで。
●WEB発注ページにアクセスするとまずは電話番号とパスを入力要求
●車体情報&発注部品選択・入力画面
 車種メーカー選択:プルダウンなどで(カワサキ・スズキ・ホンダ・・)
 年式選択:昭和・平成プルダウン 年数テキスト入力
 型式入力:テキスト入力
 車体番号入力:テキスト入力
 タイヤフロント □:チェックボックス
 タイヤリヤ □:チェックボックス
 オイル □:チェックボックス
 ・・・ □
 ・・・ □
 ・・・ □
 その他:テキスト入力
 発注担当者様名:テキスト入力
●送信ボタンで発注内容確認プレビュー画面へ
 前頁で入力した車体情報・発注部品と
 お届け先&発注元として電話番号とお客さん名(会社名)と
 発注担当者様名を表示
●決定ボタンでsendmail送信
●お得意さんは電話番号とパスでログインし、発注履歴確認可能

3 :
こんな感じのカートというかメールフォーム?を作成したいのですが
どなたか原型を作成していただけませんしょうか?

4 :
2ゲト

5 :
悪いこと言わないから業者にたのめ。
素人がやったところでセキュリティ突かれて客に迷惑かけるだけだよ。
デザイン気にしないでいいのなら10万くらい出せばやってくれるところはあるはずだから。

6 :
ついでにいちいち単独でスレたてるな。
質問スレとかで聞けばいいことだから。

7 :
夏だな

8 :
まず、君がPerlなりphpなりを習得して、
自分の要件を満たすシステムを構築するまでに
かかる所要日数をあてずっぽうで良いから考えてみよう。
次に自分の給料を日割りして、所要日数にかけてみる。
んで、そのシステムを構築する事で発生するメリットと比べてみて
それでも必要だと思えるなら、一生懸命上司を説得して
その金額で発注できる業者を探すんだ。

9 :
ていうかさ、顧客情報を扱うシステムをよく自分で作る気になるよね
セキュリティに穴があったらどうするの?

10 :
てか、普通に
「order@~~~.co.jpのメールアドレスに必要事項を記載して送信してください」
で十分だと思う。
PCにウィルス対策ソフトインストールしておけば、セキュリティもまず問題ないだろうし。
あとはエクセルで管理すれ。

11 :
顧客情報と言っても管理するお客さんの情報は
社名と電話番号のみですのでタウンページに
記載されている程度の情報なので問題無いかと思うんですが。。。
発注内容の履歴を残しても、純正部品や選定の難しい部品発注、
金額の多い部品発注は電話で受け、ネット注文は簡単な部品のみなので
お得意さんの購入部品すべてをネットで行うわけではありません
少なくてもは一日で500回の電話受注があります。
その中で、前述の簡単な部品発注が半数を占めています。
ネット環境が無い店舗、携帯入力が難しい方もいらっしゃると
思われるので、250回の簡易部品電話発注のうち、
30%でも75回の電話を減らせるようになれば、
選定の難しい部品発注の電話受け対応向上と
電話受けの人数を減らすことにも繋がってきます。
初期はネット受注による割引サービスで利用率を上げて
こちらの人件費削減を図ろうとも思っています。
業者に頼むのも一番初めに考えましたが、
後の改変・改造と不具合発生時の緊急対応を含めて
自分で勉強しておいた方がいいと上司に申し出ました。
丸々作成してくださいというお願いではなく、ヒントか原型を
作成してもらえませんでしょうか?というお願いです。
それを元にCGIの参考書片手に勉強したいのです。
(参考書内とフリーCGIソフトなどを探しましたが、
 前述の動作を目的とした作成の仕方がいまいち
 把握しきれなかった為、スレ立てさせていただきました。)

12 :
とあるサイトで郵便番号検索CGIを見つけました。
郵便番号を入力すると住所が表示されるものです。
その郵便番号を電話番号に変えて、社名が表示されるようにしたいのです。
中には文字入力が苦手な方もいますので、ただメールを送信するよりも
電話番号入力とチェックボックス・プルダウン選択、
そしてちょっとした文字入力で完了できるようにしたいと


13 :
っています。
ちなみに1でお得意さん数を500と書きましたが、
登録顧客数は1.5倍くらい存在します。
(月単位での販売実績が3万円以上のお得意さんが約500件です。)
変なとこで書き込んでしまい申し訳ないです。

14 :
プログラム的な簡単なものだし、やれば君にだって作れると思うけど。
まぁ単発スレ立ててる時点で常識なさそうだし無理か・・・

15 :
だって、この人
>業者に頼むのも一番初めに考えましたが、
>後の改変・改造と不具合発生時の緊急対応を含めて
>自分で勉強しておいた方がいいと上司に申し出ました。
とか上司に申し出ておいて、
>ヒントか原型を作成してもらえませんでしょうか?というお願いです。
とかしゃあしゃあと、書いちゃうアホだよ。
だれが、どうゆう理屈で原型をつくってやんなきゃならないんだよ。

16 :
>>1
軽々しく考えすぎ。
たとえばシステムに不具合があって誤発注になって損害が出た場合、
誰がどのように責任を取るのか?
セキュリティに穴があって第三者が悪意で大量の注文を出した場合、
どうやって対処するのか?
少なくとも B to B および B to C のサイトを
素人がたいした知識もなく構築したところで、
あとあと泣きを見るだけだよ。
CGIを勉強したければ、誰にも迷惑のかけないように個人サイトから始めるのがスジ。
CGIがらみの知識だけでなく、少なくともセキュリティやその他諸々の知識を習得するのに
仕事の片手間に独学でやるとするなら最低でも1年はかかるとみていい。
セキュリティのこと色々習得するだけでもそうとうかかる。
時間が大事か、金が大事か? 上司に相談すべし。
業者に仕事を出して、その仕事内容やソースを直接見て勉強するのが
CGIがらみの知識を会得する一番の近道だと思うが。

17 :
病気持ちでニートの俺が勉強がてらに作ってみよう。
以前、掲示板を少し改造したことがあるので、Perlでいきます。
データベースは使ったことないので、ファイルに情報を書き込みます。
体調みながらボチボチやるので、1週間ぐらいかかるかな。
まあ、挫折もあるかもしれんけどw

18 :
DB使わない理由がわからん。
使えないのなら、勉強してでも使えるようにするべき。

19 :
>>18
俺も思う
顧客情報と履歴の管理をファイルベースでやるのは無謀と。
顧客情報管理はやれないことはなくても、履歴管理はまずムリでは?
こういう分野ではほぼDB必須ですよ
みんなの言うように業者に作って貰ってまずは稼動させるが良いと思う。
改造とか保守のことを言うなら、そのソースを読んで勉強すればイイ
基本的にcgiとかのソースはコピペ出来るんだから、勉強用にも設置すればヨシ
業務効率の為なのか、勉強の為なのか分からない状態になってないかい?
優先すべきことは電話注文の負担を減らすこと、じゃないかな〜


20 :
DB必須というほどのものでもない。
リレーションとか必要ないし、テキストベースでも十分構築は可能。
まぁ、使える環境なら使って損は全くないが。
まぁ、>>1も消えたみたいだし、このスレはこれでおしまいということでいいだろう。

21 :
>>1さん消えたのか。
なんとか挫折せずに80%ぐらい作ったのに。。。

22 :
とりあえず完成しました。
以下URLより入手できます。
http://wat.s101.xrea.com/order/order.zip
テストは以下URLよりできます。
http://wat.s101.xrea.com/order/top.html
しかし、何故かActivePerlでするとエラーが出る。
xreaではエラーが出ないのに。。。
画面遷移時、パスワードは<type type="hidden">で渡しているけど、セッションIDを
使った方がいいですかね?

23 :
>>22
すげぇ、頑張ったね

24 :
>>22
よくがんばった、>>1いないのに・・・
> セッションID
保持する情報がパスワードだけなら不要かな
どうせSSLで保護するならhiddenであろうとなかろうと問題ないだろうし
後はパスワード管理の方法をしっかりすればよさげ

25 :
>>23-24
ありがとう。
気が向いたらセッションID編も作ってみようと思う。

26 :
まぁ、>>1はSSLとか頭の隅にもなさそうだけれどな。
あとは入力値のチェックをもっとやらないと。
このままじゃセキュリティー穴だらけ。

27 :
>>26
電話番号とメールアドレスだけをチェックしていました。
明日、その他の入力値もチェックするコードを追加したいと思います。

28 :
入力値のチェックを入れました。

29 :
管理画面からユーザーのパスワードを削除できる機能を追加したら、ActivePerlでも動作するようになった。
ActivePerlのバグだったのかなー

30 :
>>29
一度エラーメッセージをここに書いてみたらどうだ?
エラーってことだから構文エラーだったりstrictなエラーだったりするわけだが、
パスワード削除機能でエラーが解消された・・・と言う状況が謎を呼んでるぜ
どうせ>>1いないし

31 :
>>30
ヒアドキュメントのTerminator '_EOL_'がないっていうエラーなんですよね。
下記のように書いたところ。
$var{"会社情報"} .= <<"_EOL_";
なんとか
かんとか
_EOL_
でも、xreaのPerlではエラーなしで動いてた。
それで、このヒアドキュメントに文字を追加して、
$var{"会社情報"} .= <<"_EOL_";
なんとか
かんとか
さらになんとか
_EOL_
ってしたらエラーを吐かなくなったと。

32 :
それで、その該当のヒアドキュメントだけをコピペして、その部分だけを実行するとエラーなしで
実行される。

33 :
それで今、下記のように元にもどして実行したらエラーが出なくなった。
$var{"会社情報"} .= <<"_EOL_";
なんとか
かんとか
_EOL_
他に追加したコードが影響しているのかもしれない。。。

34 :
>>31
構文上は問題ないよなぁ
ググってもそれらしい事例がある訳でもないようだし・・・
可能性の1つとしては文字コードか・・・
EOLの上の行末の文字が改行コードを巻き込むことがあるかもしれん(sjisなら

35 :
>>34
sjisで書いてます。
まあ、今はエラーが出ていないので結果オーライということで^^;

36 :
>>1頼むだけ頼んで礼も言えずに消えるとはどんだけゆとり?
話し変わって>>22さんのCGIをDLして使用してもいいかなぁ?
CGIよくわからんけど兄貴が経営してる会社で非常に便利に使えそう
設置できるかどうかも危ういけど勝手に使うのも気が引けたので

37 :
せっかく >>22 が作ってくれたものだし
何かの役に立てたいよな
>>22の気持ち次第だが
>>1の冥福をお祈りいたします ナム!

38 :
>>36-37
多分>>1は、>>14-16あたりのレスに腹を立てて、もう来なくなったのではないかと。
ライセンスとかどのようなものがあるかわからないけど、勝手に使ってもらってもいいですよ。
その代わり、このスクリプトを使ってどのような被害を被っても責任は負いませんよw

39 :
>>1は今勉強中で、ここを見に来る暇もないんだよ。

40 :
勉強して戻ってきた>>1>>22のソースを見たらどう思うか見モノですな
>>38
> ライセンスとかどのようなものがあるかわからないけど、勝手に使ってもらってもいいですよ。
> その代わり、このスクリプトを使ってどのような被害を被っても責任は負いませんよw
ある意味、この言葉がライセンス規約となったなw

41 :
>>22さん ありがとうございます
ライセンス規約に則って使わせてもらいますw

42 :
お金出してコールセンターを設置した方がいいんじゃね?

43 :
>>42
用途や規模、重要視度によるかもな

44 :
ネットでブラウザから部品注文できるとこと電話でのみ受け付けるとこがあったら
迷わずネット使うなw

45 :
質問者は「電話が多くて困ってる」んだからいいんじゃね。

46 :
早速BiglobeにうpしてみたんだけどエラーでCGIが動作しないす…
サーバー仕様は↓の通りです
http://homepage.biglobe.ne.jp/manual/shiyou/index.html
ちなみに>>22さんがうpされてたxrea.comにお試しで登録してうpしたら
スムースに動作しました。何かサーバー仕様にあわせる設定が必要なんじゃろか?

47 :
>>46
>>22です。
私もまだまだ未熟者ですが、一応レスさせてもらうと、
order.cgiの先頭行のPerlのパスをPerl5にするとどうでしょうか。
【オリジナル】
#!/usr/local/bin/perl
から
#!/usr/local/bin/perl5
に。
それからメールのパスが違いますね。
init.cgiの、
【オリジナル】
our $sendmail = "/usr/sbin/sendmail";

our $sendmail = "/usr/lib/sendmail";
に。

48 :
Software error:
Can't locate HTML/Parser.pm in @INC (@INC contains: ./lib /usr/local/pkg/perl/5.8.7/lib/i386-linux-thread-multi /usr/local/pkg/perl/5.8.7/lib /usr/lib/perl5/site_perl/5.8.7/i386-
linux-thread-multi /usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-
linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at lib/HTML/FillInForm.pm line 9.
BEGIN failed--compilation aborted at lib/HTML/FillInForm.pm line 9.
Compilation failed in require at util.cgi line 7.
BEGIN failed--compilation aborted at util.cgi line 7.
For help, please send mail to the webmaster (webmaster@mesh.ad.jp), giving this error message and the time and date of the error.
Software error:
[Thu Aug 21 23:39:04 2008] order.cgi: Can't locate HTML/Parser.pm in @INC (@INC contains: ./lib /usr/local/pkg/perl/5.8.7/lib/i386-linux-thread-multi /usr/local/pkg/perl/5.8.7/lib /usr/lib/perl5/site_perl/5.8.7/i386-
linux-thread-multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at lib/HTML/FillInForm.pm line 9.
[Thu Aug 21 23:39:04 2008] order.cgi: BEGIN failed--compilation aborted at lib/HTML/FillInForm.pm line 9.
[Thu Aug 21 23:39:04 2008] order.cgi: Compilation failed in require at util.cgi line 7.
[Thu Aug 21 23:39:04 2008] order.cgi: BEGIN failed--compilation aborted at util.cgi line 7.
Compilation failed in require at order.cgi line 13.
For help, please send mail to the webmaster (webmaster@mesh.ad.jp), giving this error message and the time and date of the error.

49 :
>>22さんレスサンクスです。
perl5とsendmailんとこ修正してみましたが↑こんな感じのエラーがでまつ
どうしたもんでしょう?

50 :
>>49
サーバさんがHTML/Parser.pmというファイルが無いとおっしゃっているようですが?
CPANへGo!

51 :
>>49
>>22です。
ActivePerlのParser.pmを同梱しましたので、もう一度、>>22よりzipファイルをダウンロードして、
サーバーにあるFillInForm.pmの更新と、Parser.pmの転送をしてください。

52 :
Software error:
Can't locate HTML/Entities.pm in @INC (@INC contains: ../ ./lib /usr/local/pkg/perl/5.8.7/lib/i386-linux-thread-
multi /usr/local/pkg/perl/5.8.7/lib /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-
multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at lib/HTML/Parser.pm line 14.
Compilation failed in require at lib/HTML/FillInForm.pm line 10.
BEGIN failed--compilation aborted at lib/HTML/FillInForm.pm line 10.
Compilation failed in require at util.cgi line 7.
BEGIN failed--compilation aborted at util.cgi line 7.
For help, please send mail to the webmaster (webmaster@mesh.ad.jp), giving this error message and the time and date of the error.
Software error:
[Fri Aug 22 10:26:30 2008] order.cgi: Can't locate HTML/Entities.pm in @INC (@INC contains: ../ ./lib /usr/local/pkg/perl/5.8.7/lib/i386-linux-thread-
multi /usr/local/pkg/perl/5.8.7/lib /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-
multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at lib/HTML/Parser.pm line 14.
[Fri Aug 22 10:26:30 2008] order.cgi: Compilation failed in require at lib/HTML/FillInForm.pm line 10.
[Fri Aug 22 10:26:30 2008] order.cgi: BEGIN failed--compilation aborted at lib/HTML/FillInForm.pm line 10.
[Fri Aug 22 10:26:30 2008] order.cgi: Compilation failed in require at util.cgi line 7.
[Fri Aug 22 10:26:30 2008] order.cgi: BEGIN failed--compilation aborted at util.cgi line 7.
Compilation failed in require at order.cgi line 13.
For help, please send mail to the webmaster (webmaster@mesh.ad.jp), giving this error message and the time and date of the error.

53 :
>>51
>>22さんのアドバイス通りzip再ダウソしてupしましたが
またもやエラーでつ
>>50さんありがとう CPAN具具ってみたけど私に理解できそうもない言葉がずらずらと並んでまう
びgぉべ以外のサーバーにしたほうがよかですかねぇ?

54 :
今度は HTML/Entities.pm がないとな

55 :
>>53
CPANのサイトの「SEARCHING」の欄にある"CPAN modules, distributions, and authors (search.cpan.org)"から
Perlモジュールの検索サイトに飛べるから、
そこから必要なモジュールをダウンロードして使うといいよ。
今度は>>54が言ってるように、HTML/Entities.pmが無いみたいだけど。
(他にもいくつか足りてない可能性があるね。)

56 :
>>53
Entities.pmも入れました。
>>22より再ダウンロードして、Parser.pmとEntities.pmをアップしてください。

57 :
Software error:
Can't locate loadable object for module HTML::Parser in @INC (@INC contains: ../ ./lib /usr/local/pkg/perl/5.8.7/lib/i386-linux-thread-multi /usr/local/pkg/perl/5.8.7/lib /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-
multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at lib/HTML/FillInForm.pm line 10
Compilation failed in require at lib/HTML/FillInForm.pm line 10.
BEGIN failed--compilation aborted at lib/HTML/FillInForm.pm line 10.
Compilation failed in require at util.cgi line 7.
BEGIN failed--compilation aborted at util.cgi line 7.
For help, please send mail to the webmaster (webmaster@mesh.ad.jp), giving this error message and the time and date of the error.
Software error:
[Fri Aug 22 13:50:17 2008] order.cgi: Can't locate loadable object for module HTML::Parser in @INC (@INC contains: ../ ./lib /usr/local/pkg/perl/5.8.7/lib/i386-linux-thread-
multi /usr/local/pkg/perl/5.8.7/lib /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-
multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl
/5.8.7 /usr/lib/perl5/vendor_perl .)
at lib/HTML/FillInForm.pm line 10
[Fri Aug 22 13:50:17 2008] order.cgi: Compilation failed in require at lib/HTML/FillInForm.pm line 10.
[Fri Aug 22 13:50:17 2008] order.cgi: BEGIN failed--compilation aborted at lib/HTML/FillInForm.pm line 10.
[Fri Aug 22 13:50:17 2008] order.cgi: Compilation failed in require at util.cgi line 7.
[Fri Aug 22 13:50:17 2008] order.cgi: BEGIN failed--compilation aborted at util.cgi line 7.
Compilation failed in require at order.cgi line 13.
For help, please send mail to the webmaster (webmaster@mesh.ad.jp), giving this error message and the time and date of the error.

58 :
お次はこんなんでました。
ってかエラーログを書き出すのってマナー違反とかであれば
控えますんで注意してくだしあ
HTML::Parserのモジュールが見当たらなくてロードできないよ?って
言ってるんですかね? んむぅ

59 :
>>58
大抵最初の方で原因が書いてあって、後は停止箇所や細く
今回はモジュール関係だから「Can't locate loadable object for module HTML::Parser」とかだけで分かるよ
んで今回のエラーは致命的だな
多分Parserの実体であるバイナリがライブラリエラーを出してる
ぶっちゃけOSが違うから動かないかそもそもコンパイルされてないってわけ
ParserはCでコンパイルされなきゃならんからの〜
やっぱ別鯖?

60 :
今、xreaは有料しかないのかな?

61 :
この辺を使ってみるのはどうでしょうかね?
無料レンタルサーバ my-sv.net
http://www.my-sv.net/
PF-X.NET
http://pf-x.net/

62 :
会社で使うものを無料鯖で動かそうとするとはおこがましいな…。
月1000円くらい出せよ、って思うが。

63 :
安全性や保守性を無視しても必要経費が少なければないに越したことはないさ
この際人件費が含まれないのは中小零細には日常だしな

64 :
少し修正しました。
1.会社情報ファイルと購入履歴ファイルを分離
2.発注の二度クッリク防止
3.リファクタリングしてコード量を少し縮小
だいぶん、Perlに慣れてきた。

65 :
こっそり応援してるぜ!

66 :
>>65
どもです。
でも、>>1さんはもう来なさそうなので、日の目を見ることがないスクリプトですがw

67 :
それでも>>22のPerlレベルが上昇しているなら意味はあるよな

68 :
いやはや報告遅くなりました
結局Biglobeは諦めて>>61で紹介されたトコとか
他にもいろんな所で登録してみて設置テストしてみましたが、
最終的にはxrea+(有料)に決めましたー!とりあえず動作確認OKで、conv.plで登録もOK
次はHTMLデザインを少々変更してみようと思ってまつ。>>22さん これからもお世話になりますw

69 :
>>68
いやー、使ってくれる人がいると嬉しいです。
自分なりにセキュリティの向上、パフォーマンスの向上を図ってますので最新版を使ってください。
xreaにした決め手は何ですか?

70 :
>>69
いやいやこちらこそ助かっております。
xreaにした決め手は
1.22さんがテストをUpされてた鯖なので設定変更不要でラクチンかな?
2.無料鯖も試したけど、広告が邪魔or仮登録してUpしたらBiglobeと同じ
  ようなエラーが出たetc
以上ですw

71 :
>>70
FillInForm.pm を使うとダメな鯖があるみたいだね。
かといって、自分でフォームを復元するプログラムを書くのはちょっとはばかりますが。

72 :
>>22さんへ質問と提案
管理者ログインパスワード入力欄を別ページ(例えばadmin.html)に
分離するのは難しいでしょうか?

73 :
>>72
全く問題ないですよ。
top.htmlをコピーし、admin.htmlに名前を変えて、一般ユーザーログイン部分を消去すればいいです。
そして、top.htmlの方は、管理者ログイン部分を消去すればいいです。
具体的には、<hr>タグより上が一般ユーザーログイン部分で、それより下が管理者ログイン部分。

74 :
>>72
cryptは環境によって、パスワード8文字までしか有効でないらしいので、暗号化方式をDigest::MD5
に変更しました。
なので、新しいのに差し替えることをお薦めします。

75 :
>>73 >>74
ありがとです〜!いい感じに切り離せました。
ちなみに購入履歴が未だ無い状態で{購入履歴}クリックで表示される
エラー表示
(ファイルエラー
./data/電話番号history.cgiが開けません in read_data
「ブラウザの戻る」で戻って下さい。)
の表示なんですけど、util.cgi内の
("ファイルエラー", "$open_fileが開けません in save_data");のトコろを
("購入履歴が無いか、ファイルが開けません。");って風に書き換えても
よかですか?
ちなみに今、ケータイからの閲覧・発注もでけるよーに
top.html及びその他htmlの配置と入力欄の文字入力モード指定などを
いじくっておりまつ。楽しいですw

76 :
>>75
それでもいいのですが、エラー画面のあと、ブラウザの戻るボタンで戻るとうまく戻れないと思います。
なので、購入履歴がない場合は、戻るボタンをつけました。
>>22から最新のzipファイルを落としてください。

77 :
>>75
エラーにするより、購入実績のない空表を表示したほうがいいと思い、そうしました。

78 :
>>76 >>77 ありがとうです〜!
空欄バッチリOKです。
ちなみにひとつ案なのですが、
顧客全ての購入履歴を毎月または年一でもいいのですが
クリア(と言ってもダウンロードして保存しときたいとは思うけど)
する構成は難しいでしょうか? 延々と購入履歴が保存され続けるより、
一定期間ごとに抜き取りできたらなぁ〜と。
FTPで全てのhistory.cgiだけを抜きとりゃそれでもいいかな?とも
思ってまつけど。
んでもって、例えばFTPで顧客全てのhistory.cgiを抜き取ったあと
集計や売れ筋一覧表などをexcelで作ろうもんなら、cgi内のテキストを一つずつ
コピペするしか方法はないもんですかね? 素人ですんません

79 :
>>78
1.購入履歴を一定期間でクリア
購入履歴を月別に別ファイルに保存して(例:history2008-09.cgi)、画面表示では、
2008年8月分
2008年9月分
2008年10月分
    ・
    ・
    ・
とし、見たい月をクリックすると、現在表示しているような詳細表が表示される。
というのはどうでしょうか?
2.購入履歴の集計・統計
カンマ(,)区切りのCSVファイルだとEXCELでそのまま読み込むことができます。
そこで、集計用に、以下のような中身のファイルを作るスクリプト(history.pl)はどうでしょうか?
-- 各行に書き込まれる内容 ------------------------------------
会社名,日付,担当者,メーカー,年式,型式,車体番号,注文部品,個数,その他
-------------------------------------------------------------
使い方は、コマンドラインより集計したい期間を打ち込みます。
C:\>perl history.pl 2008-02~2008-10
すると、"history2008-02~2008-10.txt"という指定期間内に注文された情報が書かれたファイルを
生成するというものです。

80 :
>>79
お世話になってます〜
その仕組みでバッチリ集計しやすそ〜です!
ちなみに、車両情報入力項目を増やすのは大変ですか?
車の部品選定には型式や車体番号の他に、
【型式指定】(←5〜6ケタ)と【類別番号】(3〜4)ケタの
番号が必要らしいのです。
勉強がてらに自分でもいじってみます。

81 :
>>80
了解しました。
>>79の仕様で実装します。
入力項目の増加ですが、以下の変更が必要になりますね。
1.<input>項目の増加に伴い、HTMLテンプレートファイルの変更
2.増加項目の入力値チェック
3.購入履歴ログに増加項目分を追加
これはそんなに難しくないので、すぐに実装できると思います。

82 :
実装しました。
多くのHTMLテンプレートファイルも変更しているので注意してください。
購入履歴ファイルがあるディレクトリ位置が変更されたので注意してください。
型式指定と類別番号を追加したので、購入履歴ファイルが以前と互換性がないので注意してください。
購入履歴の集計ファイルを生成するスクリプト(history.pl)は、>>79に書かれているのと、若干
仕様が変わっています。
詳しくは、"readme.txt"を見てください。

83 :
どんどん改良が進んドル

84 :
>>82
毎度毎度お世話になってます〜
早速使用してみました。
バッチリ集計がとれました〜
ありがとうございました。
またまた提案なのですが、
自社向けの発注メールと発注者向け確認メールの文面を
分割することは可能でしょうか?
発注者向け確認メールの内容は現状のままでほぼOKです。
自社向けの内容を変更希望です。
ウチの会社は営業所が4拠点有り、
最終的には受注CGIをフォルダ毎4つ作成して
それぞれの営業所向けの受注を4メールアドレスで受信し(受信PCは1台)
facsinbowというソフトでメール受信→営業所へFAXの自動可を予定してます。
その為、自社向けの受注メール文面にちょこっと手を加えたいのです。
それと、ウチの会社は車の部品屋なもんで
メーカー名が違うので、order.htmlの変更と
util.cgiの入力項目チェックのところを変更しましたが
エラーが出たため、チェック項目行自体を削除して使用してます。
発注者の中には、発注部品項目に無くその他欄への記入の場合も想定
される為、選択チェックも削除しました。(車体番号と型式指定・類別も)
動作上問題なさげだけど、だいじょbでしょうか?
話し変わって年式欄に 「月」 入力欄を追加可能でしょうか?

85 :
注文部品を挿入してみました。
# 注文できる部品をこの配列に入れる
our @parts_names = qw(Fブレーキパッド F/Fライニング F/Rライニング Rブレーキパッド R/Fライニング R/Rライニング
Fシールキット/カップキット Rシールキット/カップキット オイルエレメント エアーエレメント フュエルエレメント ファンベルト エアコンベルト パワステベルト
前右ワイパーAssy 前左ワイパーAssy 前右ワイパー替ゴムノミ 前左ワイパー替ゴムノミ 後ワイパーAssy 後ワイパー替ゴムノミ
プラグ タイミングベルト テンショナ ウォータポンプ サーモスタット サーモパッキン カムオイルシール クランクオイルシール);
order.htmlにバッチリ反映されたんですがこんだけずらずらと並ぶと見づらいものですね;;
カテゴリー名を挿入することは可能でしょうか?
たとえば・・
ブレーキ関係
 Fブレーキパッド  □ 1個
 F/Fライニング   □ 1個
 F/Rライニング   □ 1個
 ・・・
エレメント関係
 オイルエレメント   □ 1個
 エアーエレメント   □ 1個
 フュエルエレメント   □ 1個
 ・・・
ベルト関係
 ファンベルト   □ 1個
 ・・・
他にもクラッチ類とかも入れる予定です。
order.htmlの車種メーカー・型式・車体番号などの項目名及び
入力フォームを各々枠内センターに配置してみたんですが、
上記の呼び出し部品項目もセンター付けはできるのでしょうか?

86 :
1.社内向け用の発注メール
とりあえずたたき台の文章を作りますので、あとで修正してください。
2.入力チェック
入力チェックはセキュリティ上、外さないほうがいいと思います。
おそらく、以下のコードを修正されたのではないかと思うのですが、
if( $q->param("メーカー") !~ /ホンダ|スズキ|カワサキ|ヤマハ/ ) { push @error, ["車体メーカー", ""] }
\Q〜\Eで囲めば、エラーが出なくなると思います。
if( $q->param("メーカー") !~ /\Qトヨタ|日産|ホンダ|マツダ\E/ ) { push @error, ["車体メーカー", ""] }
部品が1つも選択されていないとエラーとするチェックは外しても問題ないと思います。
車体番号と型式指定・類別に関しては、
if( $q->param("車体番号") !~ /^[\w-_#$%+*<>:.]{0,30}$/ ) { push @error, ["車体番号", "(不許可文字の使用、もしくは文字数オーバー)"] }
if( $q->param("型式指定") !~ /^\d{5,6}$/ ) { push @error, ["型式指定", "(5〜6桁の数値でない)"] }
if( $q->param("類別番号") !~ /^\d{3,4}$/ ) { push @error, ["類別番号", "(3〜4桁の数値でない)"] }
↓こうすればいいかと、
if( $q->param("車体番号") !~ /^.{0,30}$/ ) { push @error, ["車体番号", "(文字数が多すぎます)"] }
if( $q->param("型式指定") !~ /^\d{0,6}$/ ) { push @error, ["型式指定", "(6桁以内の数値でない)"] }
if( $q->param("類別番号") !~ /^\d{0,4}$/ ) { push @error, ["類別番号", "(4桁以内の数値でない)"] }
3.注文できる部品のグループ化
グループ化できるように改造してみます。

87 :
これ↓は間違いでした。
if( $q->param("メーカー") !~ /\Qトヨタ|日産|ホンダ|マツダ\E/ ) { push @error, ["車体メーカー", ""] }
各メーカ名を\Q〜\Eで囲む以下↓が正解です。
if( $q->param("メーカー") !~ /\Qトヨタ\E|\Q日産\E|\Qホンダ\E|\Qマツダ\E/ ) { push @error, ["車体メーカー", ""] }

88 :
>>86>>87
メーカー名チェック記述OKでした〜
ありがとうです。
その他の改造も>>22さんのお暇な時に
まったり作成してもらえれば十分助かりますです
html周りの改造を一通り終えたので
チェックがてら見てみてください。
DLキーはorderの実行権です。
http://www1.axfc.net/uploader/He/so/137599

89 :
>>88
DLできました。
チェックしておきますね。

90 :
>>89ありがとです
いちぉ削除しておきます〜

91 :
実装しました。
HTML見ましたが、携帯向けにピッタリのHTMLになってますね。
発注メールは、発注者と自社とに分けました。
文面は、sub sendmail 関数にありますので、お好みで変えてください。
ボタンリンクを普通のリンクにしました。
部品の表示方法、こんなもんでどうでしょうか?
部品は、init.cgi の%parts_namesに書いてください。
カテゴリ分類できるようにしました。
多分、見れば書き方はわかると思います。

92 :
>>91
readmeバージョン情報にまで記載いただいて恐縮ですw
うれしはずかしw
発注メールの分離ありがとうございました。
年式の月もボタンリンクも部品表示もバッチリOKです。助かります。
さっそくメール文面もいじってみますです。
そいえば、ケータイで見てみたんですが、
発注画面の部品欄に部品名とチェックボックス&個数入力欄が
表示されなかったのですが、これは私のケータイだけかなぁ?
【i-mode HTML Simulator II】というケータイ用Webコンテンツ
開発用?プレビューソフトでアクセスして動作も表示も○だったのですが
私のケータイauのW43SAだと部品名とチェックボックス&個数欄が
空欄です。(カテゴリー名の表示は○)むむむ〜
先日の社内会議でWeb受注システムをプレゼンしたら
さっそく試験的に数件のユーザーに案内を出してみて
運用を開始してみようという事になりました。
会議では「ネット環境のある整備工場なんてそうないだろ?」とか
「利用するユーザーがいるのか?」等様々な意見がありましたが
実際にネットで探してみるとHPを持っている整備工場が結構増えてきているし
お問い合わせなどのメール受信・簡単な文字入力は行っているはず。
また、今日・明日の受注だけじゃなくて今後を見据えて・・・
ってなわけでGoサインがでました。
TEL受注業務の混雑緩和と、後々は人件費削減にも貢献できると思います。
>>22さんのお陰です。本当にありがとうございます。

93 :
っと早速提案・要望事項を頂きました。
営業所が4箇所あるのですが、例えば
東京営業所管轄の顧客--A整備工場・B整備工場
埼玉営業所管轄の顧客--C整備工場・D整備工場
神奈川営業所管轄の顧客--E整備工場・F整備工場
千葉営業所管轄の顧客--G整備工場・H整備工場
このようにあるとして、現状は
index.html-------フォルダA/top.html
        |
        +--フォルダB/top.html
        |
        +--フォルダC/top.html
        |
        +--フォルダD/top.html
index.html内容
 東京営業所発注ページへ (リンクでフォルダA/topへ)
 埼玉営業所発注ページへ (リンクでフォルダB/topへ)
 神奈川営業所発注ページへ (リンクでフォルダC/topへ)
 千葉営業所発注ページへ (リンクでフォルダD/topへ)

このような構成で、index.htmlから各営業所への発注ログインページに
ジャンプする形を想定してたのですが、
微妙な地区の顧客が、いつもどこの営業所へ
電話発注しているのかわからないのでは?という指摘を受けました。

94 :
いやいやw電話番号や納品書見りゃわかるでしょw
っと思ったのですが、例えばC整備工場は住所が東京都(埼玉より)だとします。
でも東京営業所より明らかに埼玉営業所からのほうが近いので
管轄は埼玉営業所となっているようなケースがあるというのです。
C整備工場が「ウチは東京営業所から買ってる」と思いこみ
東京営業所へ発注した場合は、発注FAXが東京営業所に届いてしまいます。
もちろん埼玉に転送してあげれば済むことなんですけど、
このようなケースが多々発生するのでは・・?というのです。
パっと浮かんだ案は
顧客データ作成時(電話番号.cgi)に
0311112222,A整備工場,1
0311112223,B整備工場,1
0311112224,C整備工場,2
0311112225,D整備工場,2
0311112226,E整備工場,3
0311112227,F整備工場,3
0311112228,G整備工場,4
0311112229,H整備工場,4
こんな感じで電話番号,顧客名,管轄(担当)営業所番号という情報を入れて
1は東京営業所のメールアドレスへ
2は埼玉営業所のメールアドレスへ・・という具合かなぁ?と思ったのですが
口で言うのは簡単ですが、いかがなもんでしょうか?
あとは、発注画面で発注先営業所を選択する方式も考えたのですが
結局はindex.htmlで振り分けるのと同じかな?とも思いました。

95 :
>>92
いやー、ニートの私が役に立てて嬉しいです^^;
この手のニーズは潜在的に結構あるのでしょうか
私はデザインや文章は全然ダメでして、その辺は>>36さんにおまかせということで^^
今後も>>36さんによるバージョンアップを期待しておりますw
部品選択の部分は、<table>の入れ子になっているため表示されないのかもしれません。
デザインは多少乱れますが、<table>を使わない素の状態にしてました。
>>22の下のリンクから確かめてみてください。

96 :
>>94-95
了解しました。
電話番号.cgiに発注先営業所情報を入れる方向で実装してみます。

97 :
>>95
ケータイで表示されましたーーー!
部品名が長い部品は
部品名とチェックボックスと個数入力欄が数段に分かれてごちゃごちゃに
なってしまうのはこれは仕方ないですよね。動作は問題無いので
私もちょいとhtmlをいじくってみます。
他の部品屋さんの受注頻度はわかりませんが、
問屋及び仲介業者であれば非常に助かるソフトだと思います。
様々な職種や販売方法に対応できるようなカスタマイズ性が充実すれば
けっこーニーズはあるではないでしょうか?
ベクターで有料であっても私は購入しますw
っていうかここまで無理難題を聞いて頂いて
冗談抜きで謝礼させて頂きたい所存ですw
htmlっていってもビルダーを使用して少々タグ打ちしてるだけですw
デザインセンスも自信はないですが私なりにがんばってみます!

話し変わって質問なのですが、
自分で改変して何なんですが、ケータイ用のHTMLだと
PCからではちょと物足りなさを感じますw
そこで、indexにケータイとPCと入り口を二つ設けて、
cgi関連の記述はほぼそのままに、htmlをすべて二つずつ作成してみようかな?
と思っているのですが、問題は無いでしょうか?
また、その際に同じ顧客の整備士Aさん(現場からケータイで)と
事務員のBさん(整備事務所でPCから)が同時に発注業務を行う場合に
CGIは正常に動作するものなのでしょうか?(滅多に無いことだとは思います)
実際に試してみようと思ってますが、いかがなもんでしょか?

98 :
>>97
おー、表示されましたか。
左の列の幅をかなり狭めた設定にすれば、さらにうまく表示されるかもです。
気が向いたら、汎用性があるものを作ってみようと思います。
謝礼はニートの自分には嬉しいですw
携帯とPCとで表示方法を分けたいとのことですが、HTMLディレクトリの下にmobileディレクトリ
とPCディレクトリを作り、そこにそれぞれに対応したHTMLファイルを置くという方式がいいと思
います。
これに対応したものも作ってみます。

99 :
mobileと聞くとなんかかこいいですねw
楽しみにお待ちしてまっす。
それと、先日DLしてもらったzipファイルはまだお持ちですか?
あの時、総DL回数が一回で削除したので>>22さんのみのDLだと思います。
あの時のDLファイル名
○○○○○○.zip
↓そのまま使用して
○○○○○○_3@yahoo.co.jpというアドレスを作成してみました。
メール頂いたら常用アドレスで返信いたします〜
ここだけでは謝礼をさせて頂くにしても、
連絡の取り様も難しいかなぁ?と思いまして。
無理にとは言えませんがよかったらメールくださいませ。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
第二回 自作スクリプト発表会【PHP】 (106)
お前らのPerlとかはじめた理由教えてください (127)
use Socket;について熱く語るスレ (103)
Webプログラマーの寿命って・・・(・∀・; (166)
PHPの使える鯖 (150)
MacOSXでローカルCGIテスト (198)
--log9.info------------------
ベイスたんがいつ餓死するか見守るスレ part5 (455)
【虎の】北條史也応援スレ【核弾頭】Part.1 (932)
2013年の日程を語るスレ (383)
チケット入手への道147枚目 (195)
今日、サッカー見ない人は、在日か非国民! (271)
金本知憲が経営するコンビニでありそうな事 (600)
日ハムが将来やりそうな衝撃ネタを考える (145)
背番号について語るスレ 33番 (350)
阪神の暗黒時代が・・・キターッ! (129)
セ・リーグ雑魚過ぎwww (207)
投手天国低レベルNPBに逃げる藤浪wwwwwwwwwwww (110)
サッカーの面白さが全然分からない野球ファン part3 (351)
【Fs34】吉川光夫 応援スレ (183)
高津「WBCでは阿部のリードがクソすぎた」 (161)
【黄金】東浜 巨【ルーキー】PART2 (223)
栗山じゃなくても優勝できたろ? (239)
--log55.com------------------
恋する気持ち(IDなし) 90
☆転勤族の奥様 その124★
50歳〜54歳の奥様(ID梨) part10
【ID梨】イラッとくる他人の行動や言葉 その30【ID梨】
【サーチOK】ポケモンGOを楽しく語る奥様 57匹目
50代の奥様(ID梨) part372
嫌いだけど人に言えない芸能人・有名人125
皇室御一行様★part3339