我的复选框有问题让它运转起来。 如果没有选中任何复选框,则会显示错误消息,这样可以正常工作! 还提交所有其他信息。
我现在只想让表单提交已经签入确认邮件的复选框。我现在只得到:array。
contact.php
<?php
/* Set e-mail recipient */
$myemail = "mukies@gmail.com";
/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Vul uw naam in aub");
$email = check_input($_POST['email']);
$telephone = check_input($_POST['telephone']);
$comments = check_input($_POST['comments'], "Write your comments");
$formCampagne = check_input($_POST['formCampagne']);
foreach($formCampagne as $option) {
print $option."\n";
}
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("Dit e-mail adres is niet juist, voer een juist e-mailadres in.");
}
/* If telephone is not valid show error message */
if (!preg_match("/[0-9\(\)+.\- ]/s", $telephone))
{
show_error("Voer een juist telefoon nummer in");
}
/* If verification code is not valid show error message */
if (strtolower($_POST['code']) != 'mycode') {die('Voer aub de juiste code in, in hoofdletters.');}
/* If no campaign mode is selected, show error message */
if(empty($formCampagne))
{
show_error ("U heeft geen selectie gemaakt uit de campagne opties, selecteer minimaal een van de opties.");
}
/* Let's prepare the message for the e-mail */
$message = "Hi Rick,
Je hebt weer een offerte aanvraag ontvangen voor Limburg Media! :)
Name: $yourname
E-mail: $email
Telefoon: $telephone
Offerte aanvraag? $formCampagne
Comments: $comments
End of message
";
/* Send the message using mail() function */
mail($myemail, $subject, $message);
/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();
/* Functions we used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<b>Gelieve de onderstaande foutmelding door te nemen om uw gegevens correct aan te leveren:</b><br />
<?php echo $myError; ?>
</body>
</html>
<?php exit();}
?> }
访问者填写表格的Contact.htm:
<html>
<body>
<p>Benodigde velden zijn <b>vetgedrukt</b>.</p>
<form action="contact.php" method="post">
<p><b>Uw naam:</b> <input type="text" name="yourname" /><br />
<b>E-mail:</b> <input type="text" name="email" /></p>
<b>Telefoonnummer:</b> <input type="text" name="telephone" /></p>
<p>Welk soort campagne wilt u informatie over ?<br />
<input type="checkbox" name="formCampagne[]" value="sandwichborden driehoeksborden" />sandwichborden / driehoeksborden<br />
<input type="checkbox" name="formCampagne[]" value="drukwerk banners" />drukwerk / banners<br />
<input type="checkbox" name="formCampagne[]" value="evenementen outdoor" />outdoor promotie / evenemente<br />
<input type="checkbox" name="formCampagne[]" value="internet website social media" />internet / websites / social media <br />
<input type="checkbox" name="formCampagne[]" value="artwork video" />artwork / videopromotie <br />
<input type="checkbox" name="formCampagne[]" value="promo gadgets sampling" />promoteams / gadgets / sampling <br />
<input type="checkbox" name="formCampagne[]" value="mobiele reclame reclame frames" /> mobiele reclame / reclame frames <br /> </p>
<p><b>Your comments:</b><br />
<textarea name="comments" rows="10" cols="40"></textarea></p>
<p>Validatie code: <input type="text" name="code" /><br />
Vul de tekst <b>MYCODE</b> hierboven in. </p>
<p><input type="submit" value="Send it!"></p>
</form>
</body>
</html>
thanks.htm页面只包含标准文字,说,好吧......谢谢。 :)
有人可以帮助我吗?
编辑:
那么这是正确的代码吗?:
if(isset($formCampagne)) {
echo ".implode(',', $formCampagne)."; // this is the output in the confirmation mail
} else {
echo "U heeft geen selectie gemaakt uit de campagne opties, selecteer minimaal een van de opties.";
但我该把它放在哪里? &#34; Offerte aanvraag?&#34;旁边,因为我已经在$ message字段中给出了错误。 对不起,我还没有使用过isset函数。
答案 0 :(得分:0)
如果返回false,则可以检查isset($ formCampagne),这意味着没有选中任何复选框,否则它将为您提供数组值。
答案 1 :(得分:0)
$message = "Hi Rick,
Je hebt weer een offerte aanvraag ontvangen voor Limburg Media! :)
Name: $yourname
E-mail: $email
Telefoon: $telephone
Offerte aanvraag? $formCampagne
Comments: $comments
End of message
";
而不是$ formCampagne,你应该尝试这样的事情:
$message = "Hi Rick,
Je hebt weer een offerte aanvraag ontvangen voor Limburg Media! :)
Name: $yourname
E-mail: $email
Telefoon: $telephone
Offerte aanvraag? ".implode(', ', $formCampagne)."
Comments: $comments
End of message
";
这应该是一个由逗号分隔的所有选中复选框值的列表。
答案 2 :(得分:0)
尝试替换
$message = "Hi Rick,
Je hebt weer een offerte aanvraag ontvangen voor Limburg Media! :)
Name: $yourname
E-mail: $email
Telefoon: $telephone
Offerte aanvraag? $formCampagne
Comments: $comments
End of message
";
使用:
$message = "Hi Rick,
Je hebt weer een offerte aanvraag ontvangen voor Limburg Media! :)
Name: $yourname
E-mail: $email
Telefoon: $telephone
Offerte aanvraag? ".implode(',', $formCampagne)."
Comments: $comments
End of message
";
请注意,我已使用 $formCampagne
更改了普通的 implode(',', $formCampagne)
,因为它实际上是一个数组,您必须进行此操作如果要将其放在电子邮件中,请使用字符串。
另请注意,如果未选中任何复选框,$formCampagne
将为NULL
,因此您还应检查isset($formCampagne)
是否
编辑:
在我的示例中,$formCampagne
实际应该是$_POST['formCampagne']
,我必须承认我从未使用过check_input()
函数,并且不知道它在数组上的行为。
您还可以尝试var_dump()
$formCampagne
和$_POST['formCampagne']
的内容