PHP邮件 - 仅在有POST

时间:2015-04-23 10:13:35

标签: javascript php json angularjs email

我正在构建一个简单的移动应用程序,用户可以在其中填写表格,然后将其发送到我的电子邮件地址。我正在使用JSON,然后使用PHPPOST详细信息转发到我的电子邮箱。

我唯一的问题是,当您访问我的主机上的文件时,说www.example.com/forward.php,我的邮箱中收到空的电子邮件。

有没有办法只在POST时发送电子邮件?我能做些什么来使它更安全吗?我不知道什么时候涉及到PHP,我只是使用了PHP手册中的一个片段(Link

由于

5 个答案:

答案 0 :(得分:2)

//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数据之外 - 您应该检查所需的每个字段是否存在且是否有效。

答案 1 :(得分:1)

检查一下,

<?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');
}

?>

答案 2 :(得分:0)

您可以使用if (isset($_POST["some value that should be posted"]))

答案 3 :(得分:0)

尝试这样的事情:

<?php
    if( isset($_POST['submit']) ){
        $message = 'Message from your website:' . $_POST['message'];
        mail('to@example.com', '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
    }
?>

答案 4 :(得分:0)

通过检查$ _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");
}