すべてのフィールドが入力されていることを確認するために、送信前に Web フォームに入力された情報を検証する PHP ページ (以下のコードを参照) を作成しました。いずれかのフィールドが空白のままになっている場合、エラー メッセージが表示されるはずです。すべてのフィールドが入力されている場合は、データを .csv ファイルに送信することになっています。問題は、フィールドを検証しておらず、データを .csv に送信していないことです。.csv を削除してから、Web フォームを送信しようとしました。エントリをカンマで区切った .csv を作成しますが、エントリはありません (つまり、テキストがなく、カンマのみ)。
これがなぜなのか誰か知っていますか?
任意の支援をいただければ幸いです。
前もって感謝します!
コードは次のとおりです。
<form action="form_mailer.php" method="post">
<table>
<tr><td>Which is your name?</td>
<td><input type="text" name="formName" maxlength="50" value="<?=$varName;?>"></td></tr>
<tr><td>What is your occupation?</td>
<td><input type="text" name="formOccupation" maxlength="50" value="<?=$varOccupation;?>"></td></tr>
</table>
<input type="submit" name="formSubmit" value="Submit">
</form>
<?php
if($_POST['formSubmit'] == "Submit")
{
$errorMessage = "";
if(empty($_POST['formName']))
{
$errorMessage .= "<li>You forgot to enter your name!</li>";
}
if(empty($_POST['formOccupation']))
{
$errorMessage .= "<li>You forgot to enter your occupation!</li>";
}
$varName = $_POST['formName'];
$varOccupation = $_POST['formOccupation'];
if(!empty($errorMessage))
{
echo("<p>There was an error with your form:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
}
?>
<?php
if($errorMessage != "")
{
echo("<p>There was an error:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
else
{
$fs = fopen("data.csv","a");
fwrite($fs,$varName . ", " . $varOccupation . "\n");
fclose($fs);
}
?>
アップデート:
やあ、
返信ありがとうございます。
どこが間違っていたのか今気づきました....フォームアクションを「form_mailer.php」として持っていました。これはフォームページ自体ではなく、提供されたデータでさらにアクションを実行する別のページです。ウェブフォーム。
「form_mailer」コーディングを Web フォーム .php に取り込み、Web フォーム ページの「アクション」を変更して、それ自体が効果的に送信されるようにしましたが、Web フォームの送信が成功した後、form_mailer ページにリダイレクトする必要があります。お礼のメッセージを表示する.....誰も私がこれを行う方法を知っているとは思いませんか? 両方を行う方法の指示を提供していただければ、私のニーズに最適な方を選択できるので、それは素晴らしいことです.
再度、感謝します!