commentプラグインでコメント記入後の、アドレスバーに表示されるアドレスが正しくない

  • ページ: BugTrack
  • 投稿者: ぃぉぃぉ?
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: プラグイン
  • 投稿日: 2007-05-24 (木) 20:06:47
  • バージョン: 1.4.7
  • リリース予定バージョン: 1.5.2

現象

commentプラグインでコメント記入後、アドレスバーに表示されるアドレスが正しくありません。ページ名が表示されず、index.phpとなります。

対策案1

function plugin_comment_convert()の一行を修正。これだけでよかったのですね。

-	$script = get_script_uri();
	$s_page = htmlspecialchars($vars['page']);
+	$script = get_script_uri() . '?' . $s_page;

修正による動作の違いは特にありません。

対策案2

記入時に「~を更新しました」や、「更新の衝突を検知しました」といったメッセージが表示されなくなります。

function plugin_comment_action()の最後の部分を

	page_write($vars['refer'], $postdata);
+	pkwk_headers_sent();
+	header('Location: ' . get_script_uri() . '?' . rawurlencode($vars['refer']));
+	exit;

-	$retvars['msg']  = $title;
-	$retvars['body'] = $body;

-	$vars['page'] = $vars['refer'];

-	return $retvars;
}

としたら良いのでは。

メリット

  • コメント書き込み後、アドレスバーに正しいアドレスが表示されるようになる。
  • コメント書き込み後、F5キーで更新したりしたときに、同じメッセージが再度書かれることが無くなる。

デメリット

  • 書き込み後、再度ページを読み直すので、サーバーの処理量、通信量が増える。(通信量といってもページリクエスト分だけかな。)

最初に投稿した間違った情報

function plugin_comment_action()のreturn $retvars;の前に

header('Location: ' . get_script_uri() . '?' . rawurlencode($vars['page']));

を入れてはいかがでしょうか。

headerについてよく分かっていないので、これでよいか自信なし^^;


  • 他のプラグインを見たり、Webを調べたりして、header()の使い方がわかってきたので修正。 -- ぃぉぃぉ? 2007-06-26 (火) 02:50:16
    • 衝突が起こった場合衝突メッセージを出したりするので、衝突などがなく正しく更新された場合 header で飛ばす、としないといけないと思われます -- 2007-06-26 (火) 05:47:17
  • 確かに、更新メッセージとかも出なくなりますね。個人的には書き込んだ後F5で更新して、新しいメッセージが読みたかったりするので、それも有りかな、とも。ま、仕様が変わっちゃいますね。 -- ぃぉぃぉ? 2007-06-26 (火) 12:26:15
  • 私の周りでもよく問題になっていました(コメント入力後、ページURLのつもりでトップページのURLをコピーしてしまう)。対策案1 を実装しました commit:e90ad60c89 -- umorigu 2017-09-11 (月) 22:11:05


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-09-11 (月) 22:11:05
Site admin: PukiWiki Development Team

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.30-0+deb8u1. HTML convert time: 0.244 sec.

OSDN