[CakePHP]Security:hashをAuth->passwordの様に使う際の注意点

[CakePHP1.2.3]

管理画面などでpasswordを保存する場合、hash化する際には、Security:hashを使います。

Auth->passwordでもいいのですが、Authコンポーネントをロードしていないコントローラで新しく Authコンポーネントを読み込むと色々エラーが起こり易くなるので、 普通はSecurity:hashを使います。

それで、普通は以下のようにやれば良いのかと思うのですが、

[php]$this->data[‘Model’][‘password’] = Security:hash($this->data[‘Model’][‘password’])[/php]

これだとAuth->passwordと違うハッシュで保存されてしまいまい、ログイン時にマッチングしなくなってしまいます。

どうすればいいかというと、Auth::passwordのコードを覗いてみたら答えが書いてありました。

[php]$this->data[‘Model’][‘password’] = Security:hash($this->data[‘Model’][‘password’], null, true)[/php]

いや、null, trueなくても同じようにしてくれよ。。って感じです。 もしかするとこのcakephpのバージョンだけの現象かもしれません。

ちなみに、2.xでは普通にAuthComponent::password()のようにStaticに呼べます。

この記事は以下の環境に基づいて書いております。

cakephp1.2.3

php5.2.17

phpとmysqlで英数文字を半角、全角両方で検索する方法

以下のような内容でデータベースにデータが格納されている場合、

[text]MEDIA運営ニッキ[/text]

検索文字列が、

[text]media[/text]

だとヒットしません。

mysqlは通常、小文字と大文字は関係なく検索してくれるのですが、 半角全角に関してはmysql側では解決出来ないので、スクリプト言語の方で解決します。

phpの場合だと以下のようになります。 mb_convert_kanaを利用して、検索文字列に対して 半角、全角両方の文字列を用意し、それを使って検索するという流れになります。 結構強引な方法ですが、これが一番確実でしょう。

[php] $half_sized_keyword = mb_convert_kana($keyword, ‘a’, ‘utf-8’);
$full_sized_keyword = mb_convert_kana($keyword, ‘A’, ‘utf-8’); [/php]

検索クエリは以下のようになります。

[php] $query = "SELECT * FROM table WHERE field_name LIKE ‘%$half_sized_keyword%’ OR field_name LIKE ‘%$full_sized_keyword%’"; [/php]

こうすれば、この記事の最初に書いたような例ではヒットするようになります。 めでたしめでたし。

開発環境は以下。

php5.3

mysql5.1

[CakePHP]複数検索語句に対してLIKE 検索を行う方法

[Cakephp 1.2.3]

時々プログラミングの話も書いていきます。 Cakephpは、キーワード検索などの際に同一のフィールドに対してLIKE検索を行おうとすると、 配列のキーが重なってしまうため、上手く動作しません。以下のような場合です。

[php]
$conditions = array(‘AND’ => array(
‘Model.field_name LIKE’ => "%".$keyword."%",
‘Model.field_name LIKE’ => "%".$keyword."%"
));
[/php]

まあ、これは言語の仕様上しょうがないところです。 こういうときは、以下のようにして解決できます。

[php]
$conditions = array(‘AND’ => array(
array(‘Model.field_name LIKE’ => "%".$keyword."%"),
array(‘Model.field_name LIKE’ => "%".$keyword."%"),
));
[/php]

この記事における開発環境は以下です。 Cakephp 1.2.3 php5.3 Mysql 5.1

源泉所得税をeTaxでネットから納付する方法

File2491241837403

法人の小規模事業者向けの、月々の税金支払い効率化についてのお話です。毎月納める必要がある源泉所得税、住民税の特別徴収は金融機関等にいかないといけないので面倒ですよね。でもeTaxとeLtaxを使えばそれらはネットからの支払いが実はできます。これって案外知らない方がいるっぽいです。

ネットで出来るということは直接金融機関等に行く必要がないというだけではなく、どこの場所からでも行えるということです。これはすごく助かりますよね。たとえ海外にいても税金を納めることができるということです。まあそれほど喜ぶことでもないかもしれませんけど。

源泉所得税に関しては、源泉所得税の納期の特例を申請すると支払い頻度を半年に一回にすることができますので、申し込んでおくのがいいでしょう。あ、普通は申し込んでますかね。私は申請し忘れて毎月納税しております。

あと源泉所得税は国税なのでeTax、住民税は県税・市税なのでeLTaxを使用することになります。どちらも電子納税(インターネットで支払うこと)に対応しているのですが、私の法人が登記している都道府県が住民税の電子納税にまだ対応していないため、こちらはまだ試すことが実は出来ておりません。対応したら試してレポートしてみたいと思います。各都道府県の対応状況については、以下に載っています。

地方公共団体ごとのサービス状況

それではこれより、源泉所得税の支払いについて詳しい方法を...と書こうかと思ったのですが、eTaxのサイトにちゃんとしたマニュアルが用意されていました。そちらを読むのが一番わかりやすいです。

e-Tax(マニュアル)

上記ページ中の、

「4 はじめよう!e-Tax(源泉所得税の納付手続編)(平成22年6月版)」

からマニュアルがダウンロード出来ますのでそちらを参照ください。マニュアル見ていただくと分かるのですが、手順が結構複雑です。この複雑さのせいで使っていない人は結構多い気がしますね。マニュアル置場自体よくわからないところにありますし。国はeTaxを使わせる気があるのでしょうか。

eLTaxを使った住民税の支払いについては、出来るようになったらいずれ書いてみたいと思います。

 

毎日の検索順位チェックを無料&自動で行う方法

Medium 5087327645

検索エンジン順位を効率的に調べる方法として、別の記事でご紹介しました。
今回はそれを毎日自動化してしまいましょうというお話です。

この順位チェックツールであるGRCは、クライアント型のアプリですので、毎日順位を自動でチェックしてもらうためには、PCとアプリを起動したままにしておく必要があるという難点はありました。

手動で実行するにしても、毎回いちいちWindows起動=>GRC起動というのはさすがに手間です。

そこで、リモートPCにGRCを入れ、リモートPCを立ち上げたままにして毎日自動で検索順位をチェック行い、順位の確認はリモートから画面共有で確認する、という方法で解決することにしました。

実際この方法で運用してみると思いのほからくちんです。設定も簡単ですので共有型オフィスやノマドスタイルで仕事をしている方で検索順位を調べておく必要のある方におすすめです。

以下、手順です。

リモートPCにGRCをインストール

私は自宅のiMacを使うことにしました。このiMacにParallelsでWindowsを立ち上げ、GRCをインストールして起動します。

2012 08 08 2303

 

リモート画面共有のために「どこでもMy Mac」を 設定

外から自宅のPCにアクセスするために、「どこでもMy Mac」を使用します。これはiCloudの機能で、一度両方のPCを設定しておけばクリック一つで画面共有が出来るようになります。設定方法は以下のサイト詳しく書いてあります。

LionでiCloud版「どこでもMy Mac」を使う

上記方法はMac同士、しかもどちらもOSがLion以上の必要がありますが、Windows同士、WindowsとMacの組み合わせでも、考え方は同じなので画面共有ソフトを使用すれば普通に出来るかと思います。これらの場合は、以下のCrossloopというアプリがいいかもしれません。

シンプルな画面共有ツール、『CrossLoop』をレビューしてみた

外からリモートPCにアクセス

上のリンクにあるように「どこでもMy Mac」で画面共有を行えば、以下のように簡単に順位が確認できるようになります。リモートPCの操作も行えますので、必要であればキーワードの追加・変更なども行えます。

2012 08 08 2308

 ※わかりにくいですが、Mac Book Airの画面上にリモートPCであるiMacの画面を表示しています。

いかがでしょうか。結構簡単に設定出来たかと思います。どこでもMy Macのすごいところは、Finderからボタン一つでリモートPCと画面共有が出来ることです。そして共有画面自体の画質がよく、レスポンスもいいです。他の画面共有アプリだとこの辺のクオリティが少し下がってしまいますので、Macをお持ちでしたらどこでもMy Macにするのをオススメいたします。