我正在構建一個簡單的移動應用程序,用戶可以填寫表單,然後將其發送到我的電子郵件地址。我使用JSON
,然後使用PHP
將POST
的詳細信息轉發給我的電子郵件。PHP郵件 - 僅在發生郵政時才發送
我唯一的問題是,當你訪問我的主機上的文件,說www.example.com/forward.php
,我收到我的郵箱中的空電子郵件。
有沒有辦法只發送電子郵件時有POST
?有什麼我可以做,使其更安全?我不知道,當涉及到PHP,我只是用一個片段從PHP手冊(Link)
感謝
我正在構建一個簡單的移動應用程序,用戶可以填寫表單,然後將其發送到我的電子郵件地址。我使用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