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 © 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クラスに変更しました。