0
每次用戶登錄時,我都會提取包含權限的序列化數組。當我反序列化數組並嘗試將每個權限賦給常量時,不存在的常量返回TRUE。舉例來說,這裏是我的電話數據庫:不存在常量返回true
$req_level = $pdo->prepare('SELECT * FROM users_levels WHERE level_id = ?');
$req_level->execute(array($row['level_id']));
$row_level = $req_level->fetch();
$user_level_name = $row_level['name'];
$permissions = unserialize($row_level['permissions']);
foreach ($permissions as $permission) {
define(strtoupper($permission), 1);
}
$req_level->closeCursor();
我的數組($權限)是:
Array ([0] => users_read [1] => users_update [2] => customers_read [3] => customers_update)
當我打電話的所有可能的常量,我應該得到TRUE對於那些現有和FALSE對於那些非現有的,但這裏是我...
USERS_READ : <?=USERS_READ?> <br/>
USERS_UPDATE : <?=USERS_UPDATE?> <br/>
USERS_CREATE : <?=USERS_CREATE?> <br/>
USERS_DELETE : <?=USERS_DELETE?> <br/>
當我贊同常數...
- USERS_READ:1
- USERS_UPDATE:1
- USERS_CREATE:USERS_CREATE
- USERS_DELETE:USERS_DELETE
所以一切都在這種情況下返回TRUE。
有什麼想法?
這就是我在這裏所做的:define(strtoupper($ permission),1);不是? – 2015-03-02 16:16:06
'error_reporting(E_ALL); ini_set('display_errors','1')' – AbraCadaver 2015-03-02 16:21:04