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

时间:2012-08-01 08:36:34

标签: php jquery

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

我们有4个级别的系统访问权限,因此应用程序需要从用户会话中读取这些访问权限。我的合作伙伴做了后端数据库编程,我负责前端接口​​。我花了6个月的时间用纯Jquery编写小工具,所以我成了它的忠实粉丝,发现我可以用它快速地做事。对于界面工作,我喜欢它。但是,会话管理只能在PHP afaik中完成。

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

如果我必须处理会话,我认为我不会那样做。或者我可以吗?我有兴趣听取您的专业人士的意见,了解您认为与此相关的最佳实践。

非常感谢提前。

3 个答案:

答案 0 :(得分:0)

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

我建议Yii framework

答案 1 :(得分:0)

我个人不会让JavaScript知道任何会话。在创建页面时,在PHP中完成权限控制;您可以选择基于访问控制隐藏页面的某些部分。这样,界面根本不必担心权限,它可以与当前页面上的内容一起使用。

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

如果您必须支持不支持(或者更确切地说,拒绝)Cookie并且您想要使用AJAX的浏览器,则需要找到其他方法,例如:让PHP生成一段JavaScript,它将初始化会话ID,以便脚本可以在执行AJAX调用时通过POST,GET或特殊HTTP头传递它。

答案 2 :(得分:0)

如果通过会话管理你的意思是访问控制,那么只要你通过AJAX调用获得所需的信息等(实际上没有看到任何其他方式......),那么服务器 - 应该能够处理访问和罚款。如果您在服务器端使用公共状态代码(400,401,403等),那么您可以确保jQuery以良好的方式处理这些代码并且事情应该很容易。

  • 给我我允许看的门票。对不起,您需要登录,401。
  • 我现在登录了。好的,这是您可以使用的门票清单。
  • 我想看看票号56.抱歉,你不能看到它,403。
  • 我想将此评论添加到第42号门票。很抱歉,您在输入中遗漏了一些内容,400。

请记住,在服务器端,总是在适当的地方检查访问权限。如果用户应该具有访问权限,请不要假设用户具有访问权限。检查一下:)

无论如何,这取决于会话管理的含义,所以我可以离开这里......