コメントが書き込めない†
- ページ: BugTrack
- 投稿者: みこ
- 優先順位: 低
- 状態: 却下
- カテゴリー: プラグイン
- 投稿日: 2004-11-29 (月) 20:08:51
- バージョン: cvs(11/28)
メッセージ†
cvs:plugin/comment.inc.php(r1.25)を使用するとコメントが書き込めなくなっています。おそらく、クリーンアップの際のデグレかとおもいます。
- パッチです。 -- みこ
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
- 上記部分はロジックを全くいじっていないので、違いが良くわかりません (^^; -- henoheno
変更前
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
- ああ (^^; まず、パッチは誤りです。ごめんなさい。(逆に動かなくなるものがでます。) -- みこ
- 原因は別のところにありそうなので、ちょっと追加調査します。すみません、原因がちゃんと判明するまでステータスを変更します。 -- みこ
- すみません、これは結局 convert_html の再入の問題と判明しました。(そういえばBugTrack/528でそんなお話をしましたね (^^; )情報を混乱させてしまって、ごめんなさい XD -- みこ
- いえいえ :) 最近どんなことをやっているのか知っていただく意味でこういうやりとりも良いものです。 -- henoheno
- 後につなげるための報告として・・・。comment.inc.php での comment_no は static にしている(+番号を順番として依存している)ため convert_html の再入が入る*2とその番号に狂いが生じるときがあります。でも、この部分を強化するのって現行だとむずかしそうですよね? (^^; -- みこ
- convert_html以外の解を探した方が良いと思います。とりあえず現在のアーキテクチャ(というべきですか)では、アクロバティックな、あるいは富豪的なことをしている部分もありますが、データはおおむね1パスで処理されます。static関数を使うのがまずい、ということになると、「同じプラグインが複数個書いてあったら、二度目以降は無視する」とか「static関数でキャッシュ/カウントする」といった動作の前提が根底から崩れますので、被害はcommentプラグインだけに留まらないし、どこで崩壊が起きるかは利用しているプラグインと、それをどこで利用しているか(データ)に依存すると思います。 -- henoheno
- これは、わたしもそうおもいますのでこのコメントはここで(ステータスは却下のまま)クローズします。*3 -- みこ