Bug(バグ) #3383
mail_to 関数を用いるときに空白が + に変換されてしまう
Start date:
2013-08-09
Due date:
% Done:
0%
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Yes (はい)
Description
概要¶
mail_to 関数を用いるときに空白が + に変換されてしまう.
mailto スキームを用いる場合は + ではなく %20 にすべきだが, symfony の UrlHelper では urlencode() を用いるため + に変換されてしまい,空白が + で表示されてしまう.
http://www.ietf.org/rfc/rfc2368.txt
修正案¶
diff --git a/lib/vendor/symfony/lib/helper/UrlHelper.php b/lib/vendor/symfony/lib/helper/UrlHelper.php index d0bc4c1..4995c49 100644 --- a/lib/vendor/symfony/lib/helper/UrlHelper.php +++ b/lib/vendor/symfony/lib/helper/UrlHelper.php @@ -498,7 +498,7 @@ function mail_to($email, $name = '', $options = array(), $default_value = array( $default = array(); foreach ($default_tmp as $key => $value) { - $default[] = urlencode($key).'='.urlencode($value); + $default[] = rawurlencode($key).'='.rawurlencode($value); } $options = count($default) ? '?'.implode('&', $default) : '';
Related issues
History
#1
Updated by Akihiro KOBAYASHI over 8 years ago
- Status changed from New(新規) to Accepted(着手)
- Assignee set to Akihiro KOBAYASHI
- 3.8 で発生するか changed from Unknown (未調査) to Yes (はい)
#2
Updated by Akihiro KOBAYASHI over 8 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
プルリクエスト
https://github.com/openpne/OpenPNE3/pull/199
原因
urlencode()は RFC 3986 を満たしていない → "+" は変換できない
対策
rawurlencode()は RFC 3986 を満たすようになった結果、"+" も変換できる
#3
Updated by isao sano over 8 years ago
- Copied to Backport(バックポート) #3715: mail_to 関数を用いるときに空白が + に変換されてしまう added
#4
Updated by isao sano over 8 years ago
- Copied to Backport(バックポート) #3716: mail_to 関数を用いるときに空白が + に変換されてしまう added
#5
Updated by Akihiro KOBAYASHI over 8 years ago
- Target version set to OpenPNE 3.9.0-old
プルリクエスト先変更のため
https://github.com/openpne/OpenPNE3/pull/199 を一旦クローズ、
新たにhttps://github.com/openpne/OpenPNE3/pull/224 を追加
#6
Updated by Shinichi Urabe about 8 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
#8
Updated by isao sano almost 6 years ago
- Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
- % Done changed from 70 to 0
OpenPNE 3.8.14 にて対応済みであったため、対応せずとします。