プロジェクト

全般

プロフィール

Bug(バグ) #3383

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

Yuya Watanabe10年以上前に追加. 約7年前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
対象バージョン:
開始日:
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) : '';


関連するチケット

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

履歴

#1 Akihiro KOBAYASHI9年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Akihiro KOBAYASHI にセット
  • 3.8 で発生するかUnknown (未調査) から Yes (はい) に変更

#2 Akihiro KOBAYASHI9年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

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

原因

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

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

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

#3 isao sano9年以上前に更新

#4 isao sano9年以上前に更新

#5 Akihiro KOBAYASHI9年以上前に更新

  • 対象バージョンOpenPNE 3.9.0-old にセット

プルリクエスト先変更のため
https://github.com/openpne/OpenPNE3/pull/199 を一旦クローズ、
新たにhttps://github.com/openpne/OpenPNE3/pull/224 を追加

#6 Shinichi Urabe9年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#8 isao sano約7年前に更新

  • ステータスPending Testing(テスト待ち) から Won't fix(対応せず) に変更
  • 進捗率70 から 0 に変更

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

他の形式にエクスポート: Atom PDF