カレッヂ |
質問者 hiro_1977
投稿日 2/14(水) 02:10:59
簡易データベースによる検索ですが、例えばニックネームがabcde だと、最初のaを入力するだけでエラーにならずに検索されてしまいます。 (acとか入力するとエラーになりますが) 最初の文字だけ合ってればいいというのではあまりにルーズなので、全て の文字が正確に入力されなければエラーになるようしたいのですが、どう すればいいのでしょうか。 |
回答者 ヒロ
[削除]
投稿日 2/14(水) 13:42:31
#=================================== # ニックネーム(マッチ) if ($FORM{'HANDLE'} ne '') { if ($HANDLE =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$FORM{'HANDLE'}/i) { ; } else { next; } } #=================================== ↑この行を #=================================== # ニックネーム(マッチ) if ($FORM{'HANDLE'} ne '') { if ($HANDLE eq $FORM{'HANDLE'}) { ; } else { next; } } #=================================== としてやればできると思います。 間違いがあれば上級者の方のご指摘願います。 |
質問者 hiro_1977
[削除]
投稿日 2/14(水) 23:58:43
ヒロさんとりあえずレスありがとうございます。 早速試してみたのですがどうもうまくいきません。 data.csvにある名前を正しく入力しても「みつかりません」と エラーが出ます。 入力値を正確に読みとってないのでしょうか? 私はPerlはほとんど素人なんでよくわかりません。 またどなたかレスお願いします。 |
回答者 羊相談員
[削除]
投稿日 2/15(木) 10:59:17
データが正しければヒロさんの方法できるはずです。 ただし、同じaでも aaAA の4種類があるので注意が必要です。 あとは行頭にカンマがないとか。 |
回答者 ヒロ
[削除]
投稿日 2/15(木) 18:17:14
search.cgiにある #====================================== &jcode'convert(*value,'euc'); &jcode'convert(*data,'euc'); #====================================== を #====================================== &jcode'convert(*value,'sjis'); &jcode'convert(*data,'sjis'); #====================================== に変えてみてください。 |
質問者 hiro_1977
[削除]
投稿日 2/16(金) 03:32:24
羊相談員さん、ひろさんレスありがとうございます。 おかげでうまくいきました。 検索条件の記入欄を変えていたのですが、search.cgi をその変更に正確に対応させていなかったようです。 お時間を頂いてすみませんでした。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |