我的网站上有一个ajax驱动的联系表单here
我遇到了2个问题。
首先,我不确定为什么名称字段的错误检查不起作用,我的代码似乎是正确的(逻辑明智的),但它仍然没有启动。
其次,我不知道如何在表单中添加更多字段。例如,为用户添加Company Name
以输入和发送电子邮件。我尝试添加像$company
和以下代码这样的值,但是我收到此错误,我无法将那么多变量传递到$mail
:/尝试通过试验和错误学习,任何帮助表示赞赏!
这是我的代码:
<?php
include dirname(dirname(__FILE__)).'/mail.php';
error_reporting (E_ALL ^ E_NOTICE);
$post = (!empty($_POST)) ? true : false;
if($post)
{
include 'email_validation.php';
$name = stripslashes($_POST['name']);
$email = trim($_POST['email']);
$subject = 'Contact Form: Inquiry from corporate website';
$message = stripslashes($_POST['message']);
$error = '';
// Check name
if(!$name || strlen($name) < 1)
{
$error .= 'Please enter your name.<br />';
}
// Check email
if(!$email)
{
$error .= 'Please enter an e-mail address.<br />';
}
if($email && !ValidateEmail($email))
{
$error .= 'Please enter a valid e-mail address.<br />';
}
// Check message (length)
if(!$message || strlen($message) < 10)
{
$error .= "Please enter your message. It should have at least 10 characters.<br />";
}
if(!$error)
{
$mail = mail(CONTACT_FORM, $subject, $message,
"From: ".$name." <".$email.">\r\n"
."Reply-To: ".$email."\r\n"
."X-Mailer: PHP/" . phpversion());
if($mail)
{
echo 'OK';
}
}
else
{
echo '<div class="notification_error">'.$error.'</div>';
}
}
?>
这是我连接到php的html表单:
<form id="contactForm" action="">
<input type="text" name="name" value="Name *" title="Name *" />
<input type="text" name="email" value="Email *" title="Email *" />
<textarea name="message" id="message" title="Message *">Message *</textarea>
<div class="clear"></div>
<input type="reset" class="btn btn_clear" value="Clear form" />
<input type="submit" class="btn btn_blue btn_send" value="Send message!" />
<div class="clear"></div>
</form>
答案 0 :(得分:0)
关于名称的验证:
不要做
if(!$name || strlen($name) < 1)
{
$error .= 'Please enter your name.<br />';
}
请改为:
if((!(isset($_POST['name'])) || strlen($name) < 1)
{
$error .= 'Please enter your name.<br />';
}
如果$ name未定义,strlen将不会做太多。但是在尝试对发布的名称进行strlen之前,你应该这样做。
此外,您无法添加
$company
进入
$mail
函数,因为您最有可能将其用作mail函数的参数,而不是将其附加到$ message变量。
你也应该缩进你的代码,阅读起来很糟糕。
答案 1 :(得分:0)
这就是mail.php中的内容,这就是联系表格
的原因<?php
// Where will you get the forms' results?
define("CONTACT_FORM", 'dannyisaninja@gmail.com');
?>