2013-07-13 4 views
3

Я собираюсь попытаться изо всех сил объяснить это, потому что я не уверен, полностью ли я понимаю, что происходит.CodeIgniter, ограничивающий количество логинов

Я создал приложение для кодирования, где пользователь должен войти в систему. Вход в систему работает последние три недели, и с тех пор я его не трогал. Сегодня после успешного входа в систему в несколько раз под пользователем администратора я внезапно не могу войти с помощью этой конкретной учетной записи, хотя я могу с другими учетными записями.

С тех пор я разорвал свой код, пытаясь выяснить, что происходит. Кажется, что процесс входа в систему работает, но после того, как сеансы установлены, он отключает их, и пользователь больше не выполнил вход в систему.

Вопрос в том, есть ли количество раз, когда сеансы могут быть установлены на определенном пользователь или это может быть связано с настройками phpmyadmin? Я нахожусь в недоумении здесь только о том, что делать, у меня никогда не было ничего подобного, и, честно говоря, не имеет никакого смысла, что это произойдет только с одним пользователем.

Это проверка Войти в мой контроллер

function checkLogin(){ 
    //This function checks the login to make sure that the user is indeed entering the right email and password 
    $salt = '******'; 
    $loginObject = array(
     'email' => $this->input->post('email'), 
     'password' => md5($salt . $this->input->post('password')) 
    ); 
    $login  = $this->users_model->checkUser($loginObject); 

    if($login == true) { 
     $currentUser = $login; 
     $this->session->set_userdata('currentUser', $currentUser); 
     $this->session->set_userdata('loggedin', true); 
     $this->user = $this->session->userdata('currentUser'); 
     $type = $this->users_model->getUser($this->user->user_id); 
     switch($type[0]->type) { 
      case 1: 
       redirect('/myStories/'.$this->user->pen_name); 
       break; 
      case 2: 
       redirect('recent/'); 
       break; 
      case 3: 
       redirect('recent/'); 
       break; 
      case 'banned': 
       $this->session->sess_destroy(); 
       redirect('banned/'); 
       break; 
      case 'deactive': // deactivate 
       redirect('home'); 
       break; 
     } 
    } else { 
     redirect('home/errorPage'); 
    } 
} 

и это то, что у меня есть в моей модели

public function checkUser($loginObject) 
{ 
    //This sets the email and the password from the loginObject and then gets the user 
    $this->db->where('email', $loginObject['email']); 
    $this->db->where('password', $loginObject['password']); 
    $query = $this->db->get('user_tbl'); 
    if($query->num_rows() > 0){ 
     return $query->row(); 
    }else{ 
     return false; 
    } 
} 

Как я сказал, что это работает для всех пользователей, кроме одного, и до того, как час назад тоже работал над этим.

+0

1) Показать код 2) Существует небольшая разница между переменными сеанса PHP и Code Igniter в CI envoirment. –

+0

Что делает phpMyAdmin с Codeigniter? Вы имеете в виду логин MySQL? – Dai

+0

@ noobie-php только что разместил мой контроллер и модель, извините, когда я писал, он отправил его, прежде чем я захочу. – zazvorniki

ответ

0

Я выяснил, в чем проблема с пользователем. Кажется, весь мой код был в порядке, но что-то, что было помещено в пользовательскую биографию в базе данных, которая вызывала сессию. Я играл с изображениями в биографии пользователя и скопировал gif из google, чтобы посмотреть, как он будет выглядеть, по-видимому, теги -webkit «сломали» сеансы.

<a id="irc_mil" style="font-family: Times; font-size: medium; text-align: center; border: 0px;" href="http://www.pixeljoint.com/pixelart/16196.htm"><img id="irc_mi" style="background-image: -webkit-linear-gradient(45deg, #efefef 25%, transparent 25%, transparent 75%, #efefef 75%, #efefef), -webkit-linear-gradient(45deg, #efefef 25%, transparent 25%, transparent 75%, #efefef 75%, #efefef); -webkit-background-size: 21px; background-size: 21px; box-shadow: rgba(0, 0, 0, 0.648438) 0px 5px 35px; -webkit-box-shadow: rgba(0, 0, 0, 0.648438) 0px 5px 35px; margin-top: 230px; background-position: 0px 0px, 10px 10px;" src="http://www.pixeljoint.com/files/icons/full/cat__r177950541.gif" alt="" width="23" height="33" /></a> 

После удаления тегов -webkit все работает как следует. Спасибо всем за вашу помощь! Теперь я должен идти и препятствовать пользователям делать это!

Смежные вопросы