LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Forum

ユーザー登録時の文字数制限について

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/9/8 14:18 | 最終変更
shige-p  Warrant Officer 居住地: 2年半  投稿数: 161
開発とはちょっと違うと思うのですが、XOOPSではユーザー登録時の設定として

パスワードの最低文字数   5
ユーザ名の最低文字数(byte) 3
ユーザ名の最大文字数(byte) 10

という表現がされていますね。

使用可能な文字を英数記号に限定すれば何の問題もありません。
が、使用可能な文字に日本語を入れてしまうと(もちろん推奨はされていないのですが)、utf-8環境ではマルチバイト文字1文字=3バイトなので、極端な話「あ」一文字でも通ってしまいます。
また「あああああ」と入力した場合「ユーザー名は半角10文字以内で入力して下さい」というエラーが表示されます。

日本語ワープロが普及したので全角文字=英文字2文字分という関係は認知されていると思いますが、utf-8環境ではこの数式は成り立たない、ということはまだまだ浸透していないのではないかと思います。なので後者の例だと「あああああは10文字じゃないのか?」と思ういう人がいそうな気がします。

私はサイトを構築したときの文字コードの違いにより文字制限の挙動が異なることと、内部的な処理がが少しずれているのではないかと思うのですが、いかがでしょうか。
あるいは、この辺りの設計思想はどういう感じなのでしょうか。

とんちんかんなことを書いているかもしれません。
ちょっと分からなくなってしまったのでどなたか教えてください。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009/9/29 4:49 | 最終変更
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
shige-pさん、こんにちは。

引用:

使用可能な文字を英数記号に限定すれば何の問題もありません。
が、使用可能な文字に日本語を入れてしまうと(もちろん推奨はされていないのですが)、utf-8環境ではマルチバイト文字1文字=3バイトなので、極端な話「あ」一文字でも通ってしまいます。
(snip)
私はサイトを構築したときの文字コードの違いにより文字制限の挙動が異なることと、内部的な処理がが少しずれているのではないかと思うのですが、いかがでしょうか。
あるいは、この辺りの設計思想はどういう感じなのでしょうか。

設計者ではないので、設計思想なんて判るはずもないのですが、ログインIDであるはずの`uname`を表示用の名前として利用すること自体が本来無理のあることです。

ログインIDなら、エンコーディングの影響を受けないUS-ASCIIキャラクターに限るべきでしょうが、表示名としてUS-ASCIIしか使えないのはマルチバイト圏ユーザにとってはあまりにもプアです。

それを解消しようという動きそのものは6~7年も前からありますが、結局、統一的な方法はいまだにありません。

私も最初の頃のモジュールは、nameとunameのどちらを表示名とするか一般設定で選べるようにしていましたが、最近はそれもむなしい気がしてやっていません。(完全テンプレート化してさえいれば個別に対応できるので、それで十分だろう、というスタンス)


結局、ユーザにとってのまともな選択肢は、

A案
・unameを表示名にする。文字数制限もなるべく緩くする(最大文字数を大きく、利用可能キャラクターを増やす)
・ログインIDにはEmailアドレスを利用する

B案
・nameを表示名にする。
・unameの文字数制限は厳しくする(利用可能キャラクターは少なく)
・unameを表示しているモジュールはテンプレートで対応する。(uidさえ得られればいくらでも手はある)

くらいしかないと思います。
個人的にはA案の方がお勧めです。圧倒的に楽ですから。


このトピックのような問題がおきるとすればA案ですが、それは単に注意書き部分を書き換えるレベルのテンプレートカスタマイズ、もしくは言語定数オーバーライドで対処可能だと思います。
投票数:0 平均点:0.00
  条件検索へ

Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities