| 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: 11 let
|
|||
0