シンプル&パワフル - WEBビジネスを全力サポートします

Blog Archive

Home
開発
cakephp

弊社では、php codeigniterのフレームワークをメインに開発を行っておりますが、
既存システムの改修依頼により、他のフレームワークも扱うことがあります。
今回、cakephp2.0 のcookieの動作で不具合がございましたので情報共有を行います。
現象は $this->Cookie->read でデータがうまく取り出せない。

原因は、サーバーで magic_quotes_gpc が有効となっているため、cookieに保存されるデータは自動エスケープされており、cookie->readでjson_decodeに失敗するという現象でした。

今回はcakephpのcoreファイルを修正しました。
magic_quotes_gpcを無効にする方法も検討

 

lib/Cake/Controller/Component/CookieCompornent.php

protected function _explode($string) {
/*magic quotes 対応*/
if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}

$first = substr($string, 0, 1);
if ($first === ‘{‘ || $first === ‘[‘) {
$ret = json_decode($string, true);
return ($ret !== null) ? $ret : $string;
}
$array = array();
foreach (explode(‘,’, $string) as $pair) {
$key = explode(‘|’, $pair);
if (!isset($key[1])) {
return $key[0];
}
$array[$key[0]] = $key[1];
}
return $array;
}

 


検索

最近の投稿

アーカイブ

Twitter Feed

新規のビジネスアイデア、WEBシステムの改善に役立つ情報を発信します