我正在尝试在PHP中验证表单。我有指示不更改表单本身(例如字段的名称),其中有一个下拉列表,其中包含:
<option value=""></option>
我试图用这个验证:
if (!isset($_POST['cboproduit'])){
$message.= "Vous devez sélectionner un téléphone <br />";}
但由于其中没有任何内容的值,如果我使用空值提交表单,则只保存一个空值。
我怎样才能以简单的方式做到这一点?
答案 0 :(得分:2)
除了检查变量是否已设置外,还需要检查它是否为空:
if (!isset($_POST['cboproduit']) || $_POST['cboproduit'] === '') {
$message .= "Vous devez sélectionner un téléphone <br />";
}
答案 1 :(得分:0)
您可以使用empty代替isset
,因为empty
也会检查变量是否存在:
if (empty($_POST['cboproduit'])){
$message.= "Vous devez sélectionner un téléphone <br />";
}
答案 2 :(得分:0)
不同的函数检查变量的不同内容。根据文件:
isset()
:确定变量是否已设置且不为NULL。empty()
:如果变量不存在或者其值等于FALSE,则该变量被视为空。array_key_exists()
:如果在数组所以在你的情况下,if (empty($_POST['cboproduit']))
似乎是最好的方法。它将检测值是否以某种方式未传输(有人可以在提交之前在浏览器中编辑表单)或选择空选项。
(请注意,这意味着无法确定不存在的变量与null
变量之间的差异。)
答案 3 :(得分:0)
只是一个想法但空的可能不适合你,因为<option value=""></option>
的value属性可能被设置为0表示第一个元素(1作为第二个,依此类推)然后这意味着你永远不会将第0个元素删除为空检查0和空白
if (empty($_POST['cboproduit'])){
$message.= "Vous devez sélectionner un téléphone <br />";
}