1

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

这是我的设计:

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

json.php - 它将根据查询字符串数据创建一个单例核心 obj 并以 json 格式返回结果。IE。

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中,我要检查session,如果失败,会抛出die()方法。

那么我的设计结构好吗?有什么安全问题吗?

4

4 回答 4

3

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

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

本教程完全侧重于服务器端结构,因此不涉及任何 AJAX 或 jQuery 概念。然而,Symfony 组件使基于 AJAX 的调用的实现变得轻而易举。

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

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

祝你好运!

于 2013-08-05T21:23:29.730 回答
3

以下是一些提示:

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

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

于 2013-08-01T19:44:29.867 回答
1

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

于 2013-08-04T07:40:26.513 回答
0

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

祝你好运!

于 2013-08-08T02:46:46.480 回答