if($_POST){
$errors = array();
//start validation
if(empty($_POST['email'])){
$errors['email1'] = "Your Email Cannot be empty";
}
if (!filter_var(['email'], FILTER_VALIDATE_EMAIL)){
$errors['email2'] = "Email not valid!";
}
if(empty($_POST['phone'])){
$errors['phone1'] = "Your Number Cannot be empty";
}
if(strlen($_POST['phone']) < 8){
$errors['phone2'] = "Your Phone Number must be at least 8 characters long";
}
if(strlen($_POST['phone']) > 8){
$errors['phone3'] = "Your Phone Number must be not more than 8 characters long";
}
//check errors
if(count($errors) == 0)
{
//redirect to home page
header("Location: index.php");
exit();
}
}
これは検証が必要な私のコードです。バリデーションはうまくいきますが、ここに問題があります。PHPフォームでの検証とファイルへの保存
<div class="form-group">
<label for="name">Email</label>
<input type="email" class ="form-control" name="email" id="email" placeholder="Enter Email">
<p><?php if(isset($errors['email1'])) echo $errors['email1'];?></p>
<p><?php if(isset($errors['email2'])) echo $errors['email12'];?></p>
</div>
<div class="form-group">
<label for="phone">Phone Number</label>
<input type="text" class ="form-control" name="phone" id="phone" placeholder="Enter Phone Number">
<p><?php if(isset($errors['phone1'])) echo $errors['phone1'];?></p>
<p><?php if(isset($errors['phone2'])) echo $errors['phone2'];?></p>
<p><?php if(isset($errors['phone3'])) echo $errors['phone3'];?></p>
</div>
私はファイルに保存するように設定されています。入力が検証され、エラーメッセージが表示されますが、間違った入力を持つフォームは引き続きファイルに保存されます。どんな助けでも感謝します。
<?php
if(isset($_POST['email']) && isset($_POST['phone']) && isset($_POST['enquiry'])){
$email = $_POST['email'];
$phone = $_POST['phone'];
$enquiry = $_POST['enquiry'];
$file = "form.txt";
$save = "Email: ".$email."\n".
"Phone: ".$phone."\n".
"Comment: ".$enquiry."\n";
file_put_contents($file,$save, FILE_APPEND);
}
?>
をフォームファイルに保存されていますが、していないと言っていますそれを望んでいる?それとも、あなたはそれが欲しいのですか?また、私は2つのPHPファイルを参照してください:コードの最初のブロックと3番目の。 'index.php'はどちらですか?彼らは両方index.phpにありますか?あなたの質問のどこにでも '
これは同じcontact.phpの2つのphpタグです。 1つはフォームの前にあり、もう1つは後です。私はPHPを使用してコードを検証しようとしています。検証はうまくいきます。入力が間違っている場合はindex.phpにリダイレクトされません。正しい入力がある場合はそのまま返します。問題は、間違ったものを入力してsubmitを押すと、エラーメッセージがポップアップするが、間違った投稿はまだテキストファイルに入れられるということです。またemail2は、最初のphpタグの検証フォームにあります。 – frag