郵便番号を全角で登録すると・・・

古いバージョンのZen Cartについて不具合が見つかった場合はこちらで情報を共有してください。
アバター
citron
記事: 25
登録日時: 2005/12/09 17:33

郵便番号を全角で登録すると・・・

投稿記事by citron » 2005/12/17 16:44

こんにちは。
ちょっと困った現象に遭遇しました。

アカウント作成時に郵便番号を全角で入力すると、そのまま登録は出来るのですが、データベースには郵便番号の5桁目(ハイフンを入れれば4桁目)までしか登録されません。

例えば「〒111-1111」なら「〒111竏窒P」という具合です。

管理ページでは、郵便番号の最小文字数は変更できますが、最大文字数を変更する項目は見当たりません・・・。

この問題を解決されている方はいらっしゃいますか?
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

Re: 郵便番号を全角で登録すると・・・

投稿記事by kino » 2005/12/17 17:27

木下です。

全角を半角に変換する関数ってありませんでしたっけ?
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

投稿記事by kimono » 2005/12/19 10:20

kimonoです :o
日本語処理ですが
mb_convert_kana(文字列[,オプション][,エンコーディング]])
で、nが「全角」数字を「半角」に変換ですね。
アバター
citron
記事: 25
登録日時: 2005/12/09 17:33

投稿記事by citron » 2005/12/26 16:15

kino様、kimono様

アドバイスありがとうございます。ただ、今の私には難しすぎるようです・・・。これからPHPを勉強して、頂戴したアドバイスを反映できるように頑張りたいと思います。

当面は、「郵便番号入力支援モジュール」を導入することで、お客様が郵便番号を半角で入力するように(ある程度は)誘導が出来ると判断し、そのようにして様子を見てみたいと思います。

ありがとうございました。
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

投稿記事by kimono » 2005/12/26 16:20

アドバイス出来なくてすいません :cry:
スクリプトは分かりましたが、どこにどのようにというまでは分かりませんでした。

ちなみに、私は、横に赤字で半角英数で7文字と記載しております。。。
本来ならば全角を打てないようにする(打ったらエラーとか)無理やり全角を半角に変換してやるというのが正解だと思うのですが・・・
「郵便番号入力支援モジュール」はいいと思いますよ :)
うちは、多言語対応サイトにしようとしているため、導入出来ませんが :cry:
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

投稿記事by kino » 2005/12/26 16:29

木下です。

kimono さんが書きました:本来ならば全角を打てないようにする(打ったらエラーとか)無理やり全角を半角に変換してやるというのが正解だと思うのですが・・・
「郵便番号入力支援モジュール」はいいと思いますよ :)


名前や振り仮名を入力した後で住所を入力する前
であれば全角を半角に変換するのが
ベストでしょうね。

IMEの切り替え忘れは多々発生する問題だと思うし。
同様に電話番号なんかも半角に変換するようにしておいたほうが
トラブルは少なくなるのではないかと思います。


そのうち下記のようにAJAXにしてリアルタイムに更新できるようになれば・・・
http://allabout.co.jp/career/javascript ... /index.htm


現在、AJAX勉強中。(^^)
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
k
記事: 28
登録日時: 2006/2/25 20:17

投稿記事by k » 2006/6/26 21:51

先日、私のところでも同様のお客様がいらっしゃいましたので、完全ではないのですが、対応策を取りました。

と言っても、phpはまだまだ勉強中ですので、小手先に近い&ブラウザ依存の方法なのですが… :(

利用したのは、CSSの、「ime-mode」の設定です。
CSSにて、ime-mode: disabled; とすることにより、全角で入力できないようにします(コピー&ペーストしたりすれば入力できますが :cry: )。
ですので、こちらの方法はIE5以上の(もしくはそれに準拠した)ブラウザ限定&不完全な方法です…。
ただ、IE5以上 or IE5以上に準拠したブラウザのお客様が恐らく9割以上だと思いますので、大半はカバーできると思います。

もっと良い方法をご存知の方がいらっしゃいましたらぜひご教授下さいm(_ _)m


最初は、直接各inputタグ<input hogehoge="hogehoge" 縲鰀>に、style="ime-mode :disabled;"を追加しようと思ったのですが、<input 縲鰀>を生成する際の引数の順番(?)などが良く分からなかったのであきらめました…。

何かヒントが無いかと探していたときに、http://zen-cart.jp/bbs/viewtopic.php?t=2160を発見!
こちらはformにidを付け加える、というものだったのですが、ここで取り上げていたファイル(includes/functions/html_output.php)に、<input 縲鰀>を生成するzen_draw_input_fieldの記述もありますので、こちらを少しいじり、idをつけてCSSで指定することにしました。

1.
includes/functions/html_output.phpの231行目を、
$field = '<input type="' . zen_output_string($type) . '" name="' . zen_output_string($name) . '" id="' . zen_output_string($name) . '"';とし、各inputタグにidを付けます。
※id名は、nameと同一になりますので、重複を心配する必要はないと思います。

2.
CSSの"input"を指定している部分に、以下の記述を加えます(無い場合は、input {縲怡を作成してください)。
#dob, #email_address, #postcode, #telephone, #fax, #dc_redeem_code {
ime-mode: disabled;
}
#の後は、半角英数入力をさせたい部分のid名を記入します(上記は例です。1.の手順を踏んだ後、出力されたhtmlソースを見ればわかります)。

これで、指定した各項目を入力する際にはIMEが使えなくなりますので、半角英数で入力してもらえると思います :)
あとは、横に、※半角英数で入力とでもしておけば恐らく大丈夫かと(スミマセン)…。


と、ここまで書いておいて気づいたのですが、郵便番号のところはハイフンも入力できますね… :?
半角なら全部データベースに残るのかな?
ちょっと試してみます。
アバター
通りすがり

ど素人ですが・・・

投稿記事by 通りすがり » 2007/2/03 20:04

郵便番号入力支援モジュールを改造してみました
/includes/languages/japanese/extra_definitions/tpl_main_page.php
の45行目(多分)にある

$postal = $_GET['post'];



$postal_origin = mb_convert_kana($_GET['post'], "a");
if (substr($postal_origin, 3, 1) == "-"){
$postal= substr($postal_origin, 0, 3).substr($postal_origin, 4, 4);
}
else {$postal=$postal_origin;}

にしてみました これで全角でもハイフンがあっても変換してくれるもようです
違ってたらフォローお願いします

“1.3.0.x公式版の不具合情報” へ戻る