验证表单输入:复选框

问题
希望确保只选中合法的复选框。
解决方案
对于单个复选框,确保如果提供一个值则应当是正确的值。如果未为复选框提供值,那么这个复选框不应选中。
验证单个复选框
//生成复选框
echo "

";
$value ='yes';
echo " Subscribe?";
echo "";
echo "
";
//之后验证复选框
if(filter_has_var(INPUT_POST, 'subscribe')){
//提交一个正确的值
if($_POST['subscribe'] == $value){
$subscribed = true;
}else{
//提交一个不正确的值
$subscribed = false;
print 'Invalid checkbox value submitted.';
}
}else{
//未提交任何值
$subscribed = false;
}
if($subscribed){
print 'You are subscribed.';
}else{
print 'You are not subscribed';
}

验证一组复选框
// 开始输出 HTML 表单
echo "

";

// 定义一个关联数组,包含食物选项和它们的显示名称
$choices = array(
'eggs' => 'Eggs', // 键 'eggs' 对应显示名称 'Eggs'
'toast' => 'Toast', // 键 'toast' 对应显示名称 'Toast'
'coffee' => 'Coffee'// 键 'coffee' 对应显示名称 'Coffee'
);

// 遍历 $choices 数组,为每个选项生成一个复选框
foreach($choices as $key => $choice){
// 输出复选框,name 属性为 'food[]' 表示这是一个复选框数组
// value 属性设置为 $key(即 'eggs', 'toast', 'coffee' 等)
echo " $choice";
// 输出一个换行符,以便每个复选框都在新的一行显示
echo '
';
}

// 输出提交按钮
echo "";

// 结束表单输出
echo "

";

// 检查表单是否已提交(在实际应用中,通常还会检查一个特定的提交按钮是否被点击)
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 使用 array_intersect 函数来验证 $_POST['food'] 数组中的值是否都是 $choices 数组的键
// 如果不是(即用户选择了不在 $choices 中的值),则输出错误信息
if(array_intersect($_POST['food'], array_keys($choices)) != $_POST['food']){
echo 'You must select only valid choices.';
} else {
// 如果用户只选择了有效的选项,则输出他们选择的内容
echo "You've selected: "; // 注意修正了原句中的语法错误和拼写错误
// 使用 print_r 函数打印出用户选择的食物数组
print_r($_POST['food']);
}
}

posted @   kksllss  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示