コメントが書き込めない

  • ページ: BugTrack
  • 投稿者: みこ
  • 優先順位: 低
  • 状態: 却下
  • カテゴリー: プラグイン
  • 投稿日: 2004-11-29 (月) 20:08:51
  • バージョン: cvs(11/28)

メッセージ

cvs:plugin/comment.inc.php(r1.25)を使用するとコメントが書き込めなくなっています。おそらく、クリーンアップの際のデグレかとおもいます。


  • パッチです。 -- みこ 2004-11-29 (月) 20:09:19
    55c55,58
    <               if (preg_match('/^#comment/i', $line) && $comment_no++ == $vars['comment_no']) {
    ---
    > //            if (preg_match('/^#comment/i', $line) && $comment_no++ == $vars['comment_no']) {
    >               if (preg_match('/^#comment/i', $line)) {
    > $comment_no++;
    > if ($comment_no == $vars['comment_no']) {
    57a61
    > }
  • すいません、できればdiffは -u (unified) でお願いします。そして動かないとのことですが、とりあえず再現していません (^^; 1.4お試しサイトでも既に r1.25 になっていますが、問題無いようです。 -- henoheno 2004-11-29 (月) 23:33:54
    • 上記部分はロジックを全くいじっていないので、違いが良くわかりません (^^; -- henoheno 2004-11-29 (月) 23:35:52

変更前

	foreach ($postdata_old as $line)
	{
		if (!$comment_ins)
		{
			$postdata .= $line;
		}
		if (preg_match('/^#comment/i', $line) and $comment_no++ == $vars['comment_no'])
		{
			$postdata = rtrim($postdata)."\n-$comment\n";
			if ($comment_ins)
			{
				$postdata .= "\n";
			}
		}
		if ($comment_ins)
		{
			$postdata .= $line;
		}
	}

変更後

	foreach ($postdata_old as $line) {
		if (! $comment_ins) $postdata .= $line;
		if (preg_match('/^#comment/i', $line) && $comment_no++ == $vars['comment_no']) {
			$postdata = rtrim($postdata) . "\n-$comment\n";
			if ($comment_ins) $postdata .= "\n";
		}
		if ($comment_ins) $postdata .= $line;
	}
  • and を && に変えてはいますが、代入文を使っているわけでもなし、特に影響はないはずですです -- henoheno 2004-11-29 (月) 23:39:40
    • (・・・インクリメントが気になるので、ちょっと確認してこよう・・・*1 -- henoheno 2004-11-29 (月) 23:41:19
    • (関係ないよなぁ・・・むむ・・・ -- henoheno 2004-11-29 (月) 23:45:24
  • ああ (^^; まず、パッチは誤りです。ごめんなさい。(逆に動かなくなるものがでます。) -- みこ 2004-11-30 (火) 00:46:06
  • 原因は別のところにありそうなので、ちょっと追加調査します。すみません、原因がちゃんと判明するまでステータスを変更します。 -- みこ 2004-11-30 (火) 00:47:41
  • すみません、これは結局 convert_html の再入の問題と判明しました。(そういえばBugTrack/528でそんなお話をしましたね (^^; )情報を混乱させてしまって、ごめんなさい XD -- みこ 2004-11-30 (火) 12:47:58
    • いえいえ :) 最近どんなことをやっているのか知っていただく意味でこういうやりとりも良いものです。 -- henoheno 2004-12-06 (月) 23:23:26
  • 後につなげるための報告として・・・。comment.inc.php での comment_no は static にしている(+番号を順番として依存している)ため convert_html の再入が入る*2とその番号に狂いが生じるときがあります。でも、この部分を強化するのって現行だとむずかしそうですよね? (^^; -- みこ 2004-11-30 (火) 12:56:18
  • convert_html以外の解を探した方が良いと思います。とりあえず現在のアーキテクチャ(というべきですか)では、アクロバティックな、あるいは富豪的なことをしている部分もありますが、データはおおむね1パスで処理されます。static関数を使うのがまずい、ということになると、「同じプラグインが複数個書いてあったら、二度目以降は無視する」とか「static関数でキャッシュ/カウントする」といった動作の前提が根底から崩れますので、被害はcommentプラグインだけに留まらないし、どこで崩壊が起きるかは利用しているプラグインと、それをどこで利用しているか(データ)に依存すると思います。 -- henoheno 2004-12-06 (月) 23:37:34
    • これは、わたしもそうおもいますのでこのコメントはここで(ステータスは却下のまま)クローズします。*3 -- みこ 2004-12-07 (火) 00:06:08

*1 PHPは優先順位が微妙に違うんですよね... http://www.php.net/manual/ja/language.operators.php
*2 再現させるにはconvert_htmlしたものを使用しないようなroutineを作るとわかりやすいです XD
*3 余計な手数をかけてしまってすみません XD はずかしい XD

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-12-07 (火) 00:06:53
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.351 sec.

OSDN