我正在构建一个简单的移动应用程序,用户可以在其中填写表格,然后将其发送到我的电子邮件地址。我正在使用JSON
,然后使用PHP
将POST
详细信息转发到我的电子邮箱。
我唯一的问题是,当您访问我的主机上的文件时,说www.example.com/forward.php
,我的邮箱中收到空的电子邮件。
有没有办法只在POST
时发送电子邮件?我能做些什么来使它更安全吗?我不知道什么时候涉及到PHP,我只是使用了PHP手册中的一个片段(Link)
由于
答案 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");
}