0

すべてのフィールドが入力されていることを確認するために、送信前に 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 ページにリダイレクトする必要があります。お礼のメッセージを表示する.....誰も私がこれを行う方法を知っているとは思いませんか? 両方を行う方法の指示を提供していただければ、私のニーズに最適な方を選択できるので、それは素晴らしいことです.

再度、感謝します!

4

2 に答える 2

0

おそらく、これらの変数をグローバルにする必要があります。

<?php
global $varName, $varOccupation
...

...おそらく両方の<?phpブロックで。

于 2013-01-30T10:42:28.030 に答える
0

コードを確認しましたが、正常に動作しており、データを csv ファイルに保存しています。

于 2013-01-30T10:38:37.790 に答える