空投稿防止

投稿ボタンを押したとき、フォームに何も入力していなくても空投稿できてしまっていたのを修正した。

 

投稿先ではisset関数を使ったチェックを行っていたのだが、isset関数では空文字列かどうかの判定はできないらしい。

PHPでの空値の扱い〜issetとemptyを比較する - 戦う葦 〜ウェブリテラシー篇

 

上記記事によると、変数の示す先がNULLかどうか調べているようで、例え空文字列だとしてもPOSTされた場合は _POST[”○○○”] は存在することになるのでtrueが返されてしまう。

なので、空文字列チェックを行う場合はempty関数を用いる必要がある。

PHP: empty - Manual

 

加えて今回は、投稿時の名前や本文が空白文字だけだった場合も弾くようにチェックを入れたのだが、後から考えてみると余計なチェックだったかもしれない。

 

最後に、一つ前のページに戻す簡単な方法はないかと調べてみた。

(未知のページから直接飛んできた場合と、投稿ページから飛んできたけど入力に誤りがある場合の戻り処理を統一したかった)

【PHP】遷移してきたページ(1つ前のページ)のURLの取得方法|なんちゃって技術者のブログ