質問箱/5250

カテゴリ動作環境
サマリページが削除できない
バージョンPHP7.1.0+pukiwiki1.5.1
投稿者kmi?
状態完了
投稿日2016-12-26 (月) 14:31:25

質問

ページを作成して、全ページを削除し、「ページを更新」ボタンを押すと、"xxxを削除しました"が表示されますが、左メニューの「最新のnn件」からページが削除されず、また"RecentDeleted"も左メニューに表示されません。

PHP5.5.21+pukiwiki1.5.0では、ちゃんと削除されます。

回答

  • PHP5.5.21+pukiwiki1.5.1でも試してみましたが、削除されませんでした。 -- kmi? 2016-12-26 (月) 17:29:28
  • 編集フォームからの返信で本文にゴミ(タブや改行コード1文字分など)が残っていた場合は、ページ削除ではなく更新として扱われます。この動作自体はわざと白紙ページを作るといった1つの手法として載っていたような気がするのでバグではないと思いますが、まれに他の機能と干渉する場合があります。例えば現在のwikiソースをtrim() してから比較するという場合、現在の状態が削除済みと同一となって意図した動作にならない可能性があります。 -- 2016-12-27 (火) 23:58:06
    • 対処療法で済ますのなら、適当な内容でページを復活させてから再度削除を試みてください。(この公式サイトを例にだすなら、onmyouji というページのバックアップで、同様の試みが行われた形跡を確認できます) -- 2016-12-28 (水) 00:04:18
    • 本体動作を修正するのなら、PukiWiki/Download/1.5.1#ifdf9221に記載のあるdev:BugTrack/2374で追加された「author行をはずす」という動作周辺(page_write() 内での最終比較かな?)を確認する必要がありそうです。 -- 2016-12-28 (水) 00:12:22
  • "xxxを削除しました"と表示されるので、本文にゴミが残っていることはないと思います。その後の実際のページの削除の処理が正しく行われていない、と推測されます。 -- kmi? 2017-01-05 (木) 09:48:54
  • Windows 10; Apache 2.4; PHP 7.1; PukiWiki 1.5.1 の組み合わせで、ページ作成→そのページを削除、を試してみましたが再現しませんでした。なにか他に条件がないでしょうか?PukiWiki 1.5.1の初期状態でも発生しますか?なにかカスタマイズを入れていないでしょうか? -- umorigu 2017-01-06 (金) 02:20:42
  • 「ページを作成して、全ページを削除し」の『全ページを削除』とはどういう操作でしょうか?wiki/フォルダのファイルを直接削除していますか? -- umorigu 2017-01-06 (金) 02:21:29
    • 『全ページを削除』はまちがいで、「ページの全内容を削除」でした。 先ほど再度1.5.1を再インストールして試してみました。 ページを作成後、再度編集し、「プレビューボタン」を押して、「(ページの内容は空です。更新するとこのページは削除されます。)」と表示されて、「更新ボタン」を押しても、削除されない場合があります。 再度何らかの入力を行い、更新してから、もう一度、全削除したら、ページ削除ができました。 全削除してもページ削除されない条件がわからないです。 -- kmi? 2017-01-06 (金) 10:06:06
    • 本文が改行だけになってしまうと、「空だけど消せないページ」になってしまうようです。これとは別に、『ページを削除した後に、左メニューの「最新のnn件」からページが削除されず』という問題は発生しますか? -- umorigu 2017-01-10 (火) 03:00:13
    • はい、というか、"xxxを削除しました"と表示されるにもかかわらず、左メニューの「最新のnn件」に残ってしまう、というのが質問の大本です。本文が改行だけになってしまうと、再入力をしないと削除できない、という問題と関連しているのでは? と思います。 -- kmi?2017-01-12 (木) 10:57:54
  • 質問者ではありませんが、ここでの不正投稿を削除しようとしてもこの状態(ページ内容を全部削除して対象ページが削除されたというのが出ても真っ白なページが残ってしまう)というのは時々ありますね。ブラウザ(Firefox)の方の問題の可能性もあるのかもしれません。ここのサイトが1.5.0だった時にも起きていたと思います。 -- 2017-01-08 (日) 18:41:27
  • 本文が改行だけになって残ってしまうケースがあるようですね。これは改善したいです。 -- umorigu 2017-01-10 (火) 02:44:55
  • 改善の目途がつきましたら、この質問はクローズしたいと思います。 -- kmi? 2017-01-17 (火) 10:04:31
  • やっと再現しました。編集で「スペース1個 」だけを入力して「ページの更新」、再度編集を開始して、空の状態で「ページの更新」すると、「削除しました。」と表示されますが実際にはページが残っていて、最新のxx件のリストにも載ったままです -- umorigu 2017-01-18 (水) 01:42:21
  • 以下のパッチとコメントは、匿名希望の方 (kintok?さん)によるものです。-- henoheno
    • page_write
      -if ($text_without_author === $oldtext_without_author) {
      +if (strlen($text_without_author) && ($text_without_author === $oldtext_without_author)) {
    • (注)pukiwiki1.5で仕様変更されたため empty関数が空と判断する本文の場合ページが削除されます。
      -$is_delete = empty($text_without_author);
      +$is_delete = !strlen($text_without_author);
  • dev:BugTrack/2418でバグとして扱い、修正します -- umorigu 2017-02-17 (金) 01:30:16


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-17 (金) 23:29:06
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.333 sec.

OSDN