首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP复选框表单获取内爆警告

PHP复选框表单获取内爆警告
EN

Stack Overflow用户
提问于 2013-10-21 18:57:26
回答 2查看 1.2K关注 0票数 1

我是新来的,在询问之前,我试着搜索现有的帖子,但找不到一个对我的工作有效的,完全是用来修改我的表格的。我还在学习-所以我不知道我做错了什么。

使用下面的表单,我将在浏览器的顶部得到以下警告/错误:

注意:第25行/home/adk819/public_html/DummyWebs/DCC2/send_form_email.php中的未定义索引: checkbox_group_1 警告: line () function.implode:在第25行的/home/adk819/public_html/DummyWebs/DCC2/send_form_email.php中传递的无效参数

下面是我的html (其中只有错误)--它是一个相当大的表单:/):

代码语言:javascript
复制
<form class="formTemplate" method="POST" action="send_form_email.php">
<div>
<fieldset><!-- Wrap checkbox/radio button groups in fieldsets -->
<legend id="casetype">Case Type</legend>
<div>
<input type="checkbox" id="casetype_1" name="checkbox_group_1[]" value="Rackmount" />
<label for="casetype_1">Unknown</label>
</div>
<div>
<input type="checkbox" id="casetype_2" name="checkbox_group_1[]" value="Injection" />
<label for="casetype_2">Injection Molded</label>
</div>
<div>
<input type="checkbox" id="casetype_3" name="checkbox_group_1[]" value="Rotationally" />
<label for="casetype_3">Rotationally Molded</label>
</div>
<div>
<input type="checkbox" id="casetype_4" name="checkbox_group_1[]" value="Rackmount" />
<label for="casetype_4">Rack Mount</label>
</div>
</fieldset>
</div>
</form>

以下是我的php (用于上述区域):

代码语言:javascript
复制
$casetype = implode(' | ', $_POST['checkbox_group_1']);

// Construct email body

$email_message .= "Case Type: ". $casetype . "\r\n";

在这里我找到了使表单的这一部分的信息:http://webdesy.com/how-to-create-html-php-contact-form-radio-buttons-checkboxes-dropdown-menu/,我请求他们的帮助--但目前还没有修复:

谢谢你们能帮我的忙!玛丽~

EN

回答 2

Stack Overflow用户

发布于 2013-10-21 19:03:44

尝试将代码绑定到issset中,只有当复选框变量出现时,它才会执行。

代码语言:javascript
复制
if(is_array($_POST['checkbox_group_1']) && isset($_POST['checkbox_group_1']))
{
$casetype = implode(' | ', $_POST['checkbox_group_1']);

// Construct email body

$email_message .= "Case Type: ". $casetype . "\r\n";
}

当您的复选框没有设置为数组时,基本上就会出现错误,所以当您尝试对其执行内爆时,PHP会不高兴,因为它需要一个数组。

票数 1
EN

Stack Overflow用户

发布于 2013-10-21 19:02:31

我建议在内爆前检查$_POST值。

如果没有选中特定组中的复选框,则该变量将不会被张贴,并且将被取消定义。

本例使用PHP的empty()三元算子

代码语言:javascript
复制
$casetype = !empty($_POST['checkbox_group_1']) 
              ? implode(' | ', $_POST['checkbox_group_1'])
              : false;

编辑:

如果组中没有选择选项,也可以显示特定的消息。

与其将缺失值设置为false,不如将其设置为其他值:

代码语言:javascript
复制
$casetype = !empty($_POST['checkbox_group_1']) 
              ? implode(' | ', $_POST['checkbox_group_1'])
              : "n/a";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19502486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档