我正在创建一个连接到我们内部订单数据库的在线界面,其想法是最终客户将能够查看我们系统中的订单等。
我已经设置并运行了一个基本的界面,即我可以通过在我们的订单数据库中引用来搜索订单,并将它们返回到表格等中。基础知识就在那里,但我无法理解我的意图限制每个用户的此项,因此用户 A 无法搜索用户 B 下的订单。
我将用非常简单的形式解释我们的数据库:
我们有一个 orders
表,其中包含 order_number
、creation_date
、customer_number
等内容。
我现在应该创建一个 online_users
表,并将每个用户链接到 orders
表中相应的 customer_number
,还是存在 < i>更好的方法来做到这一点?我是否应该将列 online_user
和 online_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/