■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。
このフォーラムは閲覧専用のアーカイブです。

URL に PHPSESSID が付加される

banananose > URL に PHPSESSID が付加される @ 2010/8/4 18:27
いつもお世話になっております。

ページ内のリンクに「PHPSESSID」とセッションIDが付加される場合があり、このときリンク切れとなってしまいます。
リンク切れページからブラウザの戻る操作や、再読込行うと、付加されなくなり正常に戻ります。

こちらの記事を参考に対応してみましたが、他に何か対応方法などありますでしょうか?
http://forum.basercms.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=22&forum=2&post_id=99#99

(環境)
BaserCMSのバージョン:1.5.9
レンタルサーバー名: OCNメール&ウェブ スタンダード
ryuring > Re: URL に PHPSESSID が付加される @ 2010/8/4 20:47
こんばんは。

/app/baser/basics.php の中に、 getParamsFromEnv という関数があるのですが、
それを次のものに置き換えてください。
たぶんこれで、?以降は無視され正常に表示できると思います。
なお、近日リリース予定の1.6.0にも反映させますね。

function getParamsFromEnv() {
	$appBaseUrl = Configure::read('App.baseUrl');
	$parameter = '';
	if($appBaseUrl) {
		$base = dirname($appBaseUrl);
		if(strpos($_SERVER['REQUEST_URI'], $appBaseUrl) !== false) {
			$parameter = str_replace($appBaseUrl,'',$_SERVER['REQUEST_URI']);
		}else {
			$parameter = str_replace($base.'/','',$_SERVER['REQUEST_URI']);
		}
	}else {
		$parameter = '';
		$query = $_SERVER['QUERY_STRING'];
		if(!empty($query)){
			if(strpos($query, '&')){
				$queries = split('&',$query);
				foreach($queries as $_query) {
					if(strpos($_query, '=')){
						list($key,$value) = split('=',$_query);
						if($key=='url'){
							$parameter = $value;
							break;
						}
					}
				}
			}
		}
	}
	$parameter = preg_replace('/^\//','',$parameter);
	return $parameter;
}

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ryuring > Re: URL に PHPSESSID が付加される @ 2010/8/4 20:58
ごめんなさい、さっきのコード間違ってました。こっちでお願いします。

function getParamsFromEnv() {
	$appBaseUrl = Configure::read('App.baseUrl');
	$parameter = '';
	if($appBaseUrl) {
		$base = dirname($appBaseUrl);
		if(strpos($_SERVER['REQUEST_URI'], $appBaseUrl) !== false) {
			$parameter = str_replace($appBaseUrl,'',$_SERVER['REQUEST_URI']);
		}else {
			$parameter = str_replace($base.'/','',$_SERVER['REQUEST_URI']);
		}
	}else {
		$parameter = '';
		$query = $_SERVER['QUERY_STRING'];
		if(!empty($query)){
			if(strpos($query, '&')){
				$queries = split('&',$query);
				foreach($queries as $_query) {
					if(strpos($_query, '=')){
						list($key,$value) = split('=',$_query);
						if($key=='url'){
							$parameter = $value;
							break;
						}
					}
				}
			}else{
				if(strpos($query, '=')){
					list($key,$value) = split('=',$query);
					if($key=='url'){
						$parameter = $value;
					}
				}
			}

		}
	}
	$parameter = preg_replace('/^\//','',$parameter);
	return $parameter;
}

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

banananose > Re: URL に PHPSESSID が付加される @ 2010/8/5 11:52
お世話になってます。

提示して頂いたコードを「/baser/basics.php」に反映し、リンク切れしないことを確認できました。
いつも早急な対応ありがとうございます。
ryuring > Re: URL に PHPSESSID が付加される @ 2010/8/7 3:21
この問題について、BaserCMS 1.6.0 にて解消しました。よろしくお願いします。
http://basercms.net/download/index.html

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ