PHPのセッション変数をCakePHPのコントローラから参照するには

CakePHPのデフォルト設定では、CakePHPのコントローラ以外のPHPでセットされたセッション変数を、CakePHPのコントローラから参照することはできません。

これは、PHPのセッションIDとCakePHPのセッションIDが異なっていることが原因なので、相互に参照するにはセッションIDを合わせる必要があります。

自分はCAPTCHAのライブラリSecurimageCakePHPのアプリに組み込んでいたらこれに引っかかりました。
Securimageのように$_SESSIONに直接変数を指定するような外部のライブラリや既存のPHPCakePHPを連携する場合は必要になる設定だと思われます。

PHPのセッションIDはphp.iniのsession.nameで指定されています。
Ubuntu 10.04でmod-php5の場合、php.iniファイルは/etc/php5/apache2にあります。

; Name of the session (used as cookie name).
; http://php.net/session.name
session.name = PHPSESSID

CakePHPのセッションIDの指定は/app/config/core.phpファイルに設定されています。
CakePHPのデフォルトのセッションIDはCAKEPHPです。
以下の例では、PHPのセッションIDと合わせています。

/**
 * The name of CakePHP's session cookie.
 *
 * Note the guidelines for Session names states: "The session name references
 * the session id in cookies and URLs. It should contain only alphanumeric
 * characters."
 * @link http://php.net/session_name
 */
#       Configure::write('Session.cookie', 'CAKEPHP');
        Configure::write('Session.cookie', 'PHPSESSID');