Перенаправить на указанный c URL после входа в систему - PullRequest
0 голосов
/ 26 марта 2020

Я строю систему, когда кто-то запрашивает, уведомление по электронной почте отправляется своему руководителю в качестве уведомления, чтобы принять запрос. Когда супервизор откроет его, затем нажмите на кнопку, он перенаправит на страницу входа. Проблема в том, что я не знаю, как перенаправить на страницу подтверждения spesifi c после входа в систему. Ссылка в кнопке электронной почты является ссылкой на страницу spesifi c. Когда он нажимает, он проверяет, если пользователь уже залогинен или нет. Если пользователь уже вошел в систему, он плавно перенаправит на страницу подтверждения. Но когда пользователь не авторизуется, он будет перенаправлен на страницу входа. После входа пользователя, как заставить его перенаправить на ссылку, которую я установил в электронной почте. Я ищу, но не получил четкого ответа, как решить эту проблему. Надеюсь, что кто-нибудь может помочь мне здесь

function do(){

    $nik = $this->input->post('nik');       
    $pwd = sha1($this->input->post('pwd') . $this->config->item('encryption_key'));
    $login = $this->Login_model->auth($nik, $pwd);

    $rules = array(
        array(
            'field' => 'nik',
            'label' => 'NIK',
            'rules' => 'required'
        ),
        array(
            'field' => 'pwd',
            'label' => 'Password',
            'rules' => 'required'
        )
    );
    $this->form_validation->set_rules($rules);

        if ($this->form_validation->run() == FALSE) {
            $this->session->set_flashdata('error', 'Error message.');
            $this->load->view('v_login');
        } else {
            if ($login == NULL) {
                echo "<script>alert('Check your NIK or Password or Register new account')</script>";
                redirect('login','refresh');
            }else {
                $data = array(
                    'ID'        => $login->no,
                    'nik'       => $login->nik,
                    'name'      => $login->name,
                    'email'     => $login->email,
                    'is_login'  => TRUE
                );

                $this->session->set_userdata($data);
                $session_nik = $login->nik;
                redirect('dashboard');
            }


        }  
    }

Спасибо:)

1 Ответ

0 голосов
/ 26 марта 2020

Поскольку вы используете CodeIgniter, вы смотрели на это? https://www.formget.com/form-login-codeigniter/

Вы можете создать форму, которая будет обрабатывать вход в систему пользователя.

Что-то простое, как это (без каких-либо стилей):

<form action="" method="post" name="login_form">
  <input type="text" name="username">
  <input type="text" name="password">
  <input type="submit" name="submit" value="Login">
</form>

Затем вы можете настроить скрипт PHP для получения информации о форме и подтверждения запроса

if(isset($_POST['submit'])) {
  if($_POST['username'] == 'example' && $_POST['password'] == 'password') {
    // Let them through
    $_SESSION["admin"] = true;
    ob_start();
    header('Location: yourfile.php');
    ob_end_flush();
  } else {
    // You would set this up yourself.
    die();
  }
}

Затем на yourfile.php нам нужно убедиться, что вы администратор.

if ($_SESSION["admin"] == false) {
  ob_start();
  header('Location: login.php');
  ob_end_flush();
  die();
}
...