jako iż to mój pierwszy post na tym forum to wypadałoby się przedstawić.
Jestem 17nastolatkiem , który dopiero co raczkuje w php, pochodzącym z bardzo znanego miasta Bogatynia(7.08.2010), a na imię mam Mateusz!

A przechodząc do mojego problemu, to dawniej napisałem system logowania(o ile można to tak nazwać), ale teraz jak jestem starszy i mądrzejszy, to chciałbym Go przebudować, i zaczać bardziej doceniać OOP. Oczywiście wiem, że wszystko jest tu źle, dlattego chciałbym napisać wszystko od początku. Próbuje sobie uzmysłowić ile klas potrzebuje do logowania, i chodzenia po podstronach, w których wymagane jest zalogowanie.
Myślałem nad takimi:
class user_auth - Autoryzacja użytkownika, znajdują sie w niej funkcje potrzebne do zalogowania, informacje o użytkowniku(user_id itp.)
class session - Klasa zarządzająca sesjami oparta na bazie
class account_managment - Klasa do zarządzania kontem,zmiana haseł,informacji o profilu itd.
Problem mój polega na tym, że nie wiem jak te wszystkie 3 klasy połączyć, i w jaki sposób je dobrze napisać.
Próbowałem w mojej aktualnej klasie wprowadzić atrybuty, takie jak user_id,user_login,user_level. Lecz odwołując się do nich w innych plikach, nie uzyskuje żadnego rezultatu. Wygląda to mniejwięcej tak:
Nagłówek account.php
require_once ("mainfile.php");
Nagłówek mainfile.php
require_once('functions.php'); require_once('config/config.php'); require_once('class/class_database.php'); require_once('class/class_account.php'); $class_database = new class_database; $class_account = new class_account;
Lecz w obu tych plikach nie jestem w stanie odwołać się do $class_account->user_id;
W jaki sposób zoptymalizować klasy?
Poniżej skrypt logowania o którym wcześniej wspominałem.
function login($login_in_login_form,$password_in_login_form) { $login_exist = $this->check_login_exist($login_in_login_form); //Sprawdza czy login wpisany w formularzu istnieje if($login_exist==TRUE) //Jesli istnieje to -> { $password_match = $this->confirm_password_in_login($login_in_login_form,$password_in_login_form); //Sprawdza czy haslo pasuje do loginu if($password_match == TRUE) //Jesli pasuje to -> { $if_activated = $this->check_account_activated($login_in_login_form); //Sprawdza czy konto jest aktywowane if($if_activated == TRUE) //Jesli konto aktywowane to-> { $this->setsessions( $login_in_login_form); // Ustawia sesje $sucesfull = "Login sucesfull! In(".RELOAD_TIME." seconds) you'll be redirected."; $to_display .= display_good(redirect($sucesfull)); //Funkcja `display_good` wyswietla tekst w odpowiednim 'pojemniku' //Funkcja `redirect` przekierowuje na daną strone(tu 'account'), i wyswietla komunikat. }//Jesli konto nie aktywowane to else { $notactivated = "Account not activated"; $to_display .= display_alert($notactivated)); //Funkcje jak wyzej } }//Jesli haslo nie pasuje to wyswietl na ekranie else { $to_display .= display_wrong("Bad password."); } }//Jesli login nie istnieje else { $to_display .= display_wrong("This user does not exist."); } return $to_display;//zwroc wynik }
Pozdrawiam, Mateusz