私のコードを確認してください。私は検証の電子メールのための2つのフィールドに持ってよくある質問FILTER_VALIDATE_EMAILに関するこの問題の解決方法
if ($email == NULL) {
$error['email'] = "email is missing";
}
を別の
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error['emailfilter'] = "email is Invalid";
}
である。しかし、電子メールフィールドが空/ブランクのあるときに私の問題があります。私はそれらの戦争がショーであることを発見しました。 "電子メールがありません" & "電子メールが無効です";私は1つだけの戦争が表示されます。電子メールが空白/空白の場合など。 「電子メールがありません」と表示されます。「電子メールが無効です」と電子メールが有効でない場合は、「電子メールが無効です」と表示されます。以下は私のフルコードです。
<?php
if (isset($_POST['contact'])) {
$warning = array();
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$msg = $_POST['message'];
$to = "[email protected]";
$sub = "you got a msg";
$headers = "from: $email";
if ($firstname == NULL) {
$error['fname'] = "firstname is missing";
}
if($lastname == NULL){
$error['lname'] = "Last name is missing";
}
if ($email == NULL) {
$error['email'] = "email is missing";
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error['emailfilter'] = "email is Invalid";
}
if ($msg == NULL) {
$error['msg'] = "message is required";
}
if (count($error) == 0) {
mail($to, $sub, $msg, $headers);
$success = "Message Submited";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>conatact</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<form action="" method="POST">
<input type="text" name="firstname" Placeholder="First Name"><br />
<p class="error"><?php if (isset($error['fname'])) {
echo $error['fname'];
}?></p>
<input type="text" name="lastname" Placeholder="Last Name"><br />
<p class="error"><?php if (isset($error['lname'])) {
echo $error['lname'];
}?></p>
<input type="email" name="email" Placeholder="Email"><br />
<p class="error"><?php if (isset($error['email'])) {
echo $error['email'];
}?></p>
<p class="error"><?php if (isset($error['emailfilter'])) {
echo $error['emailfilter'];
}?></p>
<textarea name="message" cols="30" rows="10"></textarea><br />
<p class="error"><?php if (isset($error['msg'])) {
echo $error['msg'];
}?></p>
<input type="password" name="password" Placeholder="Password"><br />
<input type="submit" value="send" name="contact">
</form>
<h2 class="error"><?php if (isset($success)) {
echo $success;
}?></h2>
</body>
</html>
[elseif](https://secure.php.net/manual/en/control-structures.elseif.php)? – FirstOne
なぜ検証ライブラリを使用しないのですか? vlucas/valitronはまともなものです – geggleto
あなた自身や他人の安全のために、ユーザー入力の正しい取り扱いについてお読みください。開始場所は[w3schools](https://www.w3schools.com/php/php_form_validation.asp)です。 –