我有一个使用PHP提交的基本联系表单。提交时,我会收到一封电子邮件,但不会显示输入到该字段中的信息。然而,该信息被发送。它显示在浏览器的地址栏中,例如
../contact.phpurl=antispam&name=dfsaa&number=fdfd&email=fdsafds%40fds.com&message=Please+contact+me+regarding+this
前面:
<form action="contact.php">
<input class="form-control" id="name" name="name" placeholder="Name" type="text" required>
<input class="form-control" id="number" name="number" placeholder="Contact Number" type="text" required>
<input class="form-control" id="email" name="email" placeholder="Email" type="email" required>
<textarea class="form-control" id="message" name="message" placeholder="Message" rows="5">Please contact me regarding this...</textarea><br>
<button class="btn btn-default pull-right" type="submit">Send</button>
</form>
PHP:
<?php
$name = @trim(stripslashes($_POST["name"]));
$email = @trim(stripslashes($_POST["email"]));
$number = @trim(stripslashes($_POST["number"]));
$message = @trim(stripslashes($_POST["message"]));
$email_from = $email;
$email_to = "sarah@blockcpm.com";
$body = "Name: " . $name . "\n\n" . "Email: " . $email . "\n\n" . "Number: " . $number . "\n\n" . "\n\n" . "Message: " . $message;
$success = @mail($email_to, $body, "Name: " . $name . "\n\n" . "Email: " . $email . "\n\n" . "Number: " . $number . "\n\n" . "Message: " . $message);
?>
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<script>
alert("Thank you for contacting us. A member of our team will be in touch as soon as possible.");
</script>
<meta HTTP-EQUIV="REFRESH" content="0; url= index.html">
</head>
联系表格可以在另一个网站上完美运行......这个在godaddy网站上我没有创建,我只是在修改。
我收到的电子邮件包含所有字段标题,但没有输入信息。
任何想法为什么?
答案 0 :(得分:1)
您的表单默认为GET类型,而不是POST,因为您要在PHP中签入,因此数据可通过$_GET
而不是$_POST
全局PHP变量显示。
由于您需要POST,请修改表单结构
<form action="contact.php">
应该是
<form action="contact.php" type="post">
在PHP中,首先检查请求方法是否为POST
<?php
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
//Get data and send email
$name = trim($_POST['....']);
...
}
答案 1 :(得分:1)
您尚未设置表单的 @Override
public boolean onQueryTextSubmit(String query) {
mAdapter.getFilter().filter(query);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
mAdapter.getFilter().filter(newText);
return true;
}
,因此默认为发出GET请求。
您可以在网址中看到的数据将用于填充method
。
您需要在$_GET
元素上设置method="POST"
以发出POST请求,从而将数据放入请求正文中,并显示在<form>
中。