Re: __sleep() strange behavior with file writting and SESSION using

From: Date: Tue, 20 Nov 2007 21:53:55 +0000
Subject: Re: __sleep() strange behavior with file writting and SESSION using
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-264880@lists.php.net to get a copy of this message
Sorry but it goes throught __sleep() as session serializes objects before storing them Proof is that "done!" is echoed. Step by step debugging also prove that , the only thing is that file_put_contents, doesn't execute, but returns a value... 2007/11/20, chetan rane <chetan.d.rane@gmail.com>: > > This aint a bug > > because __sleep is called only when you serialize an object and not when > you assign it to a session Variable; > > On Nov 21, 2007 12:21 AM, Julien Pauli < doctorrock83@gmail.com> wrote: > > > Consider that very simple code, that runs on PHP 5.2.5 onto a Windows > > machine : > > <?php > > class a > > { > > public $b; > > > > public function __sleep() > > { > > file_put_contents("log.txt","ok" . PHP_EOL,FILE_APPEND); > > echo "done!"; > > return array(); > > } > > } > > > > $a = new a; > > serialize($a); > > ?> > > > > No problem here, log.txt is writtable, when it passes on the serialize() > > instruction, it goes to __sleep and works well. > > "OK\r\n" is appended to the log file , and "done!" is displayed. > > > > > > > > Now consider this : > > > > <?php > > session_start(); > > class a > > { > > public $b; > > > > public function __sleep() > > { > > file_put_contents("log.txt","ok" . PHP_EOL,FILE_APPEND); > > echo "done!"; > > return array(); > > } > > } > > > > $a = new a; > > $_SESSION['obj'] = $a; > > ?> > > > > In this case, when the object is going in the session, it naturally > > passes > > throught __sleep(). > > The problem is that file_put_contents() doesn't work -> the file is not > > appended "OK\r\n" as it should be. > > "done!" is displayed , and if you look at the return value of > > file_put_contents ( number of bytes that have been written ) : it's all > > right ! It simply doesn not write to the file. > > > > Anyone has an idea ? > > Is this a bug ? > > Thx :) > > > > > > -- > Have A plesant Day > Chetan. D. Rane > Location: India > Contact: +91-9844922489 > otherID: chetscool@yahoo.com > chetrane@rediffmail.com >

« previous php.general (#264880) next »