【发布时间】:2023-03-22 18:44:01
【问题描述】:
我遵循了一些有关日志记录表单的在线教程,但在我看来它们太简单了。我的意思是他们总是将用户名和密码发送到同一个 PHP 页面,该页面同时进行身份验证和显示结果。
我只是想知道是否可以将前端和后端的逻辑分开。前端只负责发送和接收请求,后端负责数据库连接和认证。后端应该将结果发送回前端,前端相应地显示它们。
我不得不承认我是网络开发的新手,我真的不知道这是否是正确的方向,因此寻求您的专业帮助。
下面是我的设计,
前端有一个按钮,调用javascript函数发送和接收请求。
<button type="button" onclick="javascript:queryLogin()">
Javascript 函数准备发布请求和接收响应。
function queryLogin() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
var xmlhttp = new XMLHttpRequest();
var parameters = "username="+username+"&"+"password="+password;
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
statusLogin(xmlhttp.responseText);
}
}
xmlhttp.open(/*method=*/"POST", /*url=*/"login_back.php", /*async=*/true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(parameters);
}
function statusLogin(response) {
var arr = JSON.parse(response);
switch(arr.result) {
case 0: document.getElementById("message").innerHTML="";
break;
default: document.getElementById("message").innerHTML="";
/* TODO: How to destroy session? */
break;
}
}
所以基本上我陷入了这种情况:如果身份验证失败,前端应该销毁会话,但现在逻辑在 javascript 中,很难销毁 php 会话。
请告知该怎么做。提前致谢。
【问题讨论】:
-
认为分离前端和后端可以做的最重要的事情就是使用框架。几乎所有框架都抽象了请求和响应,从而更容易分离前端和后端关注点。
-
两个小建议,使用 JS 框架完成基本任务。 JQuery 是一个非常简单的库,尤其适用于 AJAX 请求。在后端保留任何敏感逻辑,这意味着您的会话管理。 login_back.php 应该进行登录并相应地管理会话。然后它应该只返回操作的状态。
-
虽然传统上我同意使用框架,但我认为在第一次学习绳索时避免使用框架实际上很重要。对许多人来说,从未学习过如何实际使用他们选择的语言,而只是学习如何使用某些框架。但是,当需要构建真正的东西时,是的,一定要为此使用框架。
标签: javascript php session