- ベストアンサー
cgiのカスタマイズが上手く行かない原因は何?
- http://www.rescue.ne.jp/のサイトにある「簡易データベース」http://www.rescue.ne.jp/cgi/database/ のカスタマイズが上手く行かない原因を教えてください。
- 登録の項目を「名前」「星座」「血液型」に絞って登録しようとしています。そして、「星座」「血液型」の項目が一致した人の「名前」を検索結果に表示させたいのですが、上手く行きません。
- コードを最小限カスタマイズし、データも登録はされているようですが、「ご指定の条件では見当たりませんでした」という検索結果が表示され、原因が分かりません。どうすればいいでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 私はCGIの改造はデザイン等を変更する程度で極力スクリプトをいじらないようにしていますので、if ($FORM{'BLOOD'} ne 'all') やif ($FORM{'BIRTH'} ne 'all')のような項目は追加せず、現在ある項目をそのまま利用しています。 以下のようなやりかたでもしよろしければ、試してみてください。 一応、動作確認済みです。 regist.cgi 下記の行を削除。 if ($FORM{'EMAIL'} =~ /(.*)\@(.*)\.(.*)/) { ; } else { &error('入力エラー','Eメールを入力してください.'); } これによってメールアドレス未入力のエラーを回避します。 index.html regist.html 都道府県の部分を星座に変更。 都道府県 <select name="PREF" size="1"> <option value="all" selected>指定しない</option> <option value="北海道">北海道</option> <option value="青森県">青森県</option> <option value="岩手県">岩手県</option> ・ ・ ・ を 星座 <select name="PREF" size="1"> <option value="all" selected>秘密</option> <option value="牡羊座">牡羊座</option> <option value="牡牛座">牡牛座</option> <option value="双子座">双子座</option> ・ ・ ・ のように。 年齢層 <select name="AGE" size="1"> <option value="all">指定しない</option> <option value="10代以下">10代以下</option> ・ ・ ・ を 血液型 <select name="AGE" size="1"> <option value="all">不明・秘密</option> <option value="A型">A型</option> ・ ・ ・ のように。 そのほかindex.htmlとregist.htmlはデザイン等、好みにカスタマイズ。 Eメールなど不必要な項目があれば削除して構いません。 ただし、regist.cgiのほうで項目の削除はしません。 na_cco_chanさんが、データの登録はされているのに「ご指定の条件では見当たりませんでした」となってしまうのは、regist.cgiによってdata.cvsに登録された項目とseach.cgiで検索される項目にずれが生じているからです。 regist.cgiの項目を削除しないでおけば、登録のときに未記入の部分には空欄が自動的に入力され、検索のときにはスルーされます。 ※きちんと削除することもできるのでしょうが、CGIを熟知していて自分でスクリプトが書けるくらいでないと難しいと思います。 申し訳ありませんが私の改造ではこの程度が限度です。