Хранение идентификатора зарегистрированного пользователя из одной таблицы в другую-CodeIgniter - PullRequest
0 голосов
/ 28 марта 2019

Я хочу сохранить идентификатор зарегистрированного пользователя из таблицы с именем «user» в другой таблице с именем «article» после публикации статьи.Я понятия не имею, как использовать сеанс / для хранения данных сеанса в массив и новичок в CodeIgniter.Так что любые рекомендации приветствуются.Заранее спасибо!

User.php (контроллер входа)


class User extends CI_Controller {

    function __construct(){
        parent::__construct();
        $this->load->helper('url');
        $this->load->model('users_model');
    }

    public function index(){
        //load session library
        $this->load->library('session');

        //restrict users to go back to login if session has been set
        if($this->session->userdata('user')){
            redirect('ask_controller');
        }
        else{
            $this->load->view('login_page');
        }
    }

    public function login(){
        //load session library
        $this->load->library('session');
        // $fname = $_POST['username'];
        $email = $_POST['email'];
        $password = $_POST['password'];

        $data = $this->users_model->login($email, $password);

        if($data){
            $this->session->set_userdata('user', $data);
            redirect('ask_controller');
        }
        else{
            header('location:'.base_url().$this->index());
            $this->session->set_flashdata('error','Invalid login. User not found');
        } 
    }

    public function home(){
        //load session library
        $this->load->library('session');

        //restrict users to go to home if not logged in
        if($this->session->userdata('user')){
            $this->load->view('ask_controller');
        }
        else{
            redirect('/');
        }

    }

    public function logout(){
        //load session library
        $this->load->library('session');
        $this->session->unset_userdata('user');
        redirect('/');
    }

}

User_model.php (модель входа)


        public function login($email, $password){
            $query = $this->db->get_where('user', array('email'=>$email, 'password'=>$password));
            return $query->row_array();
        }

?>

Login_page.php

 <form action="<?php echo base_url(); ?>index.php/user/login" method="post">
          <?php 
          // if(! is_null($msg)) echo $msg;
          ?> 
        <input class="form-control" placeholder="Email" type="email" name="email" required />
        <input class="form-control" placeholder="Password" type="password" name="password" required />
        <div class="text-center">
            <input type="submit" name="submit" class="button" value="LOG IN" style="border-radius: 4px;border: none;">
            <a href="signup.html" target="_blank"><div class="button">Create an account</div></a>
        </div>
        <?php
        if($this->session->flashdata('error')){
          ?>
          <div class="alert alert-danger text-center" style="margin-top:20px;">
            <?php echo $this->session->flashdata('error'); ?>
          </div>
          <?php
        }
?>

      </form>

Ask_view.php (где вы можете опубликовать статью)

<form id="form" enctype="multipart/data" method="post"  onsubmit="createTextSnippet();">


                    <div class="form-group"> 
                        <label for="exampleInputEmail1">Title</label>
                        <input type="text" name ="title" class="form-control" id="title"  placeholder="Title" required >
                    </div>


                    <input type="hidden" name="hidden_snippet" id="hidden_snippet" value="" />

                    <div class="form-group"> 
                        <label for="exampleInputEmail1">Editor</label>
                        <textarea name ="text" class="form-control" id="text" rows="3" placeholder="Textarea" required></textarea>
                    </div>
                     <input type="submit" class="btn "  name="submit" value ="Submit"  style="width: 100%;background: #f4a950;color:#161b21;">



                </form>

Ask_controller.php

  public function book_add(){
    // $result=$this->ask_model->get_id();


    $data=$_POST;
        $details = array();
        $details['title'] = $data['title'];
        $details['content'] = $data['text'];
        $details['snippet'] = $data['hidden_snippet'];
    $details['createdDate']=date('Y-m-d H:i:s');

        $result=$this->ask_model->book_add($details);
    $val =$this->session->user;
        echo json_encode(array('id'=>$data,'data'=>$result));
    }

Ask_model.php

public function book_add($data)
    {
        $query=$this->db->insert('article', $data);
        return $query;
    }

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

В методе входа в систему вы можете получить данные и создать сеанс, а затем передать данные в сеанс следующим образом:

$ _ SESSION ['session_name'] = $ Get_data;

0 голосов
/ 28 марта 2019

Ask_controller:
Пожалуйста, внимательно прочитайте все комментарии

public function book_add(){
    // $result=$this->ask_model->get_id();


    $data=$_POST;
        $details = array();
        $loogedUserDetails = $this->session->userdata('user');//get your session users data
        $details['author_id'] = $loogedUserDetails['id_user'];//assums your id and passed to $details so you can use in model to store it in article
        $details['title'] = $data['title'];
        $details['content'] = $data['text'];
        $details['snippet'] = $data['hidden_snippet'];
        $details['createdDate']=date('Y-m-d H:i:s');

        $result=$this->ask_model->book_add($details);
        echo json_encode(array('id'=>$data,'data'=>$result));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...