我目前正在开发一个网站,遇到以下问题:
我尝试将用户 ID 和密码传递到登录页面,并使用脚本自动提交页面,这会将用户带到下一页。这只是为了绕过我网站中的登录页面。这工作得很好。
在 Mozilla Firefox 浏览器上启用“无脚本”插件时,自动提交表单的脚本不起作用。结果,登录页面将显示给用户,其中包含填写的用户 ID 和密码。
另外,有时当我们自动提交登录页面时,用户也能够在前端看到登录页面。
有没有可能的方法来克服这两个问题?
最佳答案
像您现在所做的那样重定向用户的浏览器实际上只能在客户端使用Javascript,而Javascript总是可以被阻止。您可以将 user_id 和密码存储在 session 变量中,并在登录页面上访问该数据,该登录页面处理实际的身份验证。这样做将消除自动提交表单的需要。
但是如果您确实想使用表单发布,您可以使用 cURL 通过 PHP 模拟表单发布,但这有点复杂。
Sending post form data with PHP and cURL
在我的网站上,如果用户未登录,我会在每个页面加载时运行“tryCookieAuthentication”方法,检查是否设置了“记住我”cookie。如果已设置并且一切看起来合法,我将继续对用户进行身份验证并让他登录。这样用户甚至不必触摸登录页面。我不知道这是否是您想要做的,但它可能会给您一个想法。
关于javascript - 如何使用 PHP 自动提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4769580/