2017年06月 / 05月≪ 123456789101112131415161718192021222324252627282930≫07月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2011.04.21 (Thu)

ktailibraryのリダイレクトについてメモ

cakephpのktailibraryつかってるんだけども、前回リダイレクトについて調べて修正したのだがまだリダイレクトにもんだいがあった。

http://host/controller/action/12345
とか
http://host/controller/action/id:12345
とかのurlをセッションID付きにリダイレクトしようとした場合

http://host/controller/action/pass~Array?csid=..
http://host/controller/action/named~Array?csid=..

とかになっちゃってちゃんと飛ばない。

AppControllerに突っ込む__redirect_url()に、
passとnamedがあった場合は分解する処理を入れた。
↓コード

【More・・・】


function __redirect_url($url){

if(isset($this->Ktai)){
if($this->Ktai->_options['enable_ktai_session'] &&
($this->Ktai->_options['use_redirect_session_id'] || $this->Ktai->is_imode())){
if(!is_array($url)){
if(preg_match('|^http[s]?://|', $url)){
return $url;
}
$url = Router::parse($url);

// 追加ここから--------------------------
// passがあった場合
if(isset($url['pass'])){
$pass = $url['pass'];
unset($url['pass']);
$url += $pass;
}
// namedがあった場合
if(isset($url['named'])){
$named = $url['named'];
unset($url['named']);
$url += $named;
}
// 追加ここまで--------------------------
}
if(!isset($url['?'])){
$url['?'] = array();
}
$url['?'][session_name()] = session_id();
$url['?']['guid'] = 'on'; // guid=onを付加
}
}
return $url;
}
function redirect($url, $status = null, $exit = true){
return parent::redirect($this->__redirect_url($url), $status, $exit);
}

↑おまけでguid=onを付けるのも入ってる。

これで
http://host/controller/action/12345?csid=..
とか
http://host/controller/action/id:12345?csid=..
に飛ぶようになった。

 |  19:40  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

Comment

コメントを投稿する

URL
コメント
パス  編集・削除するのに必要
非公開  管理者だけにコメントを表示
 

Trackback

この記事のトラックバックURL

この記事へのトラックバック

 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。