2015-04-23 118 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"); 
}