php-网站如何在不重新加载页面的情况下检查登录凭据?

某些网站(例如YahooGoogle)使用Ajax来检查用户名/密码是否错误.显然,必须进行服务器端身份验证,因为任何人都可以更改本地JavaScript,并诱使它认为用户名/密码正确.我想知道如何有效地完成此操作,因为服务器不会两次检查相同的用户名/密码吗?请考虑以下情形,其中用户登录到网站:

>用户进入登录页面
>用户输入用户名/密码,然后单击提交
>如果输入的用户名/密码正确,则服务器通过Ajax与客户端进行通信
>服务器回复用户名/密码是否正确-在这个例子中是
>< form>提交,并且一个间歇页面通过POST接收输入的值,并在服务器端再次对其进行处理,以验证用户名/密码是否正确以及是否在会话中设置了变量

在步骤5中,服务器第二次检查与步骤3中相同的用户名/密码是否正确.是否可以缓存步骤3的结果或使过程更高效?此外,在步骤3中,已经向服务器发送了用户名/密码,但是我不确定是否可以加快此过程.

我正在使用MysqL数据库存储用户名和密码.

解决方法:

在第3步中,您的onsubmit处理程序会将您的AJAX请求发送到服务器,以验证凭据并阻止常规表单提交(通过在处理程序中调用.preventDefault()或从处理程序返回false),因此第5步将永远不会发生.
如果禁用了javascript,则您将没有onsubmit处理程序,而是将进行常规表单提交.

在第4步中,如果收到“正确”响应,则您的AJAX处理程序可以重定向到新页面;如果响应是“不正确的”,则您将停留在登录页面上,清除表单,然后显示错误消息.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...