某些网站(例如Yahoo和Google)使用Ajax检查用户名/密码是否有误。显然必须有服务器端身份验证,因为任何人都可以更改本地JavaScript并欺骗它认为用户名/密码是正确的。我想知道如何有效地完成这项工作,因为服务器不会两次检查相同的用户名/密码?请考虑以下用户登录网站的情况:
<form>
并且间歇页面通过POST
获取输入的值并在服务器端再次处理它们以验证用户名/密码是否正确以及是否设置了变量会议在步骤5中,服务器第二次检查相同的用户名/密码是否正确,如步骤3中所示。有没有办法缓存步骤3中的结果或使流程更有效?此外,服务器已在步骤3中发送了用户名/密码。但我不确定这是否会加速该过程。
我正在使用MySQL数据库来存储用户名和密码。
答案 0 :(得分:2)
在第3步,您的onsubmit
处理程序会将您的AJAX请求发送到服务器以验证凭据 和 阻止正常表单提交(通过调用{{1在处理程序中或从处理程序返回false),因此第5步永远不会发生。
如果禁用了javascript,那么您将没有onsubmit处理程序,而是会发生正常的表单提交。
在您的步骤4中,如果您收到“正确”的响应,那么您的AJAX处理程序可以重定向到新页面;如果这是一个“不正确”的回复,你会留在登录页面上,清除表格,并提出你的错误信息。
答案 1 :(得分:1)
在第3点,JS应该将表单提交给服务器端处理并等待响应。如果JS被禁用,那么表单只会正常提交。
答案 2 :(得分:1)
正如我的评论所说,不确定我完全同意你的过程,这就是我想象的方式
OR 如果您不想使用ajax