php表单不提交其中一个字段
我买了一个模板,它内置了联系人表单 问题是,除了公司名称,它提交了所有内容 我把它弄得乱七八糟,但没法去做。 如果你能给我指点解决办法,我会很高兴的 提前谢谢 这是php脚本php表单不提交其中一个字段,php,email,forms,Php,Email,Forms,我买了一个模板,它内置了联系人表单 问题是,除了公司名称,它提交了所有内容 我把它弄得乱七八糟,但没法去做。 如果你能给我指点解决办法,我会很高兴的 提前谢谢 这是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 ADDR
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!';
}
}
在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数组中的字段仍然会添加到电子邮件中(如果它们存在的话)——它们不必通过空检查
在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数组中的字段仍然会被添加到电子邮件中(如果存在的话)-它们不必通过空检查。问题是这一行:
$email_content .= $value.': '.$_POST[$value]."\n";
if (in_array($value,$required)) {
除非此行:
$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";
}
if(!$_POST) exit;
print_r($_POST);
然后,您可以将公司从$required中取出,但将其保留在$values中。我怀疑模板在您启动时工作正常,因为所有字段都是必需的
如果仍然不起作用,请将其更改为:
if(!$_POST) exit;
看起来像这样:
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(!$_POST) exit;
print_r($_POST);
。。。并将附加输出粘贴到问题中
也可以考虑从另一个供应商购买模板:
问题是这条线:
$email_content .= $value.': '.$_POST[$value]."\n";
if (in_array($value,$required)) {
除非此行:
$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";
}
if(!$_POST) exit;
print_r($_POST);
然后,您可以将公司从$required中取出,但将其保留在$values中。我怀疑模板在您启动时工作正常,因为所有字段都是必需的
如果仍然不起作用,请将其更改为:
if(!$_POST) exit;
看起来像这样:
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(!$_POST) exit;
print_r($_POST);
。。。并将附加输出粘贴到问题中
也可以考虑从另一个供应商购买模板:
我试过了,但是表单现在不会发送电子邮件,而且添加这个数组会使公司成为表单中的必填字段吗?必需=数组'name','email','message';然后将其仅添加到$values。这是一个告诉脚本如果foreach循环发生,哪些字段需要放入电子邮件中的命令。@Marc B很抱歉,这没有帮助,表单将不会提交文件。查看您之前发布的javascript。如果字段/值到达服务器,PHP可以处理它。它不会因为不喜欢古龙水或其他东西而选择性地忽略一个字段。从发布的代码来看,由于将字段附加到电子邮件内容数组的调用位于ifin_数组$value,$required块中,它实际上只包括电子邮件中编码的必填字段。我觉得这很奇怪。我试过了,但表单现在不会发送电子邮件。添加到这个数组会使公司成为表单中的必填字段吗$必需=数组'name','email','message';然后将其仅添加到$values。这是一个告诉脚本如果foreach循环发生,哪些字段需要放入电子邮件中的命令。@Marc B很抱歉,这没有帮助,表单将不会提交文件。查看您之前发布的javascript。如果字段/值到达服务器,PHP可以处理它。它不会因为不喜欢古龙水或其他东西而选择性地忽略一个字段。从发布的代码来看,由于将字段附加到电子邮件内容数组的调用位于ifin_数组$value,$required块中,它实际上只包括电子邮件中编码的必填字段。我觉得很奇怪。