filter_varを使用して電子メールの検証に合格させようとしています。ただし、電子メールが有効でない場合、スクリプトがフォームデータをデータベースに処理しないようにする方法がわかりません。電子メールがfilter_varを渡さないときにスクリプトが実行されないようにする方法
私は、電子メールは明らかにユーザによって入力されたものから来ていると$ _POST変数である
$email = $_POST['email'];
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
exit();
}
を持っています。スクリプトDOESは電子メールを有効または無効として表示しますが、スクリプトをまだ処理していて、フォームデータをデータベースに格納します。私は "exit()"を置くことがこれに対する解決策であるか、またはそれが有効でないときの適切な対処方法であると考えました。エコープリントが表示される新しいページを開くだけです。
私は何が間違っているのか、間違っていますか?理想的には、フォームフィールドをハイライト表示し、間違ってフォーマットされた電子メールアドレスで入力したことをユーザーに伝えたいと思います(ただし、これは別のトピックで、多少の鐘や笛のタイプです)。スクリプトがデータを自分のデータベースに処理できるようにしたくありません。
2度フィルタリングしていますか?あなたのスクリプトの2行目を取り除く – Farkie
あなたの状態は 'if(false === false)' – Kisaragi
です。ダブルネガティブは混乱していましたが、今は理解していると思います。このサンプルコードはW3Schoolsにあります。http://www.w3schools.com/php/filter_validate_email.asp – TecBrat