Project

General

Profile

Bug(バグ) #3383

mail_to 関数を用いるときに空白が + に変換されてしまう

Added by Yuya Watanabe over 6 years ago. Updated over 2 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Target version:
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

Copied to OpenPNE 3 - Backport(バックポート) #3715: mail_to 関数を用いるときに空白が + に変換されてしまう Fixed(完了) 2013-08-09
Copied to OpenPNE 3 - Backport(バックポート) #3716: mail_to 関数を用いるときに空白が + に変換されてしまう Fixed(完了) 2013-08-09

History

#1 Updated by Akihiro KOBAYASHI about 5 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 about 5 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

プルリクエスト
https://github.com/openpne/OpenPNE3/pull/199

原因

http://php.morva.net/manual/ja/function.rawurlencode.php

urlencode()は RFC 3986 を満たしていない → "+" は変換できない

対策
rawurlencode()は RFC 3986 を満たすようになった結果、"+" も変換できる

#3 Updated by isao sano about 5 years ago

#4 Updated by isao sano about 5 years ago

#5 Updated by Akihiro KOBAYASHI about 5 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 almost 5 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#8 Updated by isao sano over 2 years ago

  • Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
  • % Done changed from 70 to 0

OpenPNE 3.8.14 にて対応済みであったため、対応せずとします。

Also available in: Atom PDF