Ver.3.0.8をVer.3.0.12にバージョンアップ後Ver.3.0.8で登録したブログ記事の「公開開始日、終了日」を空欄のまま保存するとエラーが発生して保存できません。

jkjmn > Ver.3.0.8をVer.3.0.12にバージョンアップ後Ver.3.0.8で登録したブログ記事の「公開開始日、終了日」を空欄のまま保存するとエラーが発生して保存できません。 @ 2016/11/4 17:22
はじめまして。jkjmnと申します。Ver.2.0以来、お世話になっております。

先日公開されたセキュリティパッチを適用していたVer.3.0.8を、3系の最新バージョンにしたいと思い、
Ver.3.0.8からVer.3.0.9→3.10.0→3.0.11.1→3.0.12と段階的にバージョンアップをしました。
すると、過去に投稿したブログ記事を編集して、公開開始日と終了日が空欄のまま保存しようとすると、
公開開始日と公開終了日の形式エラーが発生してブログ記事の保存がでません。
公開開始日と公開終了日の未設定時の形式が変わったのでしょうか?


【動作環境】
■ BaserCMSのバージョン:3.0.12(3.0.8から段階的にバージョンアップ)
■ レンタルサーバー名:ロリポップ!(チカッパ優待プラン)
■ スマートURLの利用: ON
■ 設置フォルダ: ドキュメントルート
■ 利用しているデータベース: MySQL(5.6)
■ PHPバージョン: 5.6
■ PHPスキル(自己評価): D

【再現手順】
(1) Ver.3.0.8 を、順次3.0.9→3.0.10→3.0.11.1→3.0.12 にバージョンアップする。
(2) Ver.3.0.8で【公開状態】の公開開始日、公開終了日を空欄で保存したブログ(新着情報)の記事を編集し、
  公開開始日、公開終了日を空欄のまま[保存]ボタンをクリックします。
(3) 以下のエラーが発生し、保存ができません。
   エラーメッセージ:!エラーが発生しました。内容を確認してください。
   記事編集フォーム:公開状態に、「公開開始日の形式が不正です。」「公開終了日の形式が不正です。」のエラー表示。
   ▼データベース確認内容
    該当記事の公開開始日と公開終了日に以下の値が設定されていました。
    publish_begin 0000-00-00 00:00:00
    publish_end 0000-00-00 00:00:00
(4) エラー発生後、公開開始日と公開終了日に以下の入力をして[保存]したところ、保存ができました。
   公開開始日:元の投稿日と同じ年月日と時刻
   公開終了日:投稿日を2020年に置き換えた年月日と時刻
(5) その後、記事編集フォームの公開開始日と公開終了日の記入内容を空にして[保存]ボタンをクリックすると正常に保存できました。
   ▼データベース確認内容
    該当記事の公開開始日と公開終了日に以下の値が設定されていました。
    publish_begin null
    publish_end null

上記(4),(5)の手順後は、公開開始日、公開終了日を空欄にしていても保存ができています。

以上です。
ご確認をお願いいたします。
katokaisya > Re: Ver.3.0.8をVer.3.0.12にバージョンアップ後Ver.3.0.8で登録したブログ記事の「公開開始日、終了日」を空欄のまま保存するとエラーが発生して保存できません。 @ 2016/11/14 11:12
jkjmnさんはじめまして。

同様の現象が再現できるかどうかテストしてみたのですが、
3.0.10以前のバージョンで、公開開始日・公開終了日を空欄のまま保存した場合は、dbにNULLが保存されるのですが、
誤って、時刻にスペースなどを入れてしまうと、00:00:00という時刻が保存ができてしまう現象がありました。
この場合、DBには「0000-00-00 00:00:00」が保存されてしまい、
3.0.10以降では
日付の値(000-00-00)が不正となり、
「公開開始日の形式が不正です。」「公開終了日の形式が不正です。」のエラー表示が出るようです。

スペースなどが入っていなければ、正しく保存され、3.0.10以降でも普通に扱えるようです。

保存時に間違ってスペースが入っていないかどうか確認することはできますか?
※(dbで
    publish_begin 0000-00-00 00:00:00
    publish_end 0000-00-00 00:00:00
こうなっていれば、時刻のところにスペースなどの値が入っている状態で、
    publish_begin null
    publish_end null
こうなっていれば、完全に空の状態です。


もし、スペースなどが原因で時刻に00:00:00が入ってしまっている状態であれば、
ご指摘の通り、管理画面から一旦日付を入力して保存した後、日付、時刻を消して保存し直す必要があるようですね。

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
6 人のユーザが現在オンラインです。 (6 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 6