结合PHP和Jquery的最佳实践是什么


What are best practices for combining PHP and Jquery?

我正在为一家可能拥有1000-2000名用户的相当大的公司构建一个MySQL/PHP票务系统应用程序。这是我的第一个真正的企业应用程序,所以我真的想确保我能根据最佳实践正确地做事。我不是你所说的经验丰富的开发人员。我知道如何编写代码并使其发挥作用,但我从来没有导师或任何人来纠正我的工作,所以我不知道我做事的方式是好是坏。。。甚至屁股向后倒。

我们对系统有4个访问级别,因此应用程序需要从用户会话中读取这些级别。我的合作伙伴做了后端数据库编程,我负责前端接口。在过去的6个月里,我一直在使用纯Jquery编写小型工具,因此我成为了它的忠实粉丝,并发现我可以用它快速完成任务。对于接口工作,我喜欢它。然而,会话管理只能用PHP afaik完成。

这不是一个必要的问题,因为我可以在同一个页面上包含JS和PHP的部分,但如果没有必要的话,我不喜欢这样做。例如,我的登录页面只是JS/HTML,它向PHP登录web服务发出ajax请求。每当我可以将处理任务委托给PHP时,我更喜欢编写一个可以在AJAX调用中使用的服务。

然而,如果我必须处理会议,我认为我无法做到这一点。或者我可以吗?我很想听听你们专业人士的意见,你们认为与此相关的最佳实践是什么。

非常感谢。

对于初学者,您应该了解一些PHP框架,并检查它们如何处理JS。

我推荐Yii框架。

就我个人而言,我不会让JavaScript知道任何会话。权限控制是在创建页面时用PHP完成的;您可以根据访问控制选择隐藏页面的某些部分。这样一来,界面就不必为权限而烦恼,它可以与页面上当前的内容一起工作。

PHP通常使用cookie来传播会话(我建议使用HttpOnly选项);这些是JavaScript在AJAX调用中透明地使用的,所以您的会话应该按预期工作。

如果你必须支持不支持(或者更确切地说,拒绝)cookie的浏览器,并且你想使用AJAX,你需要找到其他方法,例如,让PHP生成一段JavaScript来初始化会话id,这样当你调用AJAX时,脚本可以通过POST、GET或特殊的HTTP头传递它。

如果会话管理指的是访问控制,那么只要你通过AJAX调用等获得了所需的信息(不要真的看到任何其他方式…),那么服务器端应该能够处理访问等等。如果您在服务器端使用常见的状态代码(400401403等),那么您可以确保jQuery以良好的方式处理这些代码,并且事情应该很容易。

  • 把允许我看的票给我。对不起,您需要登录,401
  • 我现在登录了。好的,这是你可以买到的票的清单
  • 我想看看56号票。对不起,你不允许看到,403
  • 我想把这个评论加到42号票上。抱歉,您的输入中遗漏了一些内容,400

只需记住,在服务器端,始终在适当的地方检查访问。如果用户应该有访问权限,就不要认为用户有访问权限。检查:)

无论如何,这取决于你所说的会话管理是什么意思,所以我可能离这里很远。。。