ID: 10026 User Update by: [EMAIL PROTECTED] Old-Status: Closed Status: Open Bug Type: Scripting Engine problem Operating system: RH Linux 6.1 PHP Version: 4.0.4pl1 Description: For loop always execute I have solved the problem in another way. BUT; The value of $c *IS* 0 when entering for loop and the stange behavior of the for-loop explained above happens. I think it maybe is other part of the code BEFORE this function who make som "crash" in the system so this happen. I've never seen this before neither after so i dont know what more to say :) But for sure it was a strange behavior of PHP in this code. We are two persons coding this system and we both spent a lot of time trying to find out what happens (with echo and other debug code) but we could'nt find out. We had to drop the for-loop because it didnt work as it should. Previous Comments: --------------------------------------------------------------------------- [2001-06-17 05:06:32] [EMAIL PROTECTED] I have spent twenty mins trying to recreate this, before you start your for loop please check the value of $c (echo it out etc) and make sure its what you expected. I very much doubt this is a bug, if the value of $c is indeed 0 then please reopen this report. - James --------------------------------------------------------------------------- [2001-04-04 08:34:26] [EMAIL PROTECTED] I'm sorry, but all other script i make work ok. Its just this one that cause the problem. I dont know how to make another script for you as i cant reproduce the error in any 5 line of code. - Svein --------------------------------------------------------------------------- [2001-04-04 08:28:35] [EMAIL PROTECTED] I asked for 'self-containing' script. ie. one that doesn't need anything outside but works as is. This example script you added is useless and can not be used to reproduce anything. Please create a SHORT (max 5 lines) script that doesn't work. --Jani --------------------------------------------------------------------------- [2001-04-04 06:26:22] [EMAIL PROTECTED] The parameter passed to the function i prev. post is the stricture returned from imag_fetchstructure... - Svein --------------------------------------------------------------------------- [2001-04-04 06:24:05] [EMAIL PROTECTED] I post the function that cause the problem. Its the for-loop int the wery bottom of the function that cause my problem. If you can see any wrong logic in the code please let me know :) I have solved this problem in another way in my current code. The code below have worked for a long time, but stopped working and caused described problem after installing - i think php4.0.4 or 4.0.4pl1 Even if i surrond the for-loop with this : echo "<br>First : $c"; if ($c!=0) { echo "<br>Second : $c"; for (..) { echo "<br>Inside for-loop..."; ... } } the first echo output 0 but the second echo output another value like 1 or 2. The strange thing is that if the FIRST echo output 0 the SECOND echo doesnt execute **BUT** the for-loop execute! // Parse the parts of message and get info on each function parseparts($ref, $ofs='') { global $part_no, $msg_part, $imap, $sorted_msgs, $msg_no, $bgcolor, $background, $folder; global $sort_order; $part_no++; $msg_part[$part_no] = $ref; $msg_part[$part_no]->index = $ofs; $ac = count($ref->dparameters); for ($i=0; $i<$ac; $i++) if (eregi($ref->dparameters[$i]->attribute, 'filename')) { $msg_part[$part_no]->filename = $ref->dparameters[$i]->value; break; }; $ac = count($ref->parameters); for ($i=0; $i<$ac; $i++) if (eregi($ref->parameters[$i]->attribute, 'name')) { $msg_part[$part_no]->name = $ref->parameters[$i]->value; break; }; if (!strcmp($msg_part[$part_no]->subtype, 'HTML')) { // Get background for HTML message $tmp = @imap_fetchbody($imap, $sorted_msgs[$msg_no-1], $msg_part[$part_no]->index); // Encode data switch($msg_part[$part_no]->encoding) { case ENCBASE64 : $tmp = @imap_base64($tmp); break; case ENCQUOTEDPRINTABLE : $tmp = @imap_qprint($tmp); break; }; // Background color if (preg_match('/<BODY.*?BGCOLOR=([^s]+)>/si', $tmp, $tmp2)) { $bgcolor=$tmp2[1]; $bgcolor = 'BGCOLOR="'.preg_replace('/"/', '', $bgcolor).'"'; } else $bgcolor='BGCOLOR="#ffffff"';; // Remove any " // Background image if (preg_match('/<BODY.*?BACKGROUND=([^s]+)>/si', $tmp, $tmp2)) $tmp=$tmp2[1]; else $tmp=''; if (!empty($tmp)) { $background = "background="getpart.phtml?1get_type=1&part_id=".rawurlencode(ereg_replace(""", '', $tmp))."""; } else $background = ''; }; $c = count($ref->parts); for ($p=0; $p<$c; $p++) { if (empty($ofs)) $of = ''.($p+1); else $of = $ofs.'.'.($p+1); parseparts($ref->parts[$p], $of); }; }; // Get info on each parts parseparts($msg_struct); --------------------------------------------------------------------------- The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online. Full Bug description available at: http://bugs.php.net/?id=10026 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]