PHP邮件 - 仅在发生邮政时才发送
我正在构建一个简单的移动应用程序,用户可以填写表单,然后将其发送到我的电子邮件地址。我使用JSON
,然后使用PHP
将POST
的详细信息转发给我的电子邮件。PHP邮件 - 仅在发生邮政时才发送
我唯一的问题是,当你访问我的主机上的文件,说www.example.com/forward.php
,我收到我的邮箱中的空电子邮件。
有没有办法只发送电子邮件时有POST
?有什么我可以做,使其更安全?我不知道,当涉及到PHP,我只是用一个片段从PHP手册(Link)
感谢
检查这一点,
<?php
if(isSet($_POST['submit']))
{
$name = $_POST['name'];
$email = $_POST['password'];
$password = $_POST['email'];
if($name !="" && $email !="" && $password !="")
{
// Send mail ;
}
else
{
echo "All fields are mandatory";
}
}
else
{
//echo "You can not access this URL directly";
header('location:http://www.example.com');
}
?>
您可以使用if (isset($_POST["some value that should be posted"]))
这一点。
虽然这可能会回答这个问题,但在回答中放置一些文字以解释您正在做的事情总是一个好主意。阅读[如何写出一个好答案](http://stackoverflow.com/help/how-to-answer)。 – jurgemaister
尝试这样:
<?php
if(isset($_POST['submit'])){
$message = 'Message from your website:' . $_POST['message'];
mail('[email protected]', 'Subject', $message);
echo 'Thanks for your message!';
} else {
?>
<form action="" method="POST">
<!-- your form fields here -->
<textarea name="message"></textarea>
<input type="submit" name="submit" value="Submit" />
</form>
<?php
}
?>
此代码不起作用。 – Matheno
//If this page has no POST data, then don't go any further
if (!$_POST) {
//Die with a "bad request" header
http_response_code(400);
die();
}
值得补充说,这种脚本被垃圾邮件机器人滥用的时候,尤其是通过重播POST数据。如果正在部署,您可能需要考虑一些额外的安全性。对于初学者来说,除了检查POST数据之外 - 你应该检查你需要的每个字段是否在有效的形式。
假设我有姓名,电子邮件和日期。我怎么能够知道他们是否在PHP中有效的形式?我明智地做了一些验证JS,但是如何在PHP中检查呢? – user1809790
有多种方式,但filter_var跳转到头脑中。 http://php.net/manual/en/filter.examples.validation.php – Spode
通过检查是否设置了$ _POST变量,可以很好地实现这一点。所以如果有人试图从其他方法访问文件,它会给他们一条消息或重定向他们。
<?php
if(isset($_POST['name']) AND isset($_POST['surname']) AND isset($_POST['email'])){
// Send your email ;
}
else{
//redirect
header("Location: http://www.example.com");
}
是否可以列出所需的多个值?如下面? if(isSet($ _ POST ['name','surname','email'])) – user1809790
是的,请等待我的回答,我会在其他部分更新 –
,是否可以重定向用户到主网站,说www.example.com而不是显示一条消息? – user1809790