AD:
CakephpでMysqlで取得したデータのみだけ文字化けの現象がおきましたので、その時の解決法をメモしておきます。
解決法
/app/config/database.phpに文字コードを指定
|
var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'pass', 'encoding' => 'utf8' , ← 文字コードを指定 'database' => 'dbname', 'prefix' => '', ); |
上記の設定で解決できました。
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
CakephpでWindowsのローカル環境で開発して、Linuxのサーバに公開したときにひかかったので記載しておきます。
Windowsなど、一部のOSはMysqlは、テーブル名など名前の大文字・小文字は区別しないようです。
Linuxの環境下では、大文字・小文字の区別はするのでCakephpでエラーがでた次第です。
(More…)
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 1 | Pocket: 0 | Total: 1 | Feedly: 0
AD:
Cakephpのvalidationのごくごく単純な内容でハマった
記述方法について
maxLengthについて
validationの機能は動いていたのですが、下記のエラーがでてしまった。
|
Undefined offset: 0 [COREcakelibsmodelmodel.php, line 2435] |
で、よくよくドキュメントを確認してみると記述方法が間違っていました。
▼間違った記述方法
|
var $validate = array( 'hoge' => array( 'rule' => array('maxLength' => '100'), 'message' => '最大100文字までです。' ) ); |
↓
▼正しい記述方法
|
var $validate = array( 'hoge' => array( 'rule' => array('maxLength','100'), 'message' => '最大100文字までです。' ) ); |
▼間違った理由
その上で数値チェックをしていたので、記述法を同じだと勘違いしていました。
|
var $validate = array( 'age' => array( 'rule' => array('comparison', '>=', 18), 'message' => '18歳以上の方のみ対象です。' ) ); |
単純な間違いなのに、発見するのに30分くらいかかりました。
非常にくやしい。
ドキュメントを読む際に、ああだいたいこうだろうと流し読みしていたから招いたのでしょう。
残念。
Cakephp validationの説明
http://book.cakephp.org/ja/view/134/Core-Validation-Rules
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 2 | Pocket: 0 | Total: 2 | Feedly: 0
AD:
最近、Cakephpで開発するようになったので、.emacsに下記の内容を追加と修正
php-modeにctpを追加
|
;;php-modeの読み込み (load-library "php-mode") (require 'php-mode) ;;;php-mode時のタブの調整 (add-hook 'php-mode-hook '(lambda () (setq tab-width 2))) ;; 拡張子が*.tplと*.incはphp-modeにする (add-to-list 'auto-mode-alist '("\.tpl$" . php-mode)) (add-to-list 'auto-mode-alist '("\.inc$" . php-mode)) (add-to-list 'auto-mode-alist '("\.ctp$" . php-mode)) <span>この一行を追加</span> ;;;php-modeの時は文字コードをEUC-JPにする (add-hook 'php-mode-hook '(lambda () (set-default-coding-systems 'utf-8))) (add-hook 'php-mode-hook '(lambda () (set-buffer-file-coding-system 'utf-8))) (add-hook 'php-mode-hook '(lambda () (set-terminal-coding-system 'utf-8))) |
フォントにVL ゴシックを採用
cakephpにまったく関係ないけど、ついでに修正
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
(create-fontset-from-request "private-fontset" '((width . 8) (height . 16) (fixed . t) (italic . nil)) '((family . "VL ゴシック") (family . "Lucida Console"))) (change-fontset-from-request "private-fontset" '((width . 8) (height . 16) (fixed . t) (italic . nil)) '((family . "VL ゴシック") (family . "Courier New")) 1) (setq default-frame-alist (append (list '(font . "private-fontset") ; フォントセット ) default-frame-alist)) |
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 4 | Pocket: 0 | Total: 4 | Feedly: 0
AD:
Cakephp 1.2.4.8284をインストールしていて、先ほど「Deprecated: Assigning the return value of new by reference is deprecated in」の件は解決できました。
次は、「Warning: strtotime() [http://php.net/function.strtotime]: It is not safe to rely on the system’s timezone settings.」と出るので調べると、timezoneの設定の問題のようです。
なので、「php.ini」の「date.timezone」を修正しました。
|
;date.timezone =  ↓ date.timezone =Australia/Sydney //日本だとこれ //date.timezone =Asia/Tokyo |
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 7 | Pocket: 1 | Total: 8 | Feedly: 0
AD:
Cakephpの導入
Windowsの開発環境
Apache2.2
PHP5.3
の環境化で、Cakephpを試していたら下記のエラーがでました。
|
Deprecated: Assigning the return value of new by reference is deprecated in |
下記のURLで調査したところ、PHP5.3の環境だとでるようです。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1993&forum=3
下記のファイルにif文を追加しました。
「cake/libs/configure.php」
|
if (isset($config['debug'])) {  if ($_this->debug) {   error_reporting(E_ALL);   <font color="red">この三行追加</font>   if (error_reporting() > 6143) {    error_reporting(E_ALL & ~E_DEPRECATED);   }   <font color="red">ここまで</font>   if (function_exists('ini_set')) {    ini_set('display_errors', 1);   } |
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 12 | Pocket: 1 | Total: 14 | Feedly: 0
AD:
Vistaで開発に開発環境を作成して、phpMyAdminをダウンロードして使用しようとしたら、「mcrypt 拡張をロードできません。PHP の設定を確認してください」
とのこと。
だいぶ前にPHPをインストールしたので、どういった経緯でインストールしたか忘れたけど、たしかあとから主導でextensionを追加した経緯あがあったことを思いだす。
面倒だけど、さっそく「Mcrypt」をPHPで読み込ますように設定
まず、php.iniに下記の内容を記述
よく思うのだけどこのdllファイルを探すのが一番面倒。
どっかいいサイトないのだとうか。。。。
php_mcrypt.dllを探してくるのが面倒
結局下記のサイトからダウンロード
http://www.nodevice.jp/dll/php_mcrypt_dll/item13726.html
信用できるのかなぁ。。。
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
|
Fatal error: Call to undefined function mb_convert_encoding() in D:wrok2vs2www2commonmethod.php on line 17 |
「mb_convert_encoding()」なんて定義されていないんだって。
ローカルの環境で出たので調べる、「php_mbstring.dll」がないことが」判明
googleで「filetype:dll php_mbstring」で検索してファイルを落としてきます。
「phbnp.ini」に下記の一文を追加してapacehを再起動して終了です。
|
extension=php_mbstring.dll |
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0
AD:
ついに、vimに手を出してしまいました。
とりあえず、windows環境にダウンロードして、設定してみます。
設定方法
まずgvimをダウンロートします。
KaoriYa.netから最新のgvimをダウンロードしてきます。
ダウンロ−ドした、ディレクトリを適当な場所に保存します。
次に、辞書をhttp://www.vim.org/からダウンロードしてきます。
今回は、PHPの補完なので、PHPの辞書を使用します。
vimのディレクトリの中に、「dictionary」という名のフォルダを作成して、PHP用の辞書「php.dict」を保存しておきます。
次に、vimのディレクトリの中にあるgvimrcに下記の記述を追加します。
|
"PHPの辞書 補完 20090520 :set dictionary=dictionary/php.dict "拡張子で、分岐するように設定しておく、今回はPHPのみの設定なのであまり関係ないが記述しておく。 autocmd FileType php :set dictionary=dictionary/PHP.dict |
これで、設定は終了です。
操作方法
スクリプトを入力をして、「CTRL+X」を押して、「CTRL+K」で補完のリストが表示されます。
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 13 | Pocket: 1 | Total: 15 | Feedly: 0
AD:
Recently I set these setting for apache server.
|
<virtualhost *:80> ServerName hoge.com ServerAlias www.hoge.com DocumentRoot "/home/hoge/hoge.com/www/" php_admin_value open_basedir "/home/hoge/hoge.com/www//:/tmp/" < Directory ~ "/..+/"> Order Deny,Allow Deny from All </Directory> < Directory "/home/hoge/public/www/"> Options All AllowOverride All </Directory> |
php_admin_value
It can set access by user directory.
Directory ~ “/..+/”
It can’t access .filename by Http.It is like .svn.
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 0 | Total: 0 | Feedly: 0