-1

我在使用此联系表时遇到问题,我无法使其正常工作,请帮忙?我已经在本地主机和虚拟主机上尝试过,但似乎没有任何效果。

发送.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);
}
}
?>

我使用了“发布”方法,但它从来没有用过

联系表格.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

4 回答 4

4

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

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

有关差异的更多信息,请查看此处

于 2013-08-31T10:16:26.350 回答
0

使用此行将不会发送到电子邮件中的正确区域

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

需要改为:

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

rn需要将 with\和 the $emailwithout the分开< >

重写为:(使用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);
}
}
?>
于 2013-08-31T13:32:24.083 回答
0

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

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

于 2013-08-31T10:17:03.820 回答
0

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

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

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

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

于 2013-08-31T10:19:34.873 回答