2016-09-28 124 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

我如何将用户重定向到联系页面,代码明智? –