0

PHP でフォームを検証しようとしています。フォーム自体 (たとえば、フィールドの名前) を変更しないように指示があり、その中に次のドロップダウン リストがあります。 <option value=""></option>

私はこれで検証しようとしました:

if (!isset($_POST['cboproduit'])){
$message.= "Vous devez sélectionner un téléphone <br />";} 

しかし、何も入っていない値があるため、空の値でフォームを送信すると、空の値が保存されます。

これを簡単な方法で行うにはどうすればよいですか?

4

4 に答える 4

2

変数が設定されているかどうかを確認するだけでなく、変数が空でないかどうかを確認する必要があります。

if (!isset($_POST['cboproduit']) || $_POST['cboproduit'] === '') {
    $message .= "Vous devez sélectionner un téléphone <br />";
}
于 2013-08-18T01:17:16.050 に答える
0

さまざまな関数が、変数に関するさまざまなことをチェックします。ドキュメントによると:

  • isset()処置: 変数が設定されており、NULLでないかどうかを確認してください。
  • empty(): 変数が存在しない場合、またはその値が FALSE の場合、その変数は空と見なされます。
  • array_key_exists(): 指定されたキーが配列に設定されている場合に TRUE を返します

したがって、あなたの場合、if (empty($_POST['cboproduit']))続行する最良の方法のようです。値が何らかの理由で送信されなかった (送信前にブラウザでフォームを編集できた) か、空のオプションが選択されたかを検出します。

(これは、存在しない変数と存在する変数の違いを判断する方法がないことを意味することに注意してくださいnull。)

于 2013-08-18T01:33:02.983 に答える
0

asの代わりにemptyを使用して、変数が存在するかどうかを確認することもできます。issetempty

 if (empty($_POST['cboproduit'])){
    $message.= "Vous devez sélectionner un téléphone <br />";
 }
于 2013-08-18T01:17:33.570 に答える