• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd logowania w PHP

Object Storage Arubacloud
0 głosów
128 wizyt
pytanie zadane 1 grudnia 2020 w PHP przez olcia12 Nowicjusz (120 p.)

Cześć, mam problem z logowaniem, strona nie wyświetla żadnych błędów, a po poprawnym zalogowaniu nie przenosi do podanej strony. Oto mój kod:

strona logowania:

<?php include APPPATH. "views/page/small-header.php";  ?>

<div class="blank">

    <div class="blank-page">
    <div class="container">

      <?php echo $this->session->flashdata('message'); ?>

    

    <?php echo form_open('Main/login', 'class="form-signin"'); ?>


  
  <h1 class="h3 mb-3 font-weight-normal">Zaloguj się do systemu</h1>
  <label for="email" class="sr-only">Podaj adres email</label>
  <input type="email" id="email" name="email" class="form-control col-md-6" placeholder="Podaj adres email" value="<?php echo set_value('email'); ?>" required autofocus>
  <?php echo form_error('email', '<div class="help-block text-right"', '</div>') ?>

  <label for="password" class="sr-only">Podaj hasło</label>
  <input type="password" id="password" name="password" class="form-control" placeholder="Podaj hasło" required>
  <?php echo form_error('password', '<div class="help-block text-right"', '</div>') ?>
  
  
  <button class="btn btn-lg btn-primary btn-block" type="submit">Zaloguj się</button>
  <?php echo form_close(); ?>
</div>
  
</div>

 </div>
  </div>

<?php include APPPATH. "views/page/footer.php";  ?>

oraz kod w main.php, w którym jest zdefiniowana funkcja loguj():

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Main extends CI_Controller {


    public function __construct()
    {
        parent::__construct();
        
    }


    public function index()
    {
        $this->load->view('login-page');
    }


    public function dashboard()
    {
        $this->load->view('dashboard');
        if ( ! $this->session->userdata('logged_in') ) {redirect('main'); }
    }


    public function login()
    {

        $this->form_validation->set_rules('email', 'Adres email', 'trim|required|valid_email');
        $this->form_validation->set_rules('password', 'Hasło', 'trim|required|sha1');


        if ( $this->form_validation->run() == FALSE)
        {
            $this->load->view('login-page');

        }else{
            $email = $this->input->post('email');
            $password = $this->input->post('password');

            $where = array('email' => $email);
            $this->load->model('users_model');
            $user = $this->users_model->login('users', $where);

            if (!empty($user) )
            {

                if ( $password == $user->password){

                    $data_login = array(
                        'id' => $user->id,
                        'username' => $user->username,
                        'firstname' => $user->firstname,
                        'lastname' =>$user->lastname,
                        'addate' => $user->addate,
                        'status' => $user->status,
                        'logged_in' =>TRUE,
                    );

                    $this->session->set_userdata($data_login);
                    $data = $this->session->set_flashdata('message', '<div class="alert alert-success"> Zalogowałeś się poprawnie</div>');
            redirect('main/dashboard', $data);
            refresh();




                }else{
                    $data = $this->session->set_flashdata('message', '<div class="alert alert-error"> Podane hasło jest nieprawidłowe </div>');
            redirect('main/login', $data);
            refresh();



                }


            }else{

                $data = $this->session->set_flashdata('message', '<div class="alert alert-error"> Podany email nie istnieje w bazie danych </div>');
            redirect('main/login', $data);
            refresh();

            }

        }

    }

    public function logout()
    {
        $this->session->sess_destroy();
        $data = $this->session->set_flashdata('message', '<div class="alert alert-error"> Zostałeś wylogowany poprawnie </div>');
            redirect('main/index', $data);
            refresh();

    }
}

Czy ktoś może wie dlaczego po zalogowaniu, nie jestem kierowana na stronę główną?

1 odpowiedź

0 głosów
odpowiedź 2 grudnia 2020 przez mtk3d Nałogowiec (46,690 p.)

Ojej, CodeIgniter :D 
Dawno się nie widziałem z tym frameworkiem. Pytanie z ciekawości. Uczysz się programować, czy uczysz się obsługi konkretnego frameworka, czy może piszesz zwyczajnie jakieś rozwiązanie?

Myślę, że warto sprawdzić czy wszystko poprawnie zapisuje się w sesji.
Wstaw pod linią 61 coś takiego:

log_message('debug', $this->session->get_userdata('logged_in'));

I sprawdź co zostanie zapisane w logach.

Jeśli to wersja trzecia, to powinno dać się wyciągać dane z sesji bez metody get_userdata czy userdata:

log_message('debug', $this->session->logged_in);

 

Podobne pytania

0 głosów
1 odpowiedź 457 wizyt
pytanie zadane 25 lutego 2016 w PHP przez Kubala94 Początkujący (360 p.)
0 głosów
1 odpowiedź 188 wizyt
pytanie zadane 6 kwietnia 2019 w PHP przez Matinowsky Nowicjusz (120 p.)
0 głosów
1 odpowiedź 525 wizyt

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...