Bug: reference, foreach, array (FYI)

From: Date: Wed, 21 Feb 2001 13:40:56 +0000
Subject: Bug: reference, foreach, array (FYI)
Groups: php.general 
Request: Send a blank email to php-general+get-40948@lists.php.net to get a copy of this message
I've found out what's wrong with PHP4 partially. It might help people who are getting errors - document contains no data or like. You may get various strange PHP4 behavior with (possibly without) combination of reference, foreach and array if you don't pass expected values to functions. I've posted Bug Report to www.php.net BugID#9369 Take a look at comments in test2.php -- Yasuo Ohgaki Previous Post was Re: [PHP] Strange behavior: Cannot exit as expected AND Script starts from the beginning, executed TWICE. Anyone?
[If you have comments on this please send e-mail to me] I think PHP4.0.4pl1 has unsafe code for 8bit char codes. I suspect PHP4 does this: PHP4 behavior: Script is executed TWICE and included file is not processed 1) PHP parse script and start executing. - The script check username data in db, if there is the same username, return error. If not, insert new username into db. 2) PHP encounters 8bit char unclean code some where near include() and restart script execution from the beginning for some reason. - The script written to include() file for successful user registration. PHP inserts new username into db at 1st execution, then it finds the same username in db and return error for 2nd execution. If I put die('died here') BEFORE include(), PHP stops execution and outputs 'died here'. but not AFTER include(). I was using 'ob_gzhandler', disabling it does not make difference. This happened when user registration check/insert was done in function defined in included file. PHP also does not log any errors. PHP4 behavior: Script does not process included file and outputs default HTML. 1) PHP parse script and start executing. 2) PHP encounters 8bit char unclean code some where near include(), and outputs default HTML for null output and stops execution for some reason. Therefore, I can see output from die('died here') if I put BEFORE include(), but not AFTER include(). This happened when user registration check/insert was done in the script itself. The script logic is identical. PHP does not log any errors. I use EUC (Extended Unix Code), EUC-JP to be specific, for char code, which is supposed to work well with 8bit char code clean programs. [Environment] OS: RadHat Linux7.0.1/ja(i386) FTP version (no glibc update) Apache: Apache 1.3.17 w/ mod_ssl-2.8.0, mod_gzip-1.13.17a. build from source PHP: PHP4.0.4pl1 w/ pgsql-7.0.3, gd-1.8.3, mhash, mcript and others. build from source. - ECU-JP for all html, php scripts PHP Configure: './configure' '--with-apxs' '--disable-short-tags' '--enable-bcmath' '--with-zlib-dir' '--enable-ftp' '--with-imap' '--with-mhash' '--with-mcrypt' '--with-pgsql' '--with-swf' '--enable-sysvsem' '--enable-sysvshm' '--with-zlib' '--enable-iconv' '--with-kakasi' '--enable-jstring' '--enable-mbregex' '--with-namazu' '--with-gd=../gd-1.8.3/' '--with-jpeg-dir=/usr' '--with-xpm-dir=/usr/X11R6' I cannot think of any reasonable explanation for this strange PHP4 behavior other than possibility that glibc has bugs. (8bit char unsafe code, etc. I haven't research about my exact glibc version nor bugs yet.) Any comments appreciated. -- Yasuo Ohgaki -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net For additional commands, e-mail: php-general-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net
_________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

« previous php.general (#40948) next »