Вы не зашли.
    
        
        
                не может быть 2 primary ключа. он по определению может быть только 1.
если на login стоит primary и все его отличие от обычного id в типе varchar, то разница особо заметна не будет. хотя int, конечно, всегда будет быстрее varchar
        
        
                
    
 
        
        
        
                Вот такой парадокс:
Код:
| span style="color: #0000BB"><?php//Столбцы: id и who - int и unsigned$array = $sql->query("SELECT `id`, `who`, `login`, `pw` FROM `users` WHERE `login`='$login' LIMIT 1;")->fetch_assoc();$_SESSION['id'] = $array['id'];$_SESSION['who'] = $array['who'];//Почему тогда?$id = isset($_GET['id']) ? abs((int)$_GET['id']) : 0;if($_SESSION['id'] !== $id and 1 < $_SESSION['who'])  {    header('Location: /?-=usr');    exit();  }//Работает??> | 
Я уже нашел выход, но все же почему так, если я везде int указал в базе?
Код:
| span style="color: #0000BB"><?php$_SESSION['id'] = (int)$array['id'];$_SESSION['who'] = (int)$array['who'];?> | 
 
        
                            
                Отредактировано tipsun (2011.01.15 17:05)
            
        
                
     
        
        
                потому что INT оно только в базе, а при выборке оно всегда string. это же php.
        
        
                
    
 
        
        
                СпС. Я думал что снова где-то при переделке ошибку допустил.
        
                            
                Отредактировано tipsun (2011.01.15 20:08)
            
        
                
     
        
        
                зачем ты проверяешь тип переменной? не нужно оно тебе.
        
        
                
    
 
        
        
                Я проверяю значение.
who = 1 - админ, 2 - модер, 3 - юзер;
Чтоб получить доспук к изменению своей анкеты надо чтоб авторизация совпадала с ид (который был отправлен формой) либо это был админ
Если оба значения неверны, то выкидывает на главную
        
                            
                Отредактировано tipsun (2011.01.16 08:08)
            
        
                
     
        
        
                проверка значения в твоем случае должна выглядеть как 
!=, ты же проверяешь не только значение, но и тип переменной, чего в твоем случае делать не нужно.
        
        
                
    
 
        
        
                АА. СПС))
А как быть с 1 < $_SESSION['who']
- Тип проверяться не будет?
- нет оказывается 
        
                            
                Отредактировано tipsun (2011.01.16 14:02)
            
        
                
     
        
        
                Надо легуляркой убрать все пробелы и переносы...
Но кроме текста тот, что в тэгах <pre> ... </pre>