BugTrack/2263
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* #backの戻り先にURLを指定すると指定URLにリンクできない [...
- ページ: [[BugTrack]]
- 投稿者: [[g@kko]]
- 優先順位: 普通
- 状態: 完了
- カテゴリー: プラグイン
- 投稿日: 2007-07-27 (金) 06:56:05
- バージョン: back.inc.php,v 1.9 (1.4.7)
- リリース予定バージョン: 1.5.2
#contents
** メッセージ [#r5413c7f]
#backの第4引数の“戻り先”にURLを指定することが可能ですが,...
例えば
#back(,,,http://www.yahoo.co.jp)
とすると,出力されるAタグのhrefは"http%3A%2F%2Fwww.yahoo....
http://pukiwiki.sourceforge.jp/dev/http://www.yahoo.co.jp
にアクセスしようとします。
この現象はWindowsXP上で動作する
-ie6, ie7
-Firefox 2
-Opera 9
-Safari 3
-Netscape 7
で現象を確認しました。
**修正案 [#lc1941aa]
back.inc.php,v 1.9
line 42-
if ($href != '') {
if (PLUGIN_BACK_ALLOW_PAGELINK) {
if (is_url($href)) {
$href = rawurlencode($href);
} else {
$array = anchor_explode($href);
$array[0] = rawurlencode($array[0]);
$array[1] = ($array[1] != '') ? '#' . rawurlencode(...
$href = $script . '?' . $array[0] . $array[1];
$link = is_page($array[0]);
}
} else {
- $href = rawurlencode($href);
+ if (is_url($href)) {
+ $href = htmlspecialchars($href);
+ } else {
+ return PLUGIN_BACK_USAGE . ': Set a page name or an...
+ }
}
} else {
if (! PLUGIN_BACK_ALLOW_JAVASCRIPT)
return PLUGIN_BACK_USAGE . ': Set a page name or an ...
$href = 'javascript:history.go(-1)';
}
--------
- 参考:[[test1.4:back]] -- [[g@kko]] &new{2007-07-27 (金...
- 若干補足を。rawurlencodeを単純にhtmlspecialcharsに置き...
//#comment
**メッセージ以外の部分も修正した案 [#kcc30cf5]
投稿者: 名無しさん2 (便宜上の名前ってことで)&br;投稿日:...
修正内容など
-メッセージに出ている件(微妙に修正方法が違います)
--上の案からの変更理由: %%URL として使うので、htmlspecia...
---http:// → http%3A%2F%2F にしたら相対リ...
---PLUGIN_BACK_ALLOW_PAGELINK がTRUE の時の方もhtmlspecia...
--エラーメッセージ部分の変更は、このルートに来るときはURL...
-get_fullname() をしていないので、アンカー名のみ記述した...
--get_fullname() を使うようにした副作用として、ページ名の...
--get_fullname() した後にページ名のチェックを追加(エラー...
-rawurlencode() した後の物をis_page() しているので、ペー...
--例として、「BugTrack2/263」ではなく、「BugTrack2%2F263...
-ついでに、[[BugTrack/2260]] の件
[[cvs:plugin/back.inc.php]] (1.9)
function plugin_back_convert()
{
- global $_msg_back_word, $script;
+ global $_msg_back_word, $vars;
(中略)
$link = TRUE;
$href = trim($href);
if ($href != '') {
if (PLUGIN_BACK_ALLOW_PAGELINK) {
if (is_url($href)) {
- $href = rawurlencode($href);
+ $href = htmlspecialchars($href);
} else {
+ $refer = isset($vars['page']) ? $vars['page'] : '';
$array = anchor_explode($href);
- $array[0] = rawurlencode($array[0]);
- $array[1] = ($array[1] != '') ? '#' . rawurlencode(...
- $href = $script . '?' . $array[0] . $array[1];
- $link = is_page($array[0]);
+ $page = get_fullname($array[0], $refer);
+ if (! is_pagename($page))
+ return PLUGIN_BACK_USAGE;
+ $anchor = ($array[1] != '') ? '#' . rawurlencode($a...
+ $href = get_script_uri() . '?' . rawurlencode($page...
+ $link = is_page($page);
}
} else {
- $href = rawurlencode($href);
+ if (is_url($href)) {
+ $href = htmlspecialchars($href);
+ } else {
+ return PLUGIN_BACK_USAGE . ': Set an URI';
+ }
}
} else {
--------
-思慮が足りない + 確認不足で間違えた部分を修正。 -- 名無...
- 修正しました commit:d4db227e91 -- [[umorigu]] &new{2018...
#comment
終了行:
* #backの戻り先にURLを指定すると指定URLにリンクできない [...
- ページ: [[BugTrack]]
- 投稿者: [[g@kko]]
- 優先順位: 普通
- 状態: 完了
- カテゴリー: プラグイン
- 投稿日: 2007-07-27 (金) 06:56:05
- バージョン: back.inc.php,v 1.9 (1.4.7)
- リリース予定バージョン: 1.5.2
#contents
** メッセージ [#r5413c7f]
#backの第4引数の“戻り先”にURLを指定することが可能ですが,...
例えば
#back(,,,http://www.yahoo.co.jp)
とすると,出力されるAタグのhrefは"http%3A%2F%2Fwww.yahoo....
http://pukiwiki.sourceforge.jp/dev/http://www.yahoo.co.jp
にアクセスしようとします。
この現象はWindowsXP上で動作する
-ie6, ie7
-Firefox 2
-Opera 9
-Safari 3
-Netscape 7
で現象を確認しました。
**修正案 [#lc1941aa]
back.inc.php,v 1.9
line 42-
if ($href != '') {
if (PLUGIN_BACK_ALLOW_PAGELINK) {
if (is_url($href)) {
$href = rawurlencode($href);
} else {
$array = anchor_explode($href);
$array[0] = rawurlencode($array[0]);
$array[1] = ($array[1] != '') ? '#' . rawurlencode(...
$href = $script . '?' . $array[0] . $array[1];
$link = is_page($array[0]);
}
} else {
- $href = rawurlencode($href);
+ if (is_url($href)) {
+ $href = htmlspecialchars($href);
+ } else {
+ return PLUGIN_BACK_USAGE . ': Set a page name or an...
+ }
}
} else {
if (! PLUGIN_BACK_ALLOW_JAVASCRIPT)
return PLUGIN_BACK_USAGE . ': Set a page name or an ...
$href = 'javascript:history.go(-1)';
}
--------
- 参考:[[test1.4:back]] -- [[g@kko]] &new{2007-07-27 (金...
- 若干補足を。rawurlencodeを単純にhtmlspecialcharsに置き...
//#comment
**メッセージ以外の部分も修正した案 [#kcc30cf5]
投稿者: 名無しさん2 (便宜上の名前ってことで)&br;投稿日:...
修正内容など
-メッセージに出ている件(微妙に修正方法が違います)
--上の案からの変更理由: %%URL として使うので、htmlspecia...
---http:// → http%3A%2F%2F にしたら相対リ...
---PLUGIN_BACK_ALLOW_PAGELINK がTRUE の時の方もhtmlspecia...
--エラーメッセージ部分の変更は、このルートに来るときはURL...
-get_fullname() をしていないので、アンカー名のみ記述した...
--get_fullname() を使うようにした副作用として、ページ名の...
--get_fullname() した後にページ名のチェックを追加(エラー...
-rawurlencode() した後の物をis_page() しているので、ペー...
--例として、「BugTrack2/263」ではなく、「BugTrack2%2F263...
-ついでに、[[BugTrack/2260]] の件
[[cvs:plugin/back.inc.php]] (1.9)
function plugin_back_convert()
{
- global $_msg_back_word, $script;
+ global $_msg_back_word, $vars;
(中略)
$link = TRUE;
$href = trim($href);
if ($href != '') {
if (PLUGIN_BACK_ALLOW_PAGELINK) {
if (is_url($href)) {
- $href = rawurlencode($href);
+ $href = htmlspecialchars($href);
} else {
+ $refer = isset($vars['page']) ? $vars['page'] : '';
$array = anchor_explode($href);
- $array[0] = rawurlencode($array[0]);
- $array[1] = ($array[1] != '') ? '#' . rawurlencode(...
- $href = $script . '?' . $array[0] . $array[1];
- $link = is_page($array[0]);
+ $page = get_fullname($array[0], $refer);
+ if (! is_pagename($page))
+ return PLUGIN_BACK_USAGE;
+ $anchor = ($array[1] != '') ? '#' . rawurlencode($a...
+ $href = get_script_uri() . '?' . rawurlencode($page...
+ $link = is_page($page);
}
} else {
- $href = rawurlencode($href);
+ if (is_url($href)) {
+ $href = htmlspecialchars($href);
+ } else {
+ return PLUGIN_BACK_USAGE . ': Set an URI';
+ }
}
} else {
--------
-思慮が足りない + 確認不足で間違えた部分を修正。 -- 名無...
- 修正しました commit:d4db227e91 -- [[umorigu]] &new{2018...
#comment
ページ名: