Ticket #608 (closed バグ指摘: 修正済)
LC_Page::sendRedirect()の$urlにGETパラメータを渡せない
| Reported by: | Seasoft | Owned by: | Seasoft |
|---|---|---|---|
| Priority: | 低 | Milestone: | EC-CUBE2.11.0 |
| Component: | その他 | Version: | コミュニティ (eccube-comu) |
| Keywords: | Cc: | ||
| 修正済み: |
Description
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=5447&forum=4
引用
LC_Page::sendRedirect('hoge.php?a=1')
としてもリダイレクト後のページにGETパラメータを引き継ぐことができません。
結果として、このメソッドをheader()関数として用いることができません。
仕様なのかもしれませんが、少々困ったので解決策を提示しておきます。
function sendRedirect($url, $isMobile = false ) {
$netURL = new Net_URL($url);
//GETパラメータを保存しておく
$queryStringArray=$netURL->querystring;
//今までの処理…略
//保存したGETパラメータを追加
if(is_array($queryStringArray)){
foreach($queryStringArray as $key=>$val){
$netURL->addQueryString($key, $val);
}
}
//リダイレクト
header("Location: " . $netURL->getURL());
exit();
}
ちなみに原因はNet_URL::addRawQueryString()がそれまでのパラメータを全削除するせいです。
明らかにバグだと思うのですが中の人はバグじゃないとか言っています。
http://pear.php.net/bugs/bug.php?id=3942
Change History
Note: See
TracTickets for help on using
tickets.
