操作
Bug(バグ) #3383
完了mail_to 関数を用いるときに空白が + に変換されてしまう
開始日:
2013-08-09
期日:
進捗率:
0%
予定工数:
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Yes (はい)
説明
概要¶
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) : '';
Akihiro KOBAYASHI さんが約10年前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Akihiro KOBAYASHI にセット
- 3.8 で発生するか を Unknown (未調査) から Yes (はい) に変更
Akihiro KOBAYASHI さんが約10年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
プルリクエスト
https://github.com/openpne/OpenPNE3/pull/199
原因
urlencode()は RFC 3986 を満たしていない → "+" は変換できない
対策
rawurlencode()は RFC 3986 を満たすようになった結果、"+" も変換できる
isao sano さんが約10年前に更新
- コピー先 Backport(バックポート) #3715: mail_to 関数を用いるときに空白が + に変換されてしまう を追加
isao sano さんが約10年前に更新
- コピー先 Backport(バックポート) #3716: mail_to 関数を用いるときに空白が + に変換されてしまう を追加
Akihiro KOBAYASHI さんが約10年前に更新
- 対象バージョン を OpenPNE 3.9.0-old にセット
プルリクエスト先変更のため
https://github.com/openpne/OpenPNE3/pull/199 を一旦クローズ、
新たにhttps://github.com/openpne/OpenPNE3/pull/224 を追加
Shinichi Urabe さんがほぼ10年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
操作