获取PHP联系表单

时间:2014-06-05 06:43:23

标签: php

我对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
}
?>

我感谢任何帮助,

谢谢。

4 个答案:

答案 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页面而不是我的网站。 谢谢你的帮助。