联系表格不能使用PHP和HTML?

时间:2013-08-31 10:11:45

标签: php html forms contact

我遇到此联系表单的问题我无法让这个工作请帮忙吗? 我在我的本地主机和网络托管上尝试过它似乎没什么用。

send.php

<?php
header('content-type: application/json; charset=utf-8');

if (isset($_GET["mrova-name"])) {
$name = strip_tags($_GET['mrova-name']);
$email = strip_tags($_GET['mrova-email']);
$message = strip_tags($_GET['mrova-message']);
$header = "From: ". $name . " <" . $email . ">rn"; 

$ip = $_SERVER['REMOTE_ADDR'];
$httpref = $_SERVER['HTTP_REFERER'];
$httpagent = $_SERVER['HTTP_USER_AGENT'];
$today = date("F j, Y, g:i a");    

$recipient = 'myemail@gmail.com';
$subject = 'Advertising';
$mailbody = "
First Name: $name
Email: $email
Message: $message

IP: $ip
Browser info: $httpagent
Referral: $httpref
Sent: $today
";
$result = 'success';

if (mail($recipient, $subject, $mailbody, $header)) {
    echo json_encode($result);
}
}
?>

我已经使用了'post'这个方法,但它无法正常运行

接触form.html

<div id="mrova-feedback">

    <div id="mrova-contact-thankyou" style="display: none;">
        Thank you.  We'hv received your feedback.
    </div>
    <div id="mrova-form">
        <form id="mrova-contactform" action="css/send.php" method="post">
            <ul >

                <li>
                    <center><h2 class="mrova-contactform-head">Quick Contact</h2></center>
                    <label for="mrova-name">Your Name<font color="red">*</font></label> <input type="text" name="mrova-name" class="required" id="mrova-name" value="">
                </li>
                <li>
                    <label for="mrova-email">Email<font color="red">*</font></label> <input type="text" name="mrova-email" class="required" id="mrova-email" value="">
                </li>
                <li>
                    <label for="mrova-message">Message<font color="red">*</font></label>
                    <textarea class="required" id="mrova-message" name="mrova-message"  rows="8" cols="30"></textarea>
                </li>
            </ul>
            <input type="submit" style="button" value="Send" id="mrova-sendbutton" name="mrova-sendbutton">
        </form>
    </div>
    <div id="mrova-img-control"></div>
</div>

4 个答案:

答案 0 :(得分:4)

您正在发送HTML表单作为post请求,但在php中读取$_GET变量。

你必须决定一种方法。可以切换到HTML表单,也可以将所有$_GET变量更改为$_POST

有关差异的详细信息,请查看here

答案 1 :(得分:0)

您通过 POST 发送..如何使用 GET 访问它。 将所有$_GET[""]更改为$_POST[""]。 或者将表单方法从 POST 更改为 GET 。第一个会更好。

$_GET适用于所有 GET 请求。而$_POST用于 POST 请求。 这取决于表单方法,如何发送数据。

答案 2 :(得分:0)

从您的表单中,您似乎正在使用$ _POST。

<form id="mrova-contactform" action="css/send.php" method="post">

在PHP代码中,您需要使用$ _POST。

For example, $_POST["mrova-name"];

答案 3 :(得分:0)

使用此行不会发送到电子邮件中的适当区域

$header = "From: ". $name . " <" . $email . ">rn";

需要更改为:

$header = "From: ". $name . " $email " . "\r\n"; 

rn需要与\$email分开,而不需要< >

其中重写为:(使用 POST 而不是 GET ,如发布的代码中所述)

if (isset($_POST["mrova-name"])) {
$name = strip_tags($_POST['mrova-name']);
$email = strip_tags($_POST['mrova-email']);
$message = strip_tags($_POST['mrova-message']);
$header = "From: ". $name . " $email " . "\r\n"; 
  

重写(测试)

<?php
header('content-type: application/json; charset=utf-8');

if (isset($_POST["mrova-name"])) {
$name = strip_tags($_POST['mrova-name']);
$email = strip_tags($_POST['mrova-email']);
$message = strip_tags($_POST['mrova-message']);
$header = "From: ". $name . " $email " . "\r\n"; 

$ip = $_SERVER['REMOTE_ADDR'];
$httpref = $_SERVER['HTTP_REFERER'];
$httpagent = $_SERVER['HTTP_USER_AGENT'];
$today = date("F j, Y, g:i a");    

$recipient = 'myemail@gmail.com';
$subject = 'Advertising';
$mailbody = "
First Name: $name
Email: $email
Message: $message

IP: $ip
Browser info: $httpagent
Referral: $httpref
Sent: $today
";
$result = 'success';

if (mail($recipient, $subject, $mailbody, $header)) {
    echo json_encode($result);
}
}
?>