Autor | Zpráva | ||
---|---|---|---|
Michales Profil |
#1 · Zasláno: 5. 8. 2015, 13:29:24 · Upravil/a: Michales
Ahoj, potřeboval bych radu co mám špatně v následujících funkcích:
public function load() { $this->userdata['is_logged'] = false; if ($this->token != null) { $presult = mysql_query("SELECT `user`, `time` FROM `" . $this->db_prefix . "users_token` WHERE `token` = '" . mysql_real_escape_string($_COOKIE['user_token']) . "' LIMIT 1"); if (mysql_num_rows($presult) > 0) { $pdata = mysql_fetch_assoc($presult); $this->userdata['is_logged'] = true; if ($pdata['time'] > time() - $this->lifetime) { $data = mysql_fetch_assoc(mysql_query("SELECT * FROM `" . $this->db_prefix . "uzivatele` WHERE `id` = '" . $pdata['user'] . "' LIMIT 1")); foreach ($data as $key => $val) { $this->userdata[$key] = $val; } } else { $this->userdata['id'] = $pdata['user']; $this->logout(); } } } return $this->userdata; } public function is_admin() { return $this->is_logged() && $this->userdata['admin'] == 1; } public function is_textar() { return $this->is_logged() && $this->userdata['admin'] == 2; } Ovšem když u uživatele v db do sloupce admin dosadím 2 má stejné funkce jako hlavní admin. Nenalezám co je špatně že se tak děje. Pak to volám pomocí: Administrátor: $_SESSION['admin'] = $user->admin ; if($_SESSION['admin'] == true) { pro textaře: $_SESSION['admin'] = $user->textar ; if($_SESSION['admin'] == true) { |
||
Kcko Profil |
#2 · Zasláno: 5. 8. 2015, 13:44:23
A kde máš volání is_admin nebo is_textar? Nebo je to magická metoda přes __call a je to vlastně ->admin nebo ->textar?
Já bych si tu funkci teda udělal jinak. public function getUserStatus() { if (!$this->is_logged()) return FALSE; if ($this->userdata['admin'] == 1) return 'admin'; if ($this->userdata['admin'] == 2) return 'textar'; } . . . $_SESSION['admin'] = $this->getUserStatus(); if ($_SESSION['admin'] == 'admin') {} // admin if ($_SESSION['admin'] == 'textar') // textar |
||
Michales Profil |
#3 · Zasláno: 5. 8. 2015, 14:12:16
Kcko:
Pochopil jsem byla to má chyba, díky. |
||
Časová prodleva: 9 let
|
0