Ticket #771 (closed 新規開発: 修正済)
magic_quotes_gpc が有効な環境を考慮する
Reported by: | Seasoft | Owned by: | Seasoft |
---|---|---|---|
Priority: | 中 | Milestone: | EC-CUBE2.11.0 |
Component: | その他 | Version: | コミュニティ (eccube-comu) |
Keywords: | Cc: | ||
修正済み: |
Description
フォーラムで magic_quotes_gpc が有効なために発生する不具合が度々報告されている。
以下の実装が良いのではないかと考えています。
- インストール時に警告
- magic_quotes_gpc が有効な環境では、スーパーグローバル変数を書き換えて、クォートを解除する
Change History
comment:2 Changed 12 years ago by Seasoft
- Owner changed from somebody to Seasoft
- Status changed from new to assigned
- Milestone changed from EC-CUBE2.5.0beta to EC-CUBE2.5.0
comment:3 Changed 12 years ago by Seasoft
- Status changed from assigned to closed
- Resolution set to 修正済
comment:4 follow-up: ↓ 6 Changed 12 years ago by nanasess
- Status changed from closed to reopened
- Resolution 修正済 deleted
PHP4.3.11 の環境でエラーが発生するようです.
PHP4 の環境では, 関数引数に & を記載しての参照渡しは構文エラーとなってしまいます.
とり急ぎ, & を除きましたが, きちんと動作するか不明なのでご確認頂けますでしょうか.
-
data/class/SC_Initial.php
336 336 // Create lamba style unescaping function (for portability) 337 337 $quotes_sybase = strtolower(ini_get('magic_quotes_sybase')); 338 338 $unescape_function = (empty($quotes_sybase) || $quotes_sybase === 'off') ? 'stripslashes($value)' : 'str_replace("\'\'","\'",$value)'; 339 $stripslashes_deep = create_function(' &$value, $fn', '339 $stripslashes_deep = create_function('$value, $fn', ' 340 340 if (is_string($value)) { 341 341 $value = ' . $unescape_function . '; 342 342 } else if (is_array($value)) { 343 foreach ($value as &$v) $fn($v, $fn);343 foreach ($value as $v) $fn($v, $fn); 344 344 } 345 345 ');
comment:5 Changed 12 years ago by AMUAMU
その修正では動作しないような・・・stripslashes_deepを下記マニュアルの例のように書き換えると、どうでしょう? http://jp2.php.net/manual/ja/function.stripslashes.php
テスト環境が無い為、確認出来ないため、コメントまで・・・すいません
Note: See
TracTickets for help on using
tickets.
インストール時に環境をチェックする仕組みは作りたいですね