May
16
2008

日本語でユーザー名を9文字以上にすると:Joomla!1.0.x

Print
2 votes
Blog - Joomla! CMS
Written by:Joomler! 13433 hits

「日本語で9文字以上のユーザー名でユーザー登録すると文字化けする。」と問い合わせがあったので少しHackしてみました。

これは、Joomla!1.0.xの場合です。

これには2つの原因があります。データベースの文字数制限と、ユーザー登録時の文字数制限です。

まず、phpMyAdminでデータベースを開きます。

  1. jos_usersのテーブルを開き、テーブルの構造を表示させます。
  2. フィールド欄のusename行の操作欄に鉛筆マークの様な画像(変更)が見えますのでそれをクリックします。
  3. 長さ/値の値を25から51(今回、ここでは倍の文字数にしました。51にすることで17文字のユーザー名が登録できます。)に変更して保存します。

次にRoot/includes/joomla.phpを開き以下の行を変更します。(2826行目付近)

// check that username is not greater than 25 characters
$username = $this->username;
if ( strlen($username) > 25 ) {
    $this->username = substr( $username, 0, 25 );
}

の25の部分をデータベースと同様に51に変更します。

// check that username is not greater than 25 characters
$username = $this->username;
if ( strlen($username) > 51 ) {
    $this->username = substr( $username, 0, 51 );
}

以上で日本語17文字のユーザー名まで登録できるようになりました。

今回は、51としましたがお好みで3の倍数になるように変更されても良いのではないでしょうか。

Tagsusename行,joomla.php,フィールド欄,substr,phpMyAdmin,ユーザー名,$username,日本語,$this,check that username is not,ユーザー登録時,includes,文字数制限,strlen,Joomla,テーブル,51としましたがお好み,文字化け,変更,データベース
 

JContentPlus for Joomla!1.5 powered by Joomler!.net