2016-09-28 43 views
-1

我用一個驗證器爲我的網站做了一個簡單的聯繫表單,所以用戶在提交聯繫表單之前應該輸入相應的輸入。提交後,用戶被定向到一個php頁面,即所有聯繫信息將被髮送到郵件。 不幸的是,用戶只需輸入PHP的url即可跳過所有需要的輸入。結果是一封空郵件。如何防止用戶通過編寫URL訪問聯繫人php頁面?

如何防止用戶通過在PHP URL中輸入來轉到(成功提交)PHP頁面?

+1

可以與用戶坐在他們喊,當他們試圖進入該網址。 –

+0

你應該重新考慮你的設計。使用ajax發佈請求。或者在後端驗證。我會說你應該爲你的目的指出一個目的。 – YakovL

回答

1

你可以只添加某種檢查你的PHP文件,發送電子郵件:

if(!isset($_POST["someinput"])) 
    exit; // don't continue if there is no input 

一個更合適的錯誤消息可能應該在生產環境中使用,雖然。

+1

也許只是重定向到表格 – RST

+1

如果你不需要事先知道哪些輸入表單包含,你可以用這個檢查:'if($ _ SERVER ['REQUEST_METHOD']!='POST'){exit; } else {/ * logic here * /}'但沒有安全,因爲有人可能通過Postman dumies值拋出。 –

+0

對於這一切,我都是一個小菜鳥,對不起。但我可以放置如果(!isset($ _ POST [「someinput」])) exit;任何地方的PHP文件? –

0

在你的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 
} 
+0

我如何將用戶重定向到聯繫頁面,代碼明智? –