[Frameworkspider-svn] spider-commit [30]

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2009年 4月 10日 (金) 11:53:58 JST


Revision: 30
          http://svn.sourceforge.jp/view?root=frameworkspider&view=rev&rev=30
Author:   m_nakashima
Date:     2009-04-10 11:53:58 +0900 (Fri, 10 Apr 2009)

Log Message:
-----------


Modified Paths:
--------------
    current/DATA/lib/spider/functions.inc.php
    current/DATA/lib/spider/module/AutoEncode.class.php
    current/DATA/lib/util/CharUtility.class.php
    current/DATA/lib/util/Mail.class.php
    current/DATA/lib/util/mail/PHP.class.php
    current/DATA/lib/util/mail/SMTP.class.php
    current/DATA/lib/util/mail/SendMail.class.php
    current/README.txt

Added Paths:
-----------
    current/DATA/lib/spider/module/AutoFormat.class.php


-------------- next part --------------
Modified: current/DATA/lib/spider/functions.inc.php
===================================================================
--- current/DATA/lib/spider/functions.inc.php	2009-04-07 01:25:57 UTC (rev 29)
+++ current/DATA/lib/spider/functions.inc.php	2009-04-10 02:53:58 UTC (rev 30)
@@ -293,7 +293,7 @@
 				$column_value	= preg_replace('/"$/','',$column_value );
 				$column_value	= preg_replace('/""/','"',$column_value );
 			}
-			$column_value			= mb_convert_kana($column_value,'KVa');
+			$column_value			= mb_convert_kana($column_value,'KVas');
 			array_push( $regist_columns, $column_value );
 			$column_value	= '';
 		}

Modified: current/DATA/lib/spider/module/AutoEncode.class.php
===================================================================
--- current/DATA/lib/spider/module/AutoEncode.class.php	2009-04-07 01:25:57 UTC (rev 29)
+++ current/DATA/lib/spider/module/AutoEncode.class.php	2009-04-10 02:53:58 UTC (rev 30)
@@ -18,14 +18,28 @@
 		$strings		= implode('',$_POST).implode('',$_GET);
 		$input_charset	= mb_detect_encoding($strings,'auto');
 		if( $input_charset != 'UTF-8' ) {
+			// POSTパラメータ
 			foreach( $_POST as $key => $val ) {
-				if( preg_match('/^[aA][sS][cC][iI][iI]$/',mb_detect_encoding($val,'auto')) == 0 ) {
-					$_POST[$key]	= mb_convert_encoding($val,'UTF-8',$input_charset);
+				if ( is_array($val) ) {
+					if( preg_match('/^[aA][sS][cC][iI][iI]$/',mb_detect_encoding($val,'auto')) == 0 ) {
+						$_POST[$key]	= mb_convert_variables('UTF-8',$input_charset,$val);
+					}
+				} else {
+					if( preg_match('/^[aA][sS][cC][iI][iI]$/',mb_detect_encoding($val,'auto')) == 0 ) {
+						$_POST[$key]	= mb_convert_encoding($val,'UTF-8',$input_charset);
+					}
 				}
 			}
+			// GETパラメータ
 			foreach( $_GET as $key => $val ) {
-				if( preg_match('/^[aA][sS][cC][iI][iI]$/',mb_detect_encoding($val,'auto')) == 0 ) {
-					$_GET[$key]		= mb_convert_encoding($val,'UTF-8',$input_charset);
+				if ( is_array($val) ) {
+					if( preg_match('/^[aA][sS][cC][iI][iI]$/',mb_detect_encoding($val,'auto')) == 0 ) {
+						$_GET[$key]	= mb_convert_variables('UTF-8',$input_charset,$val);
+					}
+				} else {
+					if( preg_match('/^[aA][sS][cC][iI][iI]$/',mb_detect_encoding($val,'auto')) == 0 ) {
+						$_GET[$key]	= mb_convert_encoding($val,'UTF-8',$input_charset);
+					}
 				}
 			}
 		}

Added: current/DATA/lib/spider/module/AutoFormat.class.php
===================================================================
--- current/DATA/lib/spider/module/AutoFormat.class.php	                        (rev 0)
+++ current/DATA/lib/spider/module/AutoFormat.class.php	2009-04-10 02:53:58 UTC (rev 30)
@@ -0,0 +1,60 @@
+<?php
+require_once( dirname(dirname(__FILE__))
+	.DIRECTORY_SEPARATOR."ModuleBase.class.php");
+/**
+ * spider:POSTおよびGETで入力されたパラメータの文字列を以下のとおり書式変換する
+ *  1)「半角カタカナ」を「全角カタカナ」に変換します。
+ *  2)濁点付きの文字を一文字に変換します。
+ *  3)「全角」英数字を「半角」に変換します。 
+ *  4)「全角」スペースを「半角」に変換します。
+ * アクションモジュールクラス
+ * 
+ * @package spider spider/moduleパッケージ
+ * @version 1.0.0
+ * @copyright Copyright &copy; 2008, Multimedia Digital Contents Systems.Co.,Ltd.<info****@md-sy*****> http://www.md-systems.net/
+ * @author Multimedia Digital Contents Systems.Co.,Ltd. m.nakashima <m_nakas****@md-sy*****>
+ * @since PHP 5.2
+ */
+class spider_module_AutoFormat extends spider_ModuleBase {
+	function spider_module_AutoFormat() {
+	}
+	function execute( & $request ) {
+		// POSTパラメータ
+		foreach( $_POST as $key => $val ) {
+			if ( is_array($val) ) {
+				// パラメータが配列の場合、各値を変換する
+				$value_array = array();
+				foreach( $val as $value ) {
+					$value	= mb_convert_kana($value,'KVas');
+					array_push($value_array,$value);
+				}
+				$_POST[$key]	= $value_array;
+			} else {
+				if ( strlen(trim($val))>0 ) {
+					$_POST[$key]	= mb_convert_kana($val,'KVas');
+				} else {
+					$_POST[$key]	= '';
+				}
+			}
+		}
+		// GETパラメータ
+		foreach( $_GET as $key => $val ) {
+			if ( is_array($val) ) {
+				// パラメータが配列の場合、各値を変換する
+				$value_array = array();
+				foreach( $val as $value ) {
+					$value	= mb_convert_kana($value,'KVas');
+					array_push($value_array,$value);
+				}
+				$_GET[$key]	= $value_array;
+			} else {
+				if ( strlen(trim($val))>0 ) {
+					$_GET[$key]	= mb_convert_kana($val,'KVas');
+				} else {
+					$_GET[$key]	= '';
+				}
+			}
+		}
+	}
+}
+?>

Modified: current/DATA/lib/util/CharUtility.class.php
===================================================================
--- current/DATA/lib/util/CharUtility.class.php	2009-04-07 01:25:57 UTC (rev 29)
+++ current/DATA/lib/util/CharUtility.class.php	2009-04-10 02:53:58 UTC (rev 30)
@@ -134,6 +134,7 @@
 		$str = str_replace('$', '\\$', $str);
 		$str = str_replace('|', '\\|', $str);
 		$str = str_replace('/', '\\/', $str);
+		$str = str_replace('_', '\\_', $str);
 		return $str;
 	}
 }

Modified: current/DATA/lib/util/Mail.class.php
===================================================================
--- current/DATA/lib/util/Mail.class.php	2009-04-07 01:25:57 UTC (rev 29)
+++ current/DATA/lib/util/Mail.class.php	2009-04-10 02:53:58 UTC (rev 30)
@@ -79,7 +79,7 @@
 	 * 送信設定オプションの妥当性検査を行いエラーメッセージの配列を返します。
 	 * エラーがない場合は要素0の配列を返します。
 	 */
-	function validate_options( $options = array() ) {
+	function validate_options( & $options ) {
 		return array();
 	}
 	/**

Modified: current/DATA/lib/util/mail/PHP.class.php
===================================================================
--- current/DATA/lib/util/mail/PHP.class.php	2009-04-07 01:25:57 UTC (rev 29)
+++ current/DATA/lib/util/mail/PHP.class.php	2009-04-10 02:53:58 UTC (rev 30)
@@ -28,7 +28,7 @@
 	 * 送信設定オプションの妥当性検査を行いエラーメッセージの配列を返します。
 	 * エラーがない場合は要素0の配列を返します。
 	 */
-	function validate_options( $options = array() ) {
+	function validate_options( & $options ) {
 		$error_messages	= array();
 		// TODO: オプションはないのでmail関数利用可能かチェックする
 		return $error_messages;

Modified: current/DATA/lib/util/mail/SMTP.class.php
===================================================================
--- current/DATA/lib/util/mail/SMTP.class.php	2009-04-07 01:25:57 UTC (rev 29)
+++ current/DATA/lib/util/mail/SMTP.class.php	2009-04-10 02:53:58 UTC (rev 30)
@@ -81,8 +81,37 @@
 	 * 送信設定オプションの妥当性検査を行いエラーメッセージの配列を返します。
 	 * エラーがない場合は要素0の配列を返します。
 	 */
-	function validate_options( $options = array() ) {
+	function validate_options( & $options ) {
 		$error_messages	= array();
+		if( !is_array($options) ) {
+			array_push($error_messages,'送信オプションを入力してください。');
+		} else {
+			if( !isset($options['pear_path']) && isset($options[0]) ) {
+				$options['pear_path']	= trim(stripslashes($options[0]));
+				unset( $options[0] );
+			}
+			if( !isset($options['smtp_host']) && isset($options[1]) ) {
+				$options['smtp_host']	= trim(stripslashes($options[1]));
+				unset( $options[1] );
+			}
+			if( !isset($options['smtp_port']) && isset($options[2]) ) {
+				$options['smtp_port']	= trim(stripslashes($options[2]));
+				unset( $options[2] );
+			}
+			if( !isset($options['smtp_auth']) && isset($options[3]) ) {
+				$options['smtp_auth']	= trim(stripslashes($options[3]));
+				unset( $options[3] );
+			}
+			if( !isset($options['smtp_auth_user']) && isset($options[4]) ) {
+				$options['smtp_auth_user']	= trim(stripslashes($options[4]));
+				unset( $options[4] );
+			}
+			if( !isset($options['smtp_auth_pass']) && isset($options[5]) ) {
+				$options['smtp_auth_pass']	= trim(stripslashes($options[5]));
+				unset( $options[5] );
+			}
+		}
+		
 		$pear_path		= trim($options['pear_path']);
 		$smtp_host		= trim($options['smtp_host']);
 		$smtp_port		= trim($options['smtp_port']);

Modified: current/DATA/lib/util/mail/SendMail.class.php
===================================================================
--- current/DATA/lib/util/mail/SendMail.class.php	2009-04-07 01:25:57 UTC (rev 29)
+++ current/DATA/lib/util/mail/SendMail.class.php	2009-04-10 02:53:58 UTC (rev 30)
@@ -70,8 +70,16 @@
 	 * 送信設定オプションの妥当性検査を行いエラーメッセージの配列を返します。
 	 * エラーがない場合は要素0の配列を返します。
 	 */
-	function validate_options( $options = array() ) {
+	function validate_options( & $options ) {
 		$error_messages	= array();
+		if( !is_array($options) ) {
+			array_push($error_messages,'送信オプションを入力してください。');
+		} else {
+			if( !isset($options['sendmail_path']) && isset($options[0]) ) {
+				$options['sendmail_path']	= trim(stripslashes($options[0]));
+				unset( $options[0] );
+			}
+		}
 		// sendmail_pathが必須
 		$sendmail_path	= trim($options['sendmail_path']);
 		if( strlen(trim($sendmail_path)) == 0 ) {

Modified: current/README.txt
===================================================================
--- current/README.txt	2009-04-07 01:25:57 UTC (rev 29)
+++ current/README.txt	2009-04-10 02:53:58 UTC (rev 30)
@@ -3,6 +3,18 @@
 **
 ** このファイルにはコミットごとに変更点とファイル名を記述します。
 **
+-- 2009-04-10
+1) 本体とはあまり関係ありませんがphp5でフォーム名からハッシュを入力できていない問題があるため
+   lib/util/Mail.class.php
+   lib/util/mail/PHP.class.php
+   lib/util/mail/Sendmail.class.php
+   lib/util/mail/SMTP.class.php
+   を変更しました。
+
+2) 本体とはあまり関係ありませんが
+   lib/spider/module/AutoEncode.class.phpで配列入力をエンコード出来ていなかった問題を修正しました。
+   lib/spider/module/AutoFormat.class.phpを追加しました。
+
 -- 2009-04-07
 1) ModuleBaseクラスの名称をspider_ModuleBaseクラスに変更しました。
 



Frameworkspider-svn メーリングリストの案内
アーカイブの一覧に戻る