Javascript 使用PHP基于用户名加载不同的视图

Javascript 使用PHP基于用户名加载不同的视图,javascript,php,mysql,database,login,Javascript,Php,Mysql,Database,Login,我使用PHP和MySQL创建了一个学生和教师反馈系统。学生和讲师登录后应显示单独的视图。学生用户名的形式为B*********,讲师用户名的形式为E*********。我在想,有没有一种方法可以获取用户输入的用户名并将其截断,然后匹配B或E,然后为给定用户提供相关的PHP视图,或者有没有更好的方法来实现我的目标。我对PHP比较陌生,因此非常感谢您的帮助。您可以使用数组访问语法[]、字符串访问语法{}和各种其他方法轻松获取字符串的第一个字符 if ("B" == $name[0]) { /

我使用PHP和MySQL创建了一个学生和教师反馈系统。学生和讲师登录后应显示单独的视图。学生用户名的形式为
B*********
,讲师用户名的形式为
E*********
。我在想,有没有一种方法可以获取用户输入的用户名并将其截断,然后匹配
B
E
,然后为给定用户提供相关的PHP视图,或者有没有更好的方法来实现我的目标。我对PHP比较陌生,因此非常感谢您的帮助。

您可以使用数组访问语法
[]
、字符串访问语法
{}
和各种其他方法轻松获取字符串的第一个字符

if ("B" == $name[0]) {
    // show student page
}
else {
   // show instructor page
}

以下是我的做法:

  • 在数据库中,创建一个“userType”列,指示用户名是属于学生还是教师
  • 用户提交其登录详细信息。找到匹配项,检查“userType”列并相应地显示视图
  • 下面是一个非常基本的代码示例

    $sql = $this->db->query("
     SELECT userType
     FROM userTable
     WHERE userName = //Username typed in by the user
     AND password = //Password typed in by the user
    ");
    $result = $sql->fetchAll();
    if($result[0][0] == "student") include_once "student.php";
    if($result[0][0] == "teacher") include_once "teacher.php";
    else echo "User does not exist";
    

    您可以为用户使用标志。例如,-s代表学生,-l代表讲师。然后,当用户登录并检查密码时,也检查标志,提供由标志决定的视图。yoda条件是什么?“红色是颜色吗?”一点也不比“颜色是红色吗?”@DusteD您可以随意阅读,但是
    “B”=$name[0]
    是一个语法错误
    $name[0]=“B”
    总是
    真的
    ,因此,此刻我为学生和讲师分别安排了一张桌子。一个包含StudentID,一个包含讲师ID。如果是这种情况,我是否需要一个userType类来区分它们之间的区别,或者我是否可以像从Student中选择StudentID那样;然后包括student.php;否则,如果从讲师中选择讲师ID;然后包括讲师.php;否则打印“您输入的用户ID不正确”或者这是完全错误的?我建议您使用一个表来表示两者,并使用“userType”列来区分它们。这样,您的数据库设计将更干净,查询将更简单。
    $sql = $this->db->query("
     SELECT userType
     FROM userTable
     WHERE userName = //Username typed in by the user
     AND password = //Password typed in by the user
    ");
    $result = $sql->fetchAll();
    if($result[0][0] == "student") include_once "student.php";
    if($result[0][0] == "teacher") include_once "teacher.php";
    else echo "User does not exist";