不同类型的用户重定向到具有不同内容的同一页面(index.php)

JS平托

我根据EMAIL和PASSWORD制作了一个PHP类来登录用户。我希望他们在登录时转至同一页面(index.php),但显示不同的内容。我看到了其他ACL问题,但其中大多数是关于用户升级以及不同的组角色的问题。在这里,角色是静态的。

我有3个SQL表:

CREATE TABLE `USERS` (
  `userID` int(10) NOT NULL PK AUTOINCREMENT,
  `groupID` int(10) NOT NULL,
  `EMAIL` varchar(99) NOT NULL,
  `PASSWORD` text NOT NULL,
  `regDate` date NOT NULL
)

CREATE TABLE `SUPPORT` (
  `ID` int(10) NOT NULL PK AUTOINCREMENT,
  `ENGINEERNUMBER` int(10) NOT NULL,
  `EMAIL` varchar(99) NOT NULL,
  `PASSWORD` text NOT NULL,
  `NAME` varchar(99) NOT NULL,
  `OFFICE` varchar(99) NOT NULL
)

CREATE TABLE `CUSTOMER` (
  `ID` int(10) NOT NULL PK AUTOINCREMENT,
  `CITIZENID` int(10) NOT NULL,
  `EMAIL` varchar(99) NOT NULL,
  `PASSWORD` text NOT NULL,
  `NAME` varchar(99) NOT NULL,
  `CITY` varchar(99) NOT NULL,
  `ADDRESS`varchar(99)
)


ALTER TABLE `USERS`
  ADD CONSTRAINT `USERS_ibfk_1` FOREIGN KEY (`EMAIL`) REFERENCES `SUPPORT` (`EMAIL`),
  ADD CONSTRAINT `USERS_ibfk_2` FOREIGN KEY (`EMAIL`) REFERENCES `CUSTOMER` (`EMAIL`),

**我的数据库架构好吗?我是否应该有一个基于用户角色的带有if语句的PHP文件,并使用if语句将HTML填充到index.php中?

在此先感谢您,谢谢您发表冗长的文章。**

更新

CREATE TABLE `USERS` (
  `ID` int(10) NOT NULL PK AUTOINCREMENT,
  `NAME` varchar(99) NOT NULL,
  `EMAIL` varchar(99) NOT NULL,
  `PASSWORD` text NOT NULL,
)

CREATE TABLE `TYPES` (
  `ID` int(10) NOT NULL PK AUTOINCREMENT,
  `NAME` int(10) NOT NULL,
)

CREATE TABLE `SUPPORT` (
  `ID` int(10) NOT NULL PK AUTOINCREMENT,
  `USERID` int(10) NOT NULL ,
  `ENGINEERNUMBER` int(10) NOT NULL,
  `OFFICE` varchar(99) NOT NULL
)

CREATE TABLE `CUSTOMER` (
  `ID` int(10) NOT NULL PK AUTOINCREMENT,
  `USERID` int(10) NOT NULL,
  `CITIZENID` int(10) NOT NULL,
  `CITY` varchar(99) NOT NULL,
  `ADDRESS`varchar(99)
)


ALTER TABLE `CUSTOMER`
  ADD CONSTRAINT `CUSTOMER_ibfk_1` FOREIGN KEY (`USERID`) REFERENCES `USERS` (`ID`)

ALTER TABLE `SUPPORT`
  ADD CONSTRAINT `SUPPORT_ibfk_1` FOREIGN KEY (`USERID`) REFERENCES `USERS` (`ID`)

ALTER TABLE `TYPES`
  ADD CONSTRAINT `TYPES_ibfk_1` FOREIGN KEY (`ID`) REFERENCES `USERS` (`TYPEID`)

修订版DB SCHEMA

书呆子

我不建议index.phpifs填充,html而是使用ifs和includeother填充html snippets

至于您的数据库模式,您将走在正确的道路上,但我将更改以下内容。

离开namepassword并且email仅在USER表中。我猜这在用户中很常见,并且您不想处理多个地方的更新数据,尤其是对于密码之类的东西。

您将要添加TYPETYPE表的ID和名称列(请名字一样的表名),然后添加TYPEIDUSERFK这样,您现在知道用户的类型为SUPPORT或CUSTOMER,然后可以构建查询以查找其他信息(请参见下文)。

SUPPORT和中添加一个列CUSTOMERUSERID并使其成为FK USER ID这样做的好处是,现在用户可以更改电子邮件,并且您知道,USERID因为它PKUSER表格中,所以它是唯一

然后,您可以查询以下信息:

//There is an assumption of object here with $user->type.
$query = "SELECT * FROM USER u JOIN {$user->type} t ON u.TYPEID = t.ID WHERE u.ID = ?";

在索引中还显示包括以下内容:

if($user->type == "SUPPORT"){
    include('path/to/support/template.php');
} elseif($user->type == "CUSTOMER"){
    include('path/to/customer/template.php');
} else {
    //Default catch bad types?
}

更新至SCHEMA

CREATE TABLE `USERS` (
    `ID` int(10) NOT NULL PK AUTOINCREMENT,
    `TYPEID` int(10) NOT NULL,
    `NAME` varchar(99) NOT NULL,
    `EMAIL` varchar(99) NOT NULL,
    `PASSWORD` text NOT NULL,
)

ALTER TABLE `USERS`
    ADD CONSTRAINT `USERS_ibfk_1` FOREIGN KEY (`TYPEID`) REFERENCES `TYPES` (`ID`)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将用户重定向到PHP中的同一页面问题

来自分类Dev

如何在PHP中重定向到同一页面,但没有某些参数?

来自分类Dev

使用 PHP 重定向到同一页面以及成功消息

来自分类Dev

PHP htaccess将规则重写为具有不同参数的同一页面

来自分类Dev

php-从页面重定向到另一页面

来自分类Dev

如何通过用户类型在php和mysql中重定向到不同的页面

来自分类Dev

从同一页面(Javascript或PHP)获取特定的类字段内容

来自分类Dev

在同一页面中将变量从JS传递到PHP

来自分类Dev

如何在同一页面中将jQuery变量发布到PHP?

来自分类Dev

将PHP变量传递到同一页面中的模态窗口

来自分类Dev

在重定向之前,将php函数分配给同一页面中的变量会话的更好方法

来自分类Dev

htaccess将404页面重定向到index.php

来自分类Dev

使用ASP.NET中的不同重定向参数重定向到同一页面

来自分类Dev

每次访问php都会按顺序将页面重定向到下一页

来自分类Dev

如何从php中的登录页面重定向到“上一页和仪表板”

来自分类Dev

重定向到PHP中的上一页

来自分类Dev

重定向到PHP中的上一页

来自分类Dev

使链接重定向到同一页面

来自分类Dev

Html.ActionLink-我想重定向到同一页面但使用不同的参数

来自分类Dev

在angularjs中使用不同的url名称重定向到同一页面

来自分类Dev

在php页面上有表单提交到同一页面是不好的做法吗?

来自分类Dev

注销后将用户重定向到同一页面

来自分类Dev

注销按钮将uesr重定向到同一页面,而不是注销用户

来自分类Dev

注销按钮将uesr重定向到同一页面,而不是注销用户

来自分类Dev

登录后将用户重定向到同一页面

来自分类Dev

仅当用户重定向到同一页面时才显示Div

来自分类Dev

基于用户角色的登录始终重定向到同一页面

来自分类Dev

将用户重定向到同一页面,但重定向到特定选项卡

来自分类Dev

如何使用所有参数重定向到同一页面?

Related 相关文章

  1. 1

    将用户重定向到PHP中的同一页面问题

  2. 2

    如何在PHP中重定向到同一页面,但没有某些参数?

  3. 3

    使用 PHP 重定向到同一页面以及成功消息

  4. 4

    PHP htaccess将规则重写为具有不同参数的同一页面

  5. 5

    php-从页面重定向到另一页面

  6. 6

    如何通过用户类型在php和mysql中重定向到不同的页面

  7. 7

    从同一页面(Javascript或PHP)获取特定的类字段内容

  8. 8

    在同一页面中将变量从JS传递到PHP

  9. 9

    如何在同一页面中将jQuery变量发布到PHP?

  10. 10

    将PHP变量传递到同一页面中的模态窗口

  11. 11

    在重定向之前,将php函数分配给同一页面中的变量会话的更好方法

  12. 12

    htaccess将404页面重定向到index.php

  13. 13

    使用ASP.NET中的不同重定向参数重定向到同一页面

  14. 14

    每次访问php都会按顺序将页面重定向到下一页

  15. 15

    如何从php中的登录页面重定向到“上一页和仪表板”

  16. 16

    重定向到PHP中的上一页

  17. 17

    重定向到PHP中的上一页

  18. 18

    使链接重定向到同一页面

  19. 19

    Html.ActionLink-我想重定向到同一页面但使用不同的参数

  20. 20

    在angularjs中使用不同的url名称重定向到同一页面

  21. 21

    在php页面上有表单提交到同一页面是不好的做法吗?

  22. 22

    注销后将用户重定向到同一页面

  23. 23

    注销按钮将uesr重定向到同一页面,而不是注销用户

  24. 24

    注销按钮将uesr重定向到同一页面,而不是注销用户

  25. 25

    登录后将用户重定向到同一页面

  26. 26

    仅当用户重定向到同一页面时才显示Div

  27. 27

    基于用户角色的登录始终重定向到同一页面

  28. 28

    将用户重定向到同一页面,但重定向到特定选项卡

  29. 29

    如何使用所有参数重定向到同一页面?

热门标签

归档