[Frameworkspider-svn] spider-commit [71] 1) spiderのDATAフォルダをspider .inc. php配置フォルダからさかのぼって自動認識するようにしました。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 4月 22日 (水) 17:06:38 JST


Revision: 71
          http://svn.sourceforge.jp/view?root=frameworkspider&view=rev&rev=71
Author:   m_nakashima
Date:     2009-04-22 17:06:38 +0900 (Wed, 22 Apr 2009)

Log Message:
-----------
1) spiderのDATAフォルダをspider.inc.php配置フォルダからさかのぼって自動認識するようにしました。
2) HttpRequestのセッションの適正化メソッドで、セッションスコープの判断をREQUEST_URIで行っており
   ディレクトリインデックスにファイル名なしでアクセスした場合のセッション挙動が同フォルダ内にも関わらずひとつ
   上の階層と判断されてしまい問題が発生する為PHP_SELFで判断するよう修正しました。

Modified Paths:
--------------
    current/DATA/lib/spider/HttpRequest.class.php
    current/README.txt


-------------- next part --------------
Modified: current/DATA/lib/spider/HttpRequest.class.php
===================================================================
--- current/DATA/lib/spider/HttpRequest.class.php	2009-04-22 02:09:50 UTC (rev 70)
+++ current/DATA/lib/spider/HttpRequest.class.php	2009-04-22 08:06:38 UTC (rev 71)
@@ -148,7 +148,7 @@
 	function setSession( $key, $value, $scope=SPIDER_SESSION_SCOPE_AUTO ) {
 		$this->optimizeSession();
 		if( $scope == SPIDER_SESSION_SCOPE_AUTO ) {
-			$scope	= dirname($_SERVER['REQUEST_URI']);
+			$scope	= dirname($_SERVER['PHP_SELF']);
 		}
 		if( SPIDER_SESSION_SCOPE_GLOBAL == $scope ) {
 			$key	= $this->_getGlobalSessionKey( $key );
@@ -164,7 +164,7 @@
 	function getSession( $key ) {
 		$this->optimizeSession();
 		$value			= null;
-		$current_scope	= dirname( $_SERVER['REQUEST_URI'] );
+		$current_scope	= dirname( $_SERVER['PHP_SELF'] );
 		while( strlen($current_scope) > 1 ) {
 			$target_key		= $current_scope.'/'.$key;
 			if( isset( $_SESSION ) && isset($_SESSION[$target_key]) ) {
@@ -185,7 +185,7 @@
 	 */
 	function existsSession( $key ) {
 		$this->optimizeSession();
-		$current_scope	= dirname( $_SERVER['REQUEST_URI'] );
+		$current_scope	= dirname( $_SERVER['PHP_SELF'] );
 		while( strlen($current_scope) > 1 ) {
 			$target_key		= $current_scope.'/'.$key;
 			if( isset( $_SESSION ) && isset($_SESSION[$target_key]) ) {
@@ -205,7 +205,7 @@
 	function removeSession( $key, $scope=SPIDER_SESSION_SCOPE_AUTO ) {
 		$this->optimizeSession();
 		if( $scope == SPIDER_SESSION_SCOPE_AUTO ) {
-			$scope	= dirname($_SERVER['REQUEST_URI']);
+			$scope	= dirname($_SERVER['PHP_SELF']);
 		}
 		if( SPIDER_SESSION_SCOPE_GLOBAL == $scope ) {
 			$key	= $this->_getGlobalSessionKey( $key );
@@ -221,9 +221,9 @@
 	 */
 	function optimizeSession() {
 		if( isset( $_SESSION ) && is_array( $_SESSION ) ) {
-			$current_scope	= dirname( $_SERVER['REQUEST_URI'] );
+			$current_scope	= dirname( $_SERVER['PHP_SELF'] );
 			foreach( $_SESSION as $key => $value ) {
-				if( preg_match('/^spider\\_GLOBAL\\./',$key) == 0
+				if( strlen($key) > 0 && preg_match('/^spider\\_GLOBAL\\./',$key) == 0
 					&& preg_match('/^'.CharUtility::escape_regx_str($current_scope).'/',$key) == 0 ) {
 					unset( $_SESSION[$key] );	
 				}

Modified: current/README.txt
===================================================================
--- current/README.txt	2009-04-22 02:09:50 UTC (rev 70)
+++ current/README.txt	2009-04-22 08:06:38 UTC (rev 71)
@@ -5,6 +5,9 @@
 **
 -- 2009-04-22
 1) spiderのDATAフォルダをspider.inc.php配置フォルダからさかのぼって自動認識するようにしました。
+2) HttpRequestのセッションの適正化メソッドで、セッションスコープの判断をREQUEST_URIで行っており
+   ディレクトリインデックスにファイル名なしでアクセスした場合のセッション挙動が同フォルダ内にも関わらずひとつ
+   上の階層と判断されてしまい問題が発生する為PHP_SELFで判断するよう修正しました。
 
 -- 2009-04-21
 1) HttpRequestにてセッション取得メソッドで無限ループが発生する不具合を修正しました。



Frameworkspider-svn メーリングリストの案内
Back to archive index