我对PHP很陌生,并且尝试在我的网站上使用联系表单已经证明有点困难。 我把联系表格放到我的网站上;一切正常,然后发送邮件。 它连接到Godaddy上的服务器,所以不确定为什么它不起作用。 这是我的代码(更改了一些名称以保持匿名。)
HTML:
<form id="contact.php" action="mywebsite" method="post">
<div class="div_input"><input type="text" name="c_name" value="Name" onfocus="if(this.value=='Name')this.value=''" onblur="if(this.value=='')this.value='Name';" /></div>
<div class="div_input"><input type="text" name="c_email" value="E-mail" onfocus="if(this.value=='E-mail')this.value=''" onblur="if(this.value=='')this.value='E-mail';" /></div>
<div class="div_input"><input type="text" name="c_tel" value="Telephone" onfocus="if(this.value=='Telephone')this.value=''" onblur="if(this.value=='')this.value='Telephone';" /></div>
<div class="div_textarea"><textarea name="c_text" rows="1" cols="1" onfocus="if(this.value=='Text')this.value=''" onblur="if(this.value=='')this.value='Text';">Text</textarea></div>
<div class="div_btn"><input id="form_send" type="submit" name="c_send" value="" /></div>
<div class="div_warnings"></div>
<div class="loading"><img src="" alt="Loading" /></div>
<div class="clear"></div>
</form>
</div>
PHP:
<?php
$field_name = $_POST['c_name'];
$field_email = $_POST['c_email'];
$field_message = $_POST['c_message'];
$mail_to = 'myemail';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for the message. We will contact you shortly.');
window.location = 'mywebsiteurl';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('Message failed. Please, send an email to myemail');
window.location = 'mywebsiteurl';
</script>
<?php
}
?>
我感谢任何帮助,
谢谢。答案 0 :(得分:0)
首先,我没有进一步看,因为它会在这里抛出未定义的变量通知,因此你的表格不会起作用:
<input type="text" name="c_name" value="Name" ...
$field_name = $_POST['cf_name'];
看看名字。使用错误报告来检测此类错误。
答案 1 :(得分:0)
<form action="contact.php" id="mywebsite" method="post">
<div class="div_input"><input type="text" name="cf_name" value="Name" onfocus="if(this.value=='Name')this.value=''" onblur="if(this.value=='')this.value='Name';" /></div>
<div class="div_input"><input type="text" name="cf_email" value="E-mail" onfocus="if(this.value=='E-mail')this.value=''" onblur="if(this.value=='')this.value='E-mail';" /></div>
<div class="div_input"><input type="text" name="cf_tel" value="Telephone" onfocus="if(this.value=='Telephone')this.value=''" onblur="if(this.value=='')this.value='Telephone';" /></div>
<div class="div_textarea"><textarea name="cf_text" rows="1" cols="1" onfocus="if(this.value=='Text')this.value=''" onblur="if(this.value=='')this.value='Text';">Text</textarea></div>
<div class="div_btn"><input id="form_send" type="submit" name="cf_send" value="" /></div>
<div class="div_warnings"></div>
<div class="loading"><img src="" alt="Loading" /></div>
<div class="clear"></div>
</form>
</div>
访问目标文件的数据时,输入字段的名称应该相同。 表单操作用于获取表单数据和进程。因此,您应该在那里给出目标文件名!
抱歉我的英语!我希望这可以帮到你!
答案 2 :(得分:0)
也许这会有所帮助? (在现有的$标题行之后添加)
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";
$headers .= "Content-Transfer-Encoding:base64 \r\n";
$new_message_body= $base64contents = rtrim(chunk_split(base64_encode($body_message)));
mail($to, $subject, $new_message_body, $headers);
答案 3 :(得分:0)
发现问题。在我的HTML中,我应该有针对性的动作=&#34;&#34;到我的 php页面而不是我的网站。 谢谢你的帮助。