json、ajax、php和mySQL的设计结构


design structure of json, ajax, php and mySQL

我有一个新项目即将到来,我想使用ajax来获得mysql结果(json格式),这样我就可以使用jQuery ajax来正确显示它。由于我对json、ajax、jquery非常陌生,请告诉我我的设计结构是否正常,是否存在任何安全问题。

这是我的设计:

Core.class.php-它将使用PDO对象连接到mySQL数据库,并进行一些查询并返回结果

json.php-它将创建一个singleton核心obj,并根据querystring数据以json格式返回结果。即

if ($_GET['get_type'] == 'employeeinfo')
{
    return get_all_employee_info(); // and in this function I'll use the core to do query and echo all employee data in json format
}
else if ($_GET['get_type'] == 'companyinfo')
{
    return get_all_company_info(); // and in this function I'll use the core to do query and echo all company data in json format
}

index.php-它将使用:

$.ajax ( {
    url: 'json.php',
    data: //getdata type,
    success: function(results) { //use results to populate data and display on this page }
});

以加载数据并以结果HTML格式显示。

此外,用户必须首先登录才能加载index.php,一旦成功登录,就会创建会话

因此,在index.php和json.php中,我将检查会话,如果失败,将抛出die()方法。

那么我的设计结构可以吗?有安全问题吗?

以下是一些提示:

  1. 不要直接使用json返回数据库对象,因为这可能会暴露数据库结构。在返回数据之前简化您的数据(不要返回超过您需要的数据)

  2. 使用JS模板引擎来呈现数据。一些示例:https://github.com/justjohn/twig.js/wikihttp://twitter.github.io/hogan.js/

查看本教程,了解如何创建自己的简单框架。在为我的一个项目创建基本结构时,我发现它非常有用。每一步都有详细的解释,所以(至少在我看来)对于PHP新手来说很容易理解。

它解释了如何为您的项目创建一个基本结构,该结构为您的应用程序提供了一个单一的入口点。这意味着您在浏览器中调用的每个URL最初都将启动相同的php文件。根据URL,将启动不同的PHP类(控制器)并呈现所需的内容。这有很多优点,例如,您只需要检查一次用户登录

本教程完全专注于服务器端结构,因此不涉及任何AJAX或jQuery概念。然而,Symfony组件使得基于AJAX的调用的实现成为小菜一碟。

如果你的项目不是很大,我建议你尝试RedBean来连接和操作数据库。它使检索、存储和创建新的数据库表或条目变得非常容易。

如果你感兴趣,我可以给你一些关于如何实现用户和会话管理的提示。

祝你好运!

我不确定你的项目有多大,你愿意在这方面付出多少努力。但如果你的项目足够大,你会想看看像Zend这样的JSON服务器。它可以帮助您更可靠地构建项目。使用它非常简单,你可以在网上找到几个例子。

使用现有的框架。在编写自己的框架之前,最好先学习两三个框架。http://davss.com/tech/php-rest-api-frameworks/为您提供了一个rest框架的示例,其中许多框架非常轻量级,但会为您提供路由、自动加载、关注点分离策略等等。如上所述,将数据映射到一个有意义的数据结构中,而不仅仅是公开数据库结构。这将给你更多的控制和灵活性。可以是一个简单的数组或类,您可以将数据库对象映射到它上,然后映射到json。一个好而简单的框架将指导你完成并实施良好的实践。

祝你好运!