Joomler!.net - Decided on Joomla!

Wiki or Wordpress? No it is JContentPlus.

 

Archives

Blog

Demo

Home » Blog » strlen
2 votes
Written by:Joomler! 10835 hits Friday, 16 May 2008 16:13

「日本語で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の倍数になるように変更されても良いのではないでしょうか。

 
Feb
2
2008

php.js

EMailPrintPDF
1 votes
Written by:Joomler! 7740 hits Saturday, 02 February 2008 16:46

PHPで開発していて避けられないのがJavascriptとの混在です。私などなかなか頭が切り替わらなくて困ったりします。PHPに存在する関数がJavascriptには無いことと記法が異なるからです。それを助けてくれそうなJavascriptがありました。

PHPで定義されている関数がJavascriptで書かれています。なかにはこれは、いらないだろうって気がするstrlenまであったりしますが、私には必要かもしれない。Wink

kevin_vanzonneveld_net_techblog_article_javascript_equivalent_for_phps_abs

 
0 votes
Written by:Joomler! 9308 hits Wednesday, 24 October 2007 02:06

クライアントから苦情がっ!Joomla!のデフォルトの検索窓から日本語を7文字以上いれて検索すると文字化けすると言われ、確認すると確かに文字化けしますね。ちょっとJoomla!のファイルを変更してみました。

フロントエンド/components/com_search/search.phpの77~~87行目あたり。

	// limit searchword to 20 characters
	if ( strlen( $searchword ) > 20 ) {
	    $searchword     = substr( $searchword, 0, 19 );
	    $restriction    = 1;
	}

	// searchword must contain a minimum of 3 characters
	if ( $searchword && strlen( $searchword ) < 3 ) {
	    $searchword     = '';
	    $restriction    = 1;
	}
	// limit searchword to 20 characters
	if ( mb_strlen( $searchword ) > 20 ) {
	    $searchword     = mb_substr( $searchword, 0, 19 );
	    $restriction    = 1;
	}

	// searchword must contain a minimum of 3 characters
	if ( $searchword && mb_strlen( $searchword ) < 3 ) {
	    $searchword     = '';
	    $restriction    = 1;
	}

に変更しました。
 

JContentPlus for Joomla!1.5 powered by Joomler!.net

joomler.net is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla!(R) name is used under a limited license from Open Source Matters in the United States and other countries.
joomler.net is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.