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

codeigniter php

VPS Starter Arubacloud
0 głosów
279 wizyt
pytanie zadane 30 sierpnia 2018 w PHP przez JeyJey Użytkownik (710 p.)
edycja 30 sierpnia 2018 przez Arkadiusz Waluk

Hej mam taki problem, piszę stronkę w codeigniter doczhodzę do części logowania i mimo że wszystko jest napisane jak trzeba to nie działa....a dokładniej to ten debilny password_verify...oto kod:

Robiłem chyba już wszystko i nie działa nic!!!!!

public function login()
    {

        logged_in() == false || redirect( '/' );

        if ( !empty( $_POST ) )
        {

            if ( $this->form_validation->run( 'site_account_login' ) == true )
            {

                $email = $this->input->post( 'email' , true );
                $haslo = $this->input->post( 'haslo' , true );

                $where = array( 'email' => $email );
                $user = $this->Site_model->get_single( 'users' , $where );

                if ( !empty( $user ) )
                {

                    if ( password_verify( $haslo , $user->haslo ) == true )
                    {

                        // Czy użytkownik jest aktywny

                        if ( $user->active == 1 )
                        {

                            // Zalogowanie użytkownika

                            $data_login = array(
                                'id' => $user->id,
                                'email' => $user->email,
                                'logged_in' => true,
                            );
                            $this->session->set_userdata( $data_login );

                            $this->session->set_flashdata( 'alert' , 'Zalogowałeś się poprawnie.' );
                            redirect( '/' );

                        }
                        else
                        {
                            $this->session->set_flashdata( 'alert' , 'Musisz aktywować swoje konto.' );
                            refresh();
                        }

                    }
                    else
                    {
                        // Użytkownik podał błędne hasło dla podanego adresu email

                        $this->session->set_flashdata( 'alert' , 'Błędne hasło.' );
                        refresh();
                    }

                }
                else
                {
                    // Nie istnieje taki użytkownik

                    $this->session->set_flashdata( 'alert' , 'Użytkownik z podanym adresem email nie istnieje.' );
                    refresh();
                }

            }
            else
            {
                $this->session->set_flashdata( 'alert' , validation_errors() );
                refresh();
            }

        }

        $this->load->view( 'site/account/login' );
    }

}
komentarz 30 sierpnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Kod umieść w bloczku i nie obrażaj biednego password_verify.
1
komentarz 30 sierpnia 2018 przez Ehlert Ekspert (212,630 p.)
To jest najnowsza wersja CodeIgnitera? To wygląda gorzej niż Symfony 1.5. Jeszcze ten charakterystyczny piramida code style.
komentarz 30 sierpnia 2018 przez JeyJey Użytkownik (710 p.)

@OdsetekGlupoty, Sory mam przez to nerwy, jak mam umieścić kod w bloczku?? może to być dziwne te pytanie, ale już mi się mózg lasuje od tego.

komentarz 31 sierpnia 2018 przez Gambr Dyskutant (7,530 p.)

@Ehlert, CI to framework, którego funkcje związane z HTML oraz sam silnik template nie mają wsparcia dla escapowania stringów więc XD 

1 odpowiedź

0 głosów
odpowiedź 31 sierpnia 2018 przez Ergo Proxy Użytkownik (640 p.)
Hehe ojoj, jak ty się w tym łapiesz. Takiej piramidy ifów dawno nie widziałem :P Potem ludzie mówią, że CI jest beznadziejny (a to mój najukochańszy framework ;)) :P Ogólnie przepisz sobie ten kod, bo w takiej plątaninie nie trudno się pogubić. Każde sprawdzenie wrzuć do osobnej funkcji. Np. sprawdzenie czy jest już użytkownik o takim mailu wrzuć do funkcji isEmailInDatabase (czy coś takiego). Wydziel sprawdzanie hasła, emailu (czy są zgodne z tym co jest w bazie danych). Jak sobei to podzielisz wszyscy co mozesz do osobnych funkcji to nagle zobaczysz, że potrzebujesz 1, góra 2 ifów do sprawdzenia ;)

Podobne pytania

0 głosów
0 odpowiedzi 233 wizyt
pytanie zadane 8 sierpnia 2018 w PHP przez JeyJey Użytkownik (710 p.)
0 głosów
2 odpowiedzi 171 wizyt
pytanie zadane 15 czerwca 2018 w SQL, bazy danych przez JeyJey Użytkownik (710 p.)
0 głosów
0 odpowiedzi 152 wizyt
pytanie zadane 16 lipca 2019 w PHP przez progNewbie Obywatel (1,130 p.)

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...