2012年8月3日金曜日

Flex Builder では、必要な Flash Player のデバッガバージョンを見つけることができません。


Flex 突然のデバッガバージョンエラー

FlexBuilderにて、つい30分まで何の問題もなくF11でデバッグを開始できていたのに、何の前触れもなく

『Flex Builder では、必要な Flash Player のデバッガバージョンを見つけることができません。Flash Player 9 のデバッガバージョンをインストールするか、Flex Builder を再インストールする必要があります。現在のバージョンでデバッグを試みますか?』

とエラー表示され、デバッグが起動出来なくなった。

で、何かの弾みでFlashが調子崩したのかと思って(何の弾みだ)Flashの再インストールを試みるも、

『インストールしようとしているバージョンの Adobe Flash Player は、最新バージョンではありません。http://www.adobe.com/go/getflashplayer にアクセスして、安全性が高い最新バージョンを入手してください』

と怒られてインストールできない。

とりあえずFlashをクリーンインストールしようとadobeのサイトからuninstall_flash_player_32bit.exeをDLし、一旦flashをアンインストール。
【参考】
http://akabana.info/2010/03/15/flashplayer-clean-uninstall/

その後デバッグバージョンのflashをインストールしようとするも、やっぱり最新バージョンではないというエラーが出る。

で、色々試しているうちに、IEでは表示されなくなったFlashがChromeでは表示されることに気付く。
IEのプラグインは消えたくせになぜかChromeのFlashプラグインは頑固に居座り続けていた・・・。(コンパネにもないのに!どんだけ!)

そしてデバッガが起動しない原因は、プラグイン
(C:\Windows\System32\Macromed\Flash\Flash11f.ocx)
がいつのまにかインストールしていたデバッグバージョンでない最新のものに置き換わっている所為だと気付く。
インストールしたデバッガバージョンのocxはFlash11f.ocxなのに、いつの間にかFlash32_11_3_300_268.ocxになっていた。おいおい。

どうやらChromeの強制自動アップデートでFlashのプラグインが勝手にすり替わっていたらしい。

ちょ・・・
そいつぁあんまりじゃないですかいChromeさんよ!

とにかくChromeのFlashプラグインを消さないとどうにもならないと察したので、ざっくり削除。
C:\Users\[ユーザー名]\AppData\Local\Google\Chrome\Application\[Chromeのバージョン]\gcswf32.dll(場所はWindows7の場合)を削除。
※Flashをアンインストールしたあとで行う
【参考】
http://frmmpgit.blog.fc2.com/blog-entry-41.html

これでChromeでもflashが見られないことを確認したら、再度デバッグバージョンのFlashをインストール。
で、強制自動アップデートがもうめんどくさいのでChromeをアンインストール。
レジストリいじってまで自動アップデートを止めるのも面倒だった。

2012.9.5 追記

どうやらchromeの設定から行けるようです。


設定>詳細設定を表示...>プライバシー>コンテンツの設定...>プラグイン
>プラグインを個別に無効にする...>デバッグバージョン以外のFlashPlayerを無効に設定。




2012年3月10日土曜日

CakePHP:SQL Error: 1271: Illegal mix of collations for operation

検索フォームを作成し、日付のフィールドにひらがな等を入力してsubmitすると
SQL Error: 1271: Illegal mix of collations for operation '>=' [CORE\cake\libs\model\datasources\dbo_source.php, line 684]
というエラーになる。
これがどうしても解決しない・・・
文字コードに関して色々調査してもまったく解決しない。
下記サイトの文字コード指定のダンプで上手くいくかもと思いましたが何の関係もなかった。
http://d.hatena.ne.jp/ho4kawa/20110301/1299638094

日付型フィールドの値をひらがなと比較しているのが悪いのでしょうが、ここまで露骨にエラーじゃなくても。
というわけで、後回し。誰か解決方法ご存じないでしょうか・・・

CakePHP:1064: You have an error in your SQL syntax;

SQL Error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'findAll' at line 1 [CORE\cake\libs\model\datasources\dbo_source.php, line 684]
Query: findAll

というエラー。
1.3.14で「findAll」は非推奨になっています。(使えない?)
find関数のオプションで「all」を指定してあげましょう。

バージョンごとの違いが結構気になる。
ネットのサンプル通りにやったのにーと歯ぎしりしたものの、勉強不足でした。

CakePHP:外部からURLで指定出来ないメソッド

コントローラの外部アクセス不可メソッドについて

URLからアクセスできないメソッドを作成したいときは,メソッド名の先頭に「_(アンダースコア)」を付けます。
アンダースコアをつけないメソッドはURLからアクセス可能なので、よろしからぬ自体が起こる可能性がありますね。
アクションとして使用しないメソッドには必ずアンダースコアを付けておきましょう。

CakePHP:定数を別ファイルにする

そういえばCakePHPで定数を別ファイルにしてインクルードしたいときってどうするんだろう・・・とふと手が止まる。
こんなことで迷ってしまうのがフレームワークに慣れてない感じ。

app/config/constants.phpを作成し、app/config/bootstrap.phpでconfig('constants');と指定して読み込ませます。

CakePHP:authComponentとバリデーション

なんかバリデーションがauthComponentだとうまくいかないと思っていましたら・・・

こんな情報が。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1565&forum=3
まだ実装はためしてないですが。。。

あとログインのアクションをusersから変えたい場合はこんな感じで指定。
$this->Auth->loginAction = array(
'admin' => false, 'controller' =>
'account', 'action' => 'login'
);

参考
http://c-brains.jp/blog/wsg/10/01/29-143311.php

CakePHP:トップページのコントローラの指定

いわゆるindexにコントローラを作りたい場合。
私もindex_controllerとかとか作って試してみたんですが、尽く失敗したので調べてみました。
pagesコントローラーでdisplayアクションをコールしているようです。
というわけでpages_controller.phpとdisplay.ctpを作成すればOK。

CakePHP そういえば、トップページのコントローラーは?
http://yasigani-ni.com/?p=447

ありがとうございますm(_ _)m