php - 限制用户在访问 MySQL 的 PHP 应用程序中检索信息的正确方法是什么?

标签 php mysql sql

我正在创建一个连接到我们内部订单数据库的在线界面,其想法是最终客户将能够查看我们系统中的订单等。

我已经设置并运行了一个基本的界面,即我可以通过在我们的订单数据库中引用来搜索订单,并将它们返回到表格等中。基础知识就在那里,但我无法理解我的意图限制每个用户的此项,因此用户 A 无法搜索用户 B 下的订单。

我将用非常简单的形式解释我们的数据库:

我们有一个 orders 表,其中包含 order_numbercreation_datecustomer_number 等内容。

我现在应该创建一个 online_users 表,并将每个用户链接到 orders 表中相应的 customer_number,还是存在 < i>更好的方法来做到这一点?我是否应该将列 online_useronline_pass 添加到我们的 customers 表中,并且只允许每个客户帐户使用单个用户和密码?

然后我们进行实际的在线登录,我可以创建一个表单来连接和识别用户并允许他们登录,这部分没问题,但是我如何以某种方式存储他们在登录期间来自的客户帐户,以及稍后我如何在 SQL 查询中使用它?我想我可以只添加一个 cookie,其中包含登录期间返回的任何客户帐户,但这肯定不安全,用户可以将其编辑到另一个客户帐户。

编辑:我在这里问的是如何将 SQL 结果限制为仅与用户关联的公司?

$q = "SELECT * 
      FROM orders
      WHERE customer_number = SOMETHING";

SOMETHING 需要是用户链接到的客户编号,这可以在登录阶段返回,但如何存储它以便在 SQL 查询中使用?

最佳答案

您确实可以创建一个表来保存通过 customer_number 链接的客户数据。

编辑:并可以选择创建一个权限表,您可以在其中将某些用户分配给某些组。

对于登录信息的使用,您可以使用 session 。

查看这些链接:

http://be2.php.net/manual/en/function.session-start.php

http://be2.php.net/manual/en/reserved.variables.session.php

希望对你有帮助。

关于php - 限制用户在访问 MySQL 的 PHP 应用程序中检索信息的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22632507/

相关文章:

sql - 根据另一个表中的相关列更新记录

sql - 如何在不获取重复列名的情况下选择 SQL 连接中的所有字段?

sql - 如何编写一个包含多个参数的存储过程查询?

php - 如何从 DOM 中选择一个tinyMCE WYSIWYG?

mysql - 以编程方式监控 MySQL? SNMP?

php - edit_subject.php 无法正常工作,错误提示数据库查询失败

mysql - SQL 将两个表中的值相乘并打印语句?

sql - 使用 mysql 5.1.41 更新表中最高的几行

php - Mysql 限制选择不共享列的行

php - 解析csv文件php