我用一個驗證器爲我的網站做了一個簡單的聯繫表單,所以用戶在提交聯繫表單之前應該輸入相應的輸入。提交後,用戶被定向到一個php頁面,即所有聯繫信息將被髮送到郵件。 不幸的是,用戶只需輸入PHP的url即可跳過所有需要的輸入。結果是一封空郵件。如何防止用戶通過編寫URL訪問聯繫人php頁面?
如何防止用戶通過在PHP URL中輸入來轉到(成功提交)PHP頁面?
我用一個驗證器爲我的網站做了一個簡單的聯繫表單,所以用戶在提交聯繫表單之前應該輸入相應的輸入。提交後,用戶被定向到一個php頁面,即所有聯繫信息將被髮送到郵件。 不幸的是,用戶只需輸入PHP的url即可跳過所有需要的輸入。結果是一封空郵件。如何防止用戶通過編寫URL訪問聯繫人php頁面?
如何防止用戶通過在PHP URL中輸入來轉到(成功提交)PHP頁面?
你可以只添加某種檢查你的PHP文件,發送電子郵件:
if(!isset($_POST["someinput"]))
exit; // don't continue if there is no input
一個更合適的錯誤消息可能應該在生產環境中使用,雖然。
也許只是重定向到表格 – RST
如果你不需要事先知道哪些輸入表單包含,你可以用這個檢查:'if($ _ SERVER ['REQUEST_METHOD']!='POST'){exit; } else {/ * logic here * /}'但沒有安全,因爲有人可能通過Postman dumies值拋出。 –
對於這一切,我都是一個小菜鳥,對不起。但我可以放置如果(!isset($ _ POST [「someinput」])) exit;任何地方的PHP文件? –
在你的php頁面檢查是否得到所有的發佈數據或不。如果你得到所有的發佈數據,那麼只發送電子郵件,否則重定向用戶聯繫頁面。
這裏的邏輯:
if(!isset($_POST['Name']) && !empty($_POST['Name'])
!isset($_POST['Address']) && !empty($_POST['Address'])
)
{
header("Location: http://www.yourwebsite.com/contactus.php"); /* Redirect browser */
exit();
}
else
{
//send email
}
我如何將用戶重定向到聯繫頁面,代碼明智? –
可以與用戶坐在他們喊,當他們試圖進入該網址。 –
你應該重新考慮你的設計。使用ajax發佈請求。或者在後端驗證。我會說你應該爲你的目的指出一個目的。 – YakovL