Witam. Napotkałem bardzo dziwny(przynajmniej dla mnie) problem, a mianowicie mam takie funkcje w klasie Sessions
  1. public function sid() {
  2. return substr(session_id(), 3, 8);
  3. }
  4. public function checkSid($id){
  5. $rows = $this->select()->from($this->_name)->where('id = ?', $id)->limit('1')->query(zend_db::FETCH_OBJ)->fetchAll();
  6. $object = $rows[0];
  7. return $object->idSesji;
  8. }
  9. public function getVar($name){
  10. if($_SESSION[$name]){
  11. return $_SESSION[$name];
  12. }
  13. return false;
  14. }
  15. public function checkSession(){
  16. if($_GET['sid'] == $this->sid() && $this->getVar('zalogowany') == true && $this->checkSid($this->getVar('id')) == $_GET['sid']){
  17. return true;
  18. }
  19. return false;
  20. }
i taki mały kodzik w kontrolerze
  1. if(!$sessions->checkSession()){
  2. $this->_redirect('/');
  3. }

Problem polega na tym, że gdy URL wygląda mniej więcej tak:
Kod
/kontroler/akcja/?sid=...
to wszystko normalnie działa, warunek w kontrolerze zwraca false, ale gdy URL wygląda tak:
Kod
/kontroler/akcja/parametr1/wartosc1/parametr2/wartosc2/?sid=...
to za pierwszym wczytaniem strony działa, a za niszczy sesje i przenosi do strony głównej. Zakomentowałem ten warunek i wyświetliłem wszystkie sprawdzane zmienne w funkcji checkSession() i wszystko się zgadza. Kompletnie nie wiem dlaczego przy parametrach w URL funkcja zwraca false mimo tego, że zmienne wszystkie się zgadzają. Proszę o pomoc smile.gif