Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 登录codeigniter后的条件获取数据_Php_Codeigniter_Login_Fetch - Fatal编程技术网

Php 登录codeigniter后的条件获取数据

Php 登录codeigniter后的条件获取数据,php,codeigniter,login,fetch,Php,Codeigniter,Login,Fetch,我制作了一个登录系统,可以验证用户是管理员还是简单用户 我的桌子是“cursadas”、“usuarios”和“Materialas” “cursadas”包括:(id、用户id[是表“usuarios”中“id”列的外键]、主题id[是表“Materials”中“id”列的外键]、等级、日期) “usuarios”包括:(id、用户名、姓名、姓氏、密码、类型、状态、日期) “材料”包括:(id、职业id、姓名、描述、时间) 这是我的桌子“usuarios”: 我还做了另一个程序,从表“usu

我制作了一个登录系统,可以验证用户是管理员还是简单用户

我的桌子是“cursadas”、“usuarios”和“Materialas”

“cursadas”包括:(id、用户id[是表“usuarios”中“id”列的外键]、主题id[是表“Materials”中“id”列的外键]、等级、日期)

“usuarios”包括:(id、用户名、姓名、姓氏、密码、类型、状态、日期)

“材料”包括:(id、职业id、姓名、描述、时间)

这是我的桌子“usuarios”:

我还做了另一个程序,从表“usuarios”和“materialas”中获取数据,并将这些信息放入表“cursadas”中

这是我的最后一个表“cursadas”(表“Materialas”和“usuarios”中的数据)

现在,我想做点新东西。使用登录系统和我的表“cursadas”。如果一个简单的用户(不是ADMIN-i意思是(“type”=1,“status”=1))该用户名必须能够看到他们存储在表“cursadas”中的信息

如果登录系统中写入的用户名和密码仅对应于简单用户(“类型”=1,“状态”=1),则必须显示一个包含登录系统中写入的用户名信息的表格

看一看,我需要这样的东西:

注意:在这种情况下,只有一个用户名,但我将添加更多具有条件(“type”=1和“status”=1)的用户,每次我使用不同的用户名和密码登录时,都必须显示一个包含不同用户名信息的表

这是我的登录代码:

我的视图文件(“登录表单”):


登录


这是你想要的ERD

您的案例是一个基于角色的用户登录/环境的简单示例。现在,如果你能看看这个。您将对创建良好的基于角色的登录以及如何在Codeigniter会话中保留用户详细信息的代码和结构有坚实的理解

成功登录后,您需要创建模型函数,在控制器中调用它,通过该控制器呈现当前用户仪表板/视图,然后将该数据发送到从模型函数获得的视图

例如,在控制器中。为家做一个活动

public function home()
{
    $data['record']=$this->M_login->getDetails();
    $this->load->view('home',$data);
}
在模型中创建一个获取详细信息的函数

public function getDetails()
{
    $st=$this->db->SELECT('cursadas.*, usuarios.name as usuarios, materias.name as materias_name')->from('cursadas')
        ->join('usuarios','usuarios.id=cursadas.user_id')
        ->join('materias','materias.id=cursadas.subject_id')
        ->WHERE('cursadas.user_id=',$this->session->userdata['id'])
        ->get()->result_array();
    return $st[0]; // or use the row function
}

在你看来,使用$record的相应索引

不要存储纯文本密码问题中有很多不必要的细节,根本不需要。除了为了安全而重新构建项目之外,您只需要一个查询就可以从表中获取所需的记录,并请在会话中保持用户的状态。那么,我该怎么做呢?朋友,我有点头晕:/@MalikMudassar真的不知道该怎么做:/Mate,但是索引应该是什么?你是说这个?是的,但是首先转储数组以查看索引的正确拼写。或者你可以打印,你帮了我很多!,但是你能帮我弄清楚索引的问题吗..我不太习惯,我不明白:S.在这种情况下我该怎么办?看,$record是你传递给视图的数组。根据我的查询,索引将类似于$record[id]、$record[usuarios]、$record[Materialas_name],然后是等级和状态,如果您想以用户和主题的身份获取它们的标签,只需在查询中将它们的名称更改为“usuarios.name as user”
    <?php

        class M_login extends CI_Model{

            public function proceso_login($user,$pass){

                $this->db->where('username', $user);
                $this->db->where('password', $pass);
                return $this->db->get('usuarios')->row();

            }


}
?>
    <html>
 
    <head>
 
 
 
    </head>
 
<body>
 
    <div class="container"> 
    <div class="row">
    <div class="col-md-12">
 
        <h2 align="center">TABLE:Study</h2>
 
        <input id="busqueda_tabla" type="text">
            <table class="table table-hover" align="center" border="1" cellspacing="0" cellpadding="0" width="700" id="tabla_busqueda">
                <thead>
                    <th>id</th>
                    <th>User</th>
                    <th>Subject</th>
                    <th>Grade</th>
                    <th>Date</th>
                    <th>Action</th>
                </thead>
 
<tbody>
    <?php
 
    if (count($records) > 0 && $records != false) {
        foreach($records as $record) {
 
            echo "<tr>
                      <td>".$record['ID']."</td>
                      <td>".$record['User']."</td>
                      <td>".$record['name']."</td>
                      <td>".$record['grade']."</td>
                      <td>".$record['date']."</td>
                      <td align='center'>
 
                        <a href='".site_url('Home/editar')."/$record[ID]'> 
                         <button type='button' class='btn btn-primary'>EDITAR</button></a> |
                        <a href='".site_url('Home/borrar')."/$record[ID]'> 
                         <button type='button' class='btn btn-danger'>BORRAR</button></a>

                  </tr>";
        }
 
       }
    ?>
 
</tbody>
 
    </table>
 
        </div>
        </div>
        </div>
 
</body>
</html>
    <?php
 
    class Home extends CI_Controller{
 
         public function __construct(){
             parent::__construct();
             $this->load->model("Crudmodel");
 
        }
 
 
public function index(){
 
    # get all data in Study table
 
    $query = $this->db->query('SELECT a.id ID,b.username User, c.name, a.grade, a.date FROM cursadas a JOIN usuarios b ON a.user_id=b.id JOIN materias c ON c.id=a.subject_id');
 
    $result = $query->result_array();
 
    $data['records'] = $result;
 
    $this->load->view('home', $data);
 
}
public function home()
{
    $data['record']=$this->M_login->getDetails();
    $this->load->view('home',$data);
}
public function getDetails()
{
    $st=$this->db->SELECT('cursadas.*, usuarios.name as usuarios, materias.name as materias_name')->from('cursadas')
        ->join('usuarios','usuarios.id=cursadas.user_id')
        ->join('materias','materias.id=cursadas.subject_id')
        ->WHERE('cursadas.user_id=',$this->session->userdata['id'])
        ->get()->result_array();
    return $st[0]; // or use the row function
}