2015-04-23 45 views
0

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

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

有没有办法只发送电子邮件时有POST?有什么我可以做,使其更安全?我不知道,当涉及到PHP,我只是用一个片段从PHP手册(Link

感谢

回答

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

?> 
+0

是否可以列出所需的多个值?如下面? if(isSet($ _ POST ['name','surname','email'])) – user1809790

+0

是的,请等待我的回答,我会在其他部分更新 –

+0

,是否可以重定向用户到主网站,说www.example.com而不是显示一条消息? – user1809790

0

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

+2

虽然这可能会回答这个问题,但在回答中放置一些文字以解释您正在做的事情总是一个好主意。阅读[如何写出一个好答案](http://stackoverflow.com/help/how-to-answer)。 – jurgemaister

0

尝试这样:

<?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 
    } 
?> 
+0

此代码不起作用。 – Matheno

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数据之外 - 你应该检查你需要的每个字段是否在有效的形式。

+0

假设我有姓名,电子邮件和日期。我怎么能够知道他们是否在PHP中有效的形式?我明智地做了一些验证JS,但是如何在PHP中检查呢? – user1809790

+1

有多种方式,但filter_var跳转到头脑中。 http://php.net/manual/en/filter.examples.validation.php – Spode

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"); 
}