Project

General

Profile

Bug(バグ) #2770

小窓になりうるドメインを入力すると正しくないURLでリンクが生成される

Added by Yuya Watanabe over 7 years ago. Updated almost 4 years ago.

Status:
Fixed(完了)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2012-01-31
Due date:
% Done:

100%

3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
Unknown (未調査)

Description

概要

www.google.co.jpwww.amazon.co.jp など,小窓となりうるリンクが存在する場合に http://www.www.google.co.jphttp://www.www.amazon.co.jp などといったようなリンクが生成される.

!https://redmine.openpne.jp/attachments/397/スクリーンショット.png!

参考: https://redmine.openpne.jp/issues/2323#note-3

確認環境

OpenPNE 3.7.0-dev
OpenPNE 3.6.1
OpenPNE 3.4.19


Related issues

Related to OpenPNE 3 - Backport(バックポート) #2829: 小窓になりうるドメインを入力すると正しくないURLでリンクが生成される Fixed(完了) 2012-01-31
Related to OpenPNE 3 - Backport(バックポート) #2872: 小窓になりうるドメインを入力すると正しくないURLでリンクが生成される Fixed(完了) 2012-01-31
Related to OpenPNE 3 - Backport(バックポート) #3105: 小窓になりうるドメインを入力すると正しくないURLでリンクが生成される Fixed(完了) 2012-01-31

Associated revisions

Revision d83952de (diff)
Added by Yuya Watanabe over 7 years ago

(fixes #2770) fixed to generate correct link having 'www.' cmd domain

History

#1 Updated by Yuya Watanabe over 7 years ago

  • Description updated (diff)

#2 Updated by Yuma Sakata over 7 years ago

再現確認できました。

Environment (再現バージョン)

OpenPNE3.4.20
OpenPNE3.6.2

Way to repro (再現手順)

1. 日記作成ページ(/diary/new)にアクセスする
2. 本文に小窓になりうるURL(例:www.google.co.jp) を入力後、Submitする
3. 作成した日記本文を確認する
4. 正しくないURLでリンクが生成される

Way to fix (修正内容)

小窓になりうるURLを入力した場合、正しくないURLでリンクが生成されないように修正お願いします。

#3 Updated by Yuya Watanabe over 7 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Yuya Watanabe

#4 Updated by Yuya Watanabe over 7 years ago

原因

下記部分で $url にすでに www が付与されている状態であるにもかかわらず www が更に付与される状態となっている.

lib/helper/opUtilHelper.php 347行目

 334 function op_url_cmd($text)
 335 {
 336   return preg_replace_callback(SF_AUTO_LINK_RE, '_op_url_cmd', $text);
 337 }
 338 
 339 function _op_url_cmd($matches)
 340 {
 341   $url = $matches[2].$matches[3];
 342   $cmd = '';
 343 
 344   if ($matches[2] == 'www.')
 345   {
 346     $cmd .= 'www.';
 347     $url = 'http://www.'.$url;
 348   }

修正内容

347 行目で www が付与される意味はないはずなので,ここで www を付与しないように修正する.

diff --git a/lib/helper/opUtilHelper.php b/lib/helper/opUtilHelper.php
index d918493..5a17e99 100644
--- a/lib/helper/opUtilHelper.php
+++ b/lib/helper/opUtilHelper.php
@@ -344,7 +344,7 @@ function _op_url_cmd($matches)
   if ($matches[2] == 'www.')
   {
     $cmd .= 'www.';
-    $url = 'http://www.'.$url;
+    $url = 'http://'.$url;
   }

   if (preg_match('/([a-zA-Z0-9\-.]+)\/?(?:[a-zA-Z0-9_\-\/.,:;\~\?@&=+$%#!()])*/', $matches[3], $pmatch))

#5 Updated by Yuya Watanabe over 7 years ago

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

更新履歴 d83952de8411a15b5b7ae4b5313e751743a80492 で適用されました。

#6 Updated by Kousuke Ebihara over 7 years ago

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

#7 Updated by Shouta Kashiwagi over 7 years ago

  • Target version changed from OpenPNE 3.7.0 to 252

#8 Updated by Yuya Watanabe over 7 years ago

  • Target version changed from 252 to OpenPNE 3.8beta1

#9 Updated by Yuma Sakata over 7 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

テストOKです。

#10 Updated by kaoru n almost 4 years ago

  • 3.8 で発生するか set to Unknown (未調査)

Also available in: Atom PDF