我已经购买了一个内置联系表格的模板 问题是它提交除“公司”名称之外的所有东西 我弄乱了它,但无法开始工作。 如果你能指出一些解决方案我会很高兴
提前致谢
这是php脚本
if(!$_POST) exit;
$email = $_POST['email'];
//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
$error.="Invalid email address entered";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ('name','email','message');
$required = array('name','email','message');
$your_email = "--------@gmail.com";
$email_subject = "New Message: ".$_POST['subject'];
$email_content = "new message:\n";
foreach($values as $key => $value){
if(in_array($value,$required)){
if ($key != 'subject' && $key != 'company') {
if( empty($_POST[$value]) ) { echo 'Please fill in all required fields, marked with *'; exit; }
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
}
if(@mail($your_email,$email_subject,$email_content)) {
echo 'Thanks for your message, will contact you soon.';
} else {
echo 'ERROR!';
}
}
答案 0 :(得分:3)
$values = array ('name','email','message');
在PHP脚本中将'company'
添加到此列表中。
另外,我会将foreach
循环修改为这样,以获得预期的功能:
foreach($values as $key => $value)
{
if(in_array($value,$required))
{
if(empty($_POST[$value]))
{
echo 'Please fill in all required fields, marked with *';
exit;
}
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
这样,不在$required
数组中的字段仍会添加到电子邮件中(如果它们存在) - 它们不必通过空检查。
答案 1 :(得分:1)
问题在于这一行:
$email_content .= $value.': '.$_POST[$value]."\n";
除非此行,否则永远不会到达:
if (in_array($value,$required)) {
......很满意。这意味着,只有$required
中列出的字段才会附加到电子邮件中。如果可以,那么只需更改这些行:
$required = array('name','email','message');
$values = array ('name','email','message');
阅读:
$required = array ('name','email','message','company');
$values = array ('name','email','message','company');
如果还不行,请更改:
foreach ($values as $key => $value) {
if (in_array($value,$required)) {
if ($key != 'subject' && $key != 'company') {
if (empty($_POST[$value])) {
echo 'Please fill in all required fields, marked with *';
exit;
}
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
}
看起来像这样:
foreach ($values as $key => $value) {
if (in_array($value,$required)) {
if ($key != 'subject' && $key != 'company') {
if (empty($_POST[$value])) {
echo 'Please fill in all required fields, marked with *';
exit;
}
}
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
然后,您可以从company
中取出$required
,但请将其保留在$values
中。我怀疑启动时模板工作正常,因为所有字段都是 required 。
如果仍然不起作用,请更改此(顶部):
if(!$_POST) exit;
看起来像这样:
if(!$_POST) exit;
print_r($_POST);
...并在你的问题中粘贴其他输出。
另外,请考虑从其他供应商处购买模板:)