wywoływanie metod w odpowiedniej kolejności i po spełnieniu warunków

0

Witam,

Zaczynam z obiektowym programowaniem i mam taki problem, że nie wiem jak sprawnie zarządzać zrobionymi metodami

Przykładowo mam sobie :

class logowanie {

public function valid_login_name() {
  
    $username = $_GET['username'];  
  $login_name = 'd56b6asdsada53855679cb1d252da';

      if(md5($username) === $login_name ){
    echo "extra";
 } elseif(md5($username) !== $login_name
         && !empty($username)   ){
    echo "błedny login";
    
    } elseif(md5($username) == null) {
        echo "nie podales loginu";
       
    }

Sprawdza mi czy podany login jest taki sam jak ten zapisany w zmiennej.
Wiem, że mogę się do niej odwołać za pomocą np :

$login= new logowanie();
 $login->valid_login_name();

Mam sobie też

class pozalogowaniu {
      
       public function loguj(){
       header("Location: http://www.example.com/");
    }
  }
  

I teraz jest moje pytanie w stylu dump question. Jak tym zarządzać aby np. metode loguj() wyświetlić w momencie gdy login będzie poprawny w metodzie valid_login_name. a gdy np. będzie błędny to nic nie wyświetlić albo jeszcze inną metodę?

1

Polecam książkę "Czysty kod" Roberta C. Martina. Podstawowa zasada programowania obiektowego: jedna funkcja, jedno zadanie. W Twoim przypadku funkcja poza walidacją wyświetla dodatkowo tekst. Mówię to tylko tak dla ciekawości :)

A co do samego problemu: funkcję loguj() zrób sobie jako statyczną, czyli "public static function loguj()". Wystarczy teraz, że w miejscu, gdzie masz "echo extra" umieścisz kod "pozalogowaniu::loguj()" i to w sumie tyle :)

1

Jak wyżej + używanie md5 to słaby pomysł, poczytaj lepiej o:
http://php.net/manual/en/faq.passwords.php

1

Jak robisz header Location: to warto zaraz po nim zrobić die() - a najlepiej wcześniej wyczyścić bufor (używasz buforowania oczywiście? ob php w Google) - bo możliwe, że zwracasz zawartość do której nie powinno być dostępu wraz z takim nagłówkiem (popularny błąd wśród początkujących)

1

Uzupełniając wypowiedź @Websplash. Jeśli zaczynasz z programowaniem obiektowym, to polecam zapoznać się z serią artykułów wprowadzających do programowania obiektowego: http://webmastah.pl/tag/programowanie-obiektowe/

Nie są one długie, a pozwolą Ci posiąść podstawową wiedzę o OOP.

[Adrian]

1 użytkowników online, w tym zalogowanych: 0, gości: 1