我遇到此联系表单的问题我无法让这个工作请帮忙吗? 我在我的本地主机和网络托管上尝试过它似乎没什么用。
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>
答案 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);
}
}
?>