Pytam się, bo zgłupiałem, gdyż wywala mi błąd, że zmienna nie jest typu INT!
a teraz kod
z pliku głównego
<?php #utwórz użytkownika $luser = new LoginUser($_SESSION["username"]); $luser->createNewUserSQL($_SESSION,$_POST); ?>
z klasy LoginUser, która dziedziczy po User
<?php public function createNewUserSQL($session, $post) { #zapisz dane o użytkowniku $this->setUsername($session["username"]); /*wyciąłem instrukcje przypisywania pole user_id nie jest zmieniane*/ #generuj kod aktywacji $this->generateActivationCode(); #oblicz datę do kiedy kod aktywacyjny jest ważny $this->setActivationCodeExpirationDate($expire_date); #ustaw konto jako aktywne @todo: napisać aktywację konta $this->activate(); #stwórz użytkownika $this->createSQL(); /* został utworzony użytkownik, nie zostało mu przypisane id, a pole user_id jest
auto_increment, więc należy je odczytać, co też poniżej jest czynione */ #odczytaj zapisane dane = uaktualnij dane o ID użytkownika $this->readDataFromSqlByEmail($this->getEmail()); #stwórz użytkownika w tabeli uzytkowników jako zwykłego usera $groupuser = new GroupUser(REGISTERED_USER,$this->getUserID()); #stwórz wpis o użytkowniku w bazie $groupuser->createSQL(); } ?>
readDataFromSqlByEmail() wywołuje w sobie między innymi taką funkcję
<?php /** * Wczytaj użytkownika z wyników zapytania SQL * * @param array $table tabela z danymi uzytkonika * @access public */ public function setFromSQL($table){ #ustaw dane użytkownika poprzez odczyt danych z talicy wyników #zwróconej przez zapytanie do bazy danych $this->setUserID($table["user_id"]); $this->setEmail($table["email"]); $this->setGG($table["gg"]); /* i tak dalej i tak dalej....*/ } ?>
Konstruktor GroupUser
<?php /** * Konstruktor * * @param array $rbx_db * @param integer $guidorgid * @param ingeter $user_id * @access public */ public function __construct($guidorgid, $user_id=NULL){ #inicjacja połaczenia PDO poprzez wyłołanie konstruktora rodzica parent::__construct(); #ustaw wartości domyślne $this->setDefault(); #zlicz ilość argumentów wejściowych #parsuj argumenty wejściowe #konstruktor dla obiektu pobierającego dane z bazy if ($arg == 1) { $this->id = $guidorgid; } #konstruktor tworzący ($arg==2) $this->user_id = $user_id; $this->group_id = $guidorgid; } else throw new CreateObjectException(INCORRECT_VALUE); } else throw new CreateObjectException(INCORRECT_ARGUMENT_TYPE); } else throw new CreateObjectException(INCORRECT_ARGUMENTS_NUMBER); } ?>
getUserID() wygląda tak
<?php /** * Zwraca identyfiaktor użytkownika * * @return int identyfikator użytkowika * @access public */ public function getUserID(){ return $this->user_id; } ?>
Mi już ręce opadają, nie mam zielonego pojęcia dlaczego się tak dzieje!
Zmieniłem getUserId() w ten sposób, działać działą, ale nie zmienia to faktu, że i bez tego powinno mi zwrócić INT!
<?php /** * Zwraca identyfiaktor użytkownika * * @return int identyfikator użytkowika * @access public */ public function getUserID(){ } ?>