![]() |
Session - Object Serialize Problem - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20) +--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23) +--- Thread: Session - Object Serialize Problem (/showthread.php?tid=20126) |
Session - Object Serialize Problem - El Forum - 06-29-2009 [eluser]Multisnet[/eluser] Hello, I'm facing a problem when I try to serialize an object and use it in a CI base session. Someone have this working? A brief example of my code. In the same controller: Code: function Page1(){ It prints nothing! However if I change the $people_serialized = array('people_s' => 'TEST!!!!!') in the second page it prints the word "TEST!!!!!!". Is it possible to use serialization on CI Sessions? Please help me.. I'm tired of trying to resolve this :down: Thanks in advance Session - Object Serialize Problem - El Forum - 06-29-2009 [eluser]Multisnet[/eluser] I solved my problem using the EckoSession available at EckoSession. Session - Object Serialize Problem - El Forum - 06-29-2009 [eluser]sl3dg3hamm3r[/eluser] [quote author="Multisnet" date="1246308857"]I solved my problem using the EckoSession available at EckoSession.[/quote] Since version 1.7, CI also supports sessions in a DB-table, natively. No need for this library. I guess your serialized object got too long (> 2KB), that's why it can't be transfered anymore with a cookie. See chapter "Saving Session Data to a Database" here. Session - Object Serialize Problem - El Forum - 06-29-2009 [eluser]TheFuzzy0ne[/eluser] Also, have you overridden the session class at all? Often I'll debug some code and forget I've left an echo statement in there somewhere. Session - Object Serialize Problem - El Forum - 06-29-2009 [eluser]Chad Fulton[/eluser] I think it is likely that you may be running into the 4kb size limit on session data. When I tested this by serializing one of my own CI objects, I got a 49kb string, although depending on your configuration it might be less for you. There are a couple of potential solutions: (1) You could use send only the actual data, and reconstitute the People model on the other side. (2) You could load the People class by $this->people = new People(); rather than loading it as a model, and then, in the People constructor, call $this->ci =& get_instance(); and make all of the calls in the People model go through $this->ci->db->... or whatever. Then, you could define an __sleep() function which dereferenced the $this->ci variable ($this->ci = null), and an __wakeup() function which reconnected it ($this->ci =& get_instance() ![]() I suspect (1) would be easier / better, if possible. |