PHP 4.0 Bug #10026 Updated: For loop always execute

From: Date: Wed, 04 Apr 2001 12:34:27 +0000
Subject: PHP 4.0 Bug #10026 Updated: For loop always execute
Groups: php.dev 
Request: Send a blank email to php-dev+get-50833@lists.php.net to get a copy of this message
ID: 10026 User Update by: svein@edbc.no Old-Status: Feedback Status: Open Bug Type: *General Issues Description: For loop always execute 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 Previous Comments: --------------------------------------------------------------------------- [2001-04-04 08:28:35] sniper@php.net 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] svein@edbc.no The parameter passed to the function i prev. post is the stricture returned from imag_fetchstructure... - Svein --------------------------------------------------------------------------- [2001-04-04 06:24:05] svein@edbc.no 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); --------------------------------------------------------------------------- [2001-04-01 13:34:29] sniper@php.net As I can not reproduce this with latest CVS please try the latest snapshot from http://snaps.php.net/ And if happens with it too, create one short but self-containing script which can be used to reproduce this anywhere without modifications and add it into this bug report. --Jani --------------------------------------------------------------------------- [2001-03-29 12:57:01] svein@edbc.no When i said ONCE - i didnt mean ONCE :) It ALWAYS happen in the code referred... --------------------------------------------------------------------------- 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

« previous php.dev (#50833) next »