* Finally fixed that weird To/Cc/Bcc bug (it might be with PHP or browsers
authorfidian <fidian@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Mon, 23 Apr 2001 14:51:27 +0000 (14:51 +0000)
committerfidian <fidian@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Mon, 23 Apr 2001 14:51:27 +0000 (14:51 +0000)
  or whatnot -- but this now works properly).

Bug description:
  - Add multiple people to your address book
  - Select lots for the To, and one for CC or BCC
  - When you return to the compose form, the To list would be right, but
    the CC and/or BCC list would have extra addresses appendeded.
  - Extremely weird.  Seemed to have a cascading affect, as though the CC
    array needed to be >= the to array, and likewise for the BCC >= CC size.

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1296 7612ce4b-ef26-0410-bec9-ea0150e637f0

src/addrbook_search_html.php
src/compose.php

index 3602ef24fd000c26720e6badd5ee17f2929c21d7..4ff7aca37b8c926608b22954adb539a9bf028398 100644 (file)
@@ -53,8 +53,9 @@
 
       if(sizeof($res) <= 0) return;
 
-      printf('<FORM METHOD=post ACTION="%s?html_addr_search_done=true">'."\n",
-             $PHP_SELF);
+      echo '<form method=post action="' . $PHP_SELF . "\">\n";
+      echo '<input type=hidden name="html_addr_search_done" value="true">';
+      echo "\n";
       addr_insert_hidden();
       $line = 0;
 
 
       print "</TR>\n";
       
-      while(list($undef, $row) = each($res)) {
-         printf("<tr%s nowrap><td nowrap align=center width=\"5%%\">".
-                "<input type=checkbox name=\"send_to_search[]\" value=\"%s\">&nbsp;To".
-                "<input type=checkbox name=\"send_to_cc_search[]\" value=\"%s\">&nbsp;Cc&nbsp;".
-                "<input type=checkbox name=\"send_to_bcc_search[]\" value=\"%s\">&nbsp;Bcc&nbsp;".
-                "<td nowrap>&nbsp;%s&nbsp;<td nowrap>&nbsp;".
-                "%s".
-                "<td nowrap>&nbsp;%s&nbsp;",
-                ($line % 2) ? " bgcolor=\"$color[0]\"" : "", 
-                htmlspecialchars($row["email"]), htmlspecialchars($row["email"]), htmlspecialchars($row["email"]), 
-                $row["name"], $row["email"], $row["label"]);
+      foreach ($res as $row) {
+         echo '<tr';
+        if ($line % 2) echo ' bgcolor="' . $color[0] . '"';
+        echo ' nowrap><td nowrap align=center width="5%">';
+        echo '<input type=checkbox name="send_to_search[T' . $line . ']" value = "' .
+           htmlspecialchars($row['email']) . '">&nbsp;To&nbsp;';
+        echo '<input type=checkbox name="send_to_search[C' . $line . ']" value = "' .
+           htmlspecialchars($row['email']) . '">&nbsp;Cc&nbsp;';
+        echo '<input type=checkbox name="send_to_search[B' . $line . ']" value = "' .
+           htmlspecialchars($row['email']) . '">&nbsp;Bcc&nbsp;';
+         echo '</td><td nowrap>&nbsp;' . $row['name'] . '&nbsp;</td>';
+        echo '<td nowrap>&nbsp;' . $row['email'] . '&nbsp;</td>';
+        echo '<td nowrap>&nbsp;' . $row['label'] . '&nbsp;</td>';
          if($includesource)
-            printf("<td nowrap>&nbsp;%s", $row["source"]);
-         
-         print "</TR>\n";
-         $line++;
+           echo '<td nowrap>&nbsp;' . $row['source'] . '&nbsp;</td>';
+        echo "</tr>\n";
+        $line ++;
       }
       printf('<TR><TD ALIGN=center COLSPAN=%d><INPUT TYPE=submit '.
              'NAME="addr_search_done" VALUE="%s"></TD></TR>',
index 33bc51d03a9fec0c934cc20489cf8eec51acf062..edec6ed08c445bc222ea7a3ea0f4575346bff7a1 100644 (file)
    } else if (isset($html_addr_search_done)) {
       displayPageHeader($color, $mailbox);
 
-      if (isset($send_to_search) && is_array($send_to_search))
-      {
-         for ($i=0; $i < count($send_to_search); $i++) {
-            if ($send_to)
-               $send_to .= ", ";
-            $send_to .= $send_to_search[$i];   
-         }
-      }
-      
-      if (isset($send_to_cc_search) && is_array($send_to_cc_search))
-      {
-         for ($i=0; $i < count($send_to_cc_search); $i++) {
-            if ($send_to_cc)
-               $send_to_cc .= ", ";
-            $send_to_cc .= $send_to_cc_search[$i];   
-         }
-      }
-      
-      if (isset($send_to_bcc_search) && is_array($send_to_bcc_search))
-      {
-         for ($i=0; $i < count($send_to_bcc_search); $i++) {
-            if ($send_to_bcc)
-               $send_to_bcc .= ", ";
-            $send_to_bcc .= $send_to_bcc_search[$i];   
+      if (isset($send_to_search) && is_array($send_to_search)) {
+         foreach ($send_to_search as $k => $v) {
+           if (substr($k, 0, 1) == 'T') {
+               if ($send_to)
+                  $send_to .= ', ';
+               $send_to .= $v;
+           }
+           elseif (substr($k, 0, 1) == 'C') {
+              if ($send_to_cc)
+                 $send_to_cc .= ', ';
+              $send_to_cc .= $v;
+           }
+           elseif (substr($k, 0, 1) == 'B') {
+              if ($send_to_bcc)
+                 $send_to_bcc .= ', ';
+              $send_to_bcc .= $v;
+           }
          }
       }