PHPでフォームから送信された場合のみ処理をする
form.phpでアクション先をthanks.phpにして、thanks.phpに飛んだときにフォームの入力内容をDBに保存し、postで受け取ったメールアドレスにsendmail等でメールを送る。という一般的な処理があります。
[流れ]
form.php (フォームに情報を入力)
↓
thanks.php (ここで入力内容をDBに保存 & 完了メール送信)
でも、そのままだと、thanks.phpに直リンされた時(form.phpから飛ばずに直でURLを入力された時)に、フォームの内容がないのに処理が実行されてしまう。。。
そんな時は、
thanks.php
[php]
if (isset($_POST["send"])) {
// フォームから送信された場合の処理。
// DBに入力データを保存 & 完了メール送信
}
[/php]
を入れると、フォームから送信された場合のみに、処理を実行してくれます。
フォームから送信されなかった場合は、elseにredirect処理を書けば、thanksページ自体を表示できなくできますね。
thanks.php
[php]
if (isset($_POST["send"])) {
// フォームから送信された場合の処理。
// DBに入力データを保存 & 完了メール送信
}else{
// redirect処理
}
[/php]