我用一个验证器为我的网站做了一个简单的联系表单,所以用户在提交联系表单之前应该输入相应的输入。提交后,用户被定向到一个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