Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP多形式故障_Php_Html_Forms - Fatal编程技术网

PHP多形式故障

PHP多形式故障,php,html,forms,Php,Html,Forms,各位好,斯塔克斯 PHP新手,我正在从预构建的代码中整理一个多页表单 基本上,用户可以选择任意多的复选框。。。然后表单提交到此第二页。此辅助页面通过$check显示他们在页面顶部选择的复选框。。然后他们可以输入他们的联系信息,所有信息都通过表单提交,以及$check信息 除了表单消息中没有输入“$check”之外,一切都正常工作,但它在页面顶部工作,显示用户输入的选项 感谢您的帮助 <?php $emailOut = ''; if(!empty($_POST['choices'])) {

各位好,斯塔克斯

PHP新手,我正在从预构建的代码中整理一个多页表单

基本上,用户可以选择任意多的复选框。。。然后表单提交到此第二页。此辅助页面通过
$check
显示他们在页面顶部选择的复选框。。然后他们可以输入他们的联系信息,所有信息都通过表单提交,以及
$check
信息

除了表单消息中没有输入“
$check”
之外,一切都正常工作,但它在页面顶部工作,显示用户输入的选项

感谢您的帮助

<?php
$emailOut = '';
if(!empty($_POST['choices'])) {
foreach($_POST['choices'] as $check) {
            echo $check; //echoes the value set in the HTML form for each checked checkbox.
                     //so, if I were to check 1, 3, and 5 it would echo value 1, value 3, value 5.
                     //in your case, it would echo whatever $row['Report ID'] is equivalent to.
            $emailOut .= $check."\n"; //any output you want
}
}
$errors = '';
$myemail = 'test@myemailHERE.com';//<-----Put Your email address here.
if(empty($_POST['name'])  || 
   empty($_POST['email']) || 
   empty($_POST['message']))
{
$errors .= "\n Error: all fields are required";
}

$name = $_POST['name']; 
$email_address = $_POST['email']; 
$message = $_POST['message']; 

if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", 
$email_address))
{
    $errors .= "\n Error: Invalid email address";
}

if( empty($errors))
{
$to = $myemail; 
$email_subject = "Contact form submission: $name";
$email_body = "You have received a new message. $check ".
" Here are the details:\n Name: $name \n Email: $email_address \n Message \n $message \n $emailOut"; 

$headers = "From: $myemail\n"; 
$headers .= "Reply-To: $email_address";

mail($to,$email_subject,$email_body,$headers);
//redirect to the 'thank you' page
header('Location: contact-form-thank-you.html');
} 
?>

这种情况下的问题是,当您开始处理电子邮件时,
$check
是显示的最后一个选项。您需要使用
foreach
station来构建数组或电子邮件输出,例如

$emailOut = "";
foreach($_POST['choices'] as $check) {
        $emailOut .= $check."\n"; //any output you want
}
然后以同样的方式使用电子邮件变量

$email_body = "You have received a new message. Here are the details:\n Name: $name \n Email: $email_address \n Message \n     $message \n $emailOut";
更新

从进一步的调查和提交的更多代码来看,您似乎正在处理一个多表单子问题。问题是你有表格1(复选框)提交给表格2(电子邮件)

由于在提交复选框后进行检查时,没有给出姓名、电子邮件等,因此给出了
$errors
,也没有发送电子邮件。填写电子邮件表单时,复选框不会再次发送,因此
$check
甚至
$\u POST['choices']
都有值


您可以将这两个表单合并为一个表单,也可以通过传递它们并填充“隐藏”字段(
或使用PHP会话来保存值。

您可以显示用于复选框的代码吗?基本上都是这样的:它们都正确地传递到页面顶部的echo中。。。只是没有显示在电子邮件输出上。你实际上没有在邮件中重复检查,只是在顶部。您需要使用顶部的foreach将选项放入字符串中,然后可以在$email_主体中使用该字符串。或者重复使用下面的foreach。那么我可以将数组内爆为字符串吗?这是最好的方法吗$字符串=内爆(“,$array);谢谢我正在尝试,但担心我的语法可能不正确。我在邮件正文中将var改为$emailOut。。。然后将最上面的几行改为:你仍然有麻烦吗?因为如果您使用
echo$检查,它不会影响输出而不是在到达
标题(位置:…)
Yes lol时引发错误。我将回声留在foreach中,它工作正常。它会回显前面页面中的复选框选项,但表单在收到电子邮件时仍会忽略该变量。我在dreamweaver中没有收到任何错误,在我可以看到的Web服务器上也没有收到任何错误。您收到任何错误吗?你能发布一个示例提交和一封示例电子邮件吗?你的代码对我来说很好用。此外,发布html表单示例电子邮件如下所示:您收到了一条新消息。以下是详细信息:姓名:asdsa电子邮件:simon@frank.com悲伤的消息