Eusebio100 Posted September 2, 2018 Share Posted September 2, 2018 Hola, tengo un multitienda que he actualizado recientemente a 1.6.1.20, realmente no se si el problema es de ahora o me viene de atrás, pero me acabo de dar cuenta ahora. La cuestión es que prestashop me inyecta dos cookies en cualquier tienda que no sea la nº 1; he comprobado que se trata de la cookie de sesión correspondiente y una segunda cookie del admin de prestashop (adjunto capturas). Alguien más ha detectado este problema? Alguna solución? Gracias de antemano. Link to comment Share on other sites More sharing options...
Eusebio100 Posted September 3, 2018 Author Share Posted September 3, 2018 He estado mirando las tiendas en el foro de comentarios y por lo que veo esa cookie con 20 días de caducidad es bastante normal, pero algunas no la tienen. Como dije antes, en mi caso la tienda con id 1 solo tiene la cookie de sesión que finaliza al cerrar sesión, en el resto sea cual sea el id siempre aparece esa cookie de 20 días. Entiendo que lo normal sería que solo se inyectara la cookie de sesión, por eso me gustaría saber como evitar esa segunda cookie. Alguna idea? Link to comment Share on other sites More sharing options...
Eusebio100 Posted September 3, 2018 Author Share Posted September 3, 2018 (edited) Lo que he hecho hasta ahora es un override en la función construct para hacer que la cookie del admin caduque al cerrar sesión; ya de paso he modificado para que en las cookies aparezca el nombre de mi tienda en lugar de "Prestashop". No se si esto estará bien, pero parece que funciona. class Cookie extends CookieCore { public function __construct($name, $path = '', $expire = null, $shared_urls = null, $standalone = false, $secure = false) { if ($name === 'ps-s1'){ $name_shop = 'Tienda1'; }elseif ($name === 'ps-s6'){ $name_shop = 'Tienda2'; }elseif ($name === 'psAdmin'){ $name_shop = 'Grupo-tienda'; }else{ $name_shop = 'Prestashop'; } $this->_content = array(); $this->_standalone = $standalone; $this->_expire = isset($expire) ? (int)$expire : 0; $this->_path = trim(($this->_standalone ? '' : Context::getContext()->shop->physical_uri).$path, '/\\').'/'; if ($this->_path{0} != '/') { $this->_path = '/'.$this->_path; } $this->_path = rawurlencode($this->_path); $this->_path = str_replace('%2F', '/', $this->_path); $this->_path = str_replace('%7E', '~', $this->_path); $this->_domain = $this->getDomain($shared_urls); $this->_name = $name_shop.'-'.md5(($this->_standalone ? '' : _PS_VERSION_).$name.$this->_domain); $this->_allow_writing = true; $this->_salt = $this->_standalone ? str_pad('', 8, md5('ps'.__FILE__)) : _COOKIE_IV_; $this->_cipherTool = new Rijndael(_RIJNDAEL_KEY_, _RIJNDAEL_IV_); $this->_secure = (bool)$secure; $this->update(); } } Edited September 3, 2018 by Eusebio100 (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now