- tweaked search functions
authorlkehresman <lkehresman@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 28 Jul 2000 15:20:50 +0000 (15:20 +0000)
committerlkehresman <lkehresman@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 28 Jul 2000 15:20:50 +0000 (15:20 +0000)
- made the rest of SM aware of search so it works well with sessions

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

functions/imap_search.php
functions/mailbox_display.php
src/delete_message.php
src/move_messages.php
src/read_body.php
src/search.php

index 3759a45a9d6a2b238a3306d8b343690d71993c43..010d2c05d8b3c93cb23dcfa3239148ec01f8068a 100644 (file)
       include("../functions/mime.php");
 
 function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$color) {
-       global $msgs;
-       $urlMailbox = urlencode($mailbox);
-# Construct the Search QuERY
-       $ss = "a001 SEARCH ALL $search_where \"$search_what\"\r\n";
-       fputs($imapConnection,$ss);
-
-#Read Data Back From IMAP
-       $readin = sqimap_read_data ($imapConnection, "a001", true, $result, $message);
-       unset($messagelist); $msgs=""; $c = 0;
-#Keep going till we find the SEARCH responce
-       while ($c < count($readin)) {
-#Check to see if a SEARCH Responce was recived
-               if (substr($readin[$c],0,9) == "* SEARCH ")
-                       $messagelist = explode(" ",substr($readin[$c],9));
-               else
-                       $errors = $errors.$readin[$c];
-               $c++;
-       }
-#If nothing is found * SEARCH should be the first error else echo errors
-       if (strstr($errors,"* SEARCH")) {
-               echo "<br><CENTER>No Messages Found</CENTER>";
-               return;
-       } else {
-               echo "<!-- ".$errors." -->";
-       }
-echo "<br>";
-#HACKED CODED FROM ANOTHER FUNCTION, Could Probably dump this and mondify exsitising code with a search true/false varible.
-
-                global $sent_folder;
-
-            for ($q = 0; $q < count($messagelist); $q++) {
-                       $messagelist[$q] = trim($messagelist[$q]);
-                                        if ($mailbox == $sent_folder)
-                        $hdr = sqimap_get_small_header ($imapConnection, $messagelist[$q], true);
-                                        else
-                        $hdr = sqimap_get_small_header ($imapConnection, $messagelist[$q], false);
-                                        $from[$q] = $hdr->from;
-                                        $date[$q] = $hdr->date;
-                                        $subject[$q] = $hdr->subject;
-                                       $id[$q] = $messagelist[$q];
-
-               $flags[$q] = sqimap_get_flags ($imapConnection, $messagelist[$q]);
-            }
+   global $msgs;
+   $urlMailbox = urlencode($mailbox);
+   
+   # Construct the Search QuERY
+   
+   $ss = "a001 SEARCH ALL $search_where \"$search_what\"\r\n";
+   fputs($imapConnection,$ss);
+
+   # Read Data Back From IMAP
+   $readin = sqimap_read_data ($imapConnection, "a001", true, $result, $message);
+   unset($messagelist); $msgs=""; $c = 0;
+
+   #Keep going till we find the SEARCH responce
+   while ($c < count($readin)) {
+
+      #Check to see if a SEARCH Responce was recived
+      if (substr($readin[$c],0,9) == "* SEARCH ")
+         $messagelist = explode(" ",substr($readin[$c],9));
+      else
+         $errors = $errors.$readin[$c];
+      $c++;
+   }
+
+   #If nothing is found * SEARCH should be the first error else echo errors
+   if (strstr($errors,"* SEARCH")) {
+      echo "<br><CENTER>No Messages Found</CENTER>";
+      return;
+   } else {
+      echo "<!-- ".$errors." -->";
+   }
+
+   # HACKED CODED FROM ANOTHER FUNCTION, Could Probably dump this and mondify 
+   # exsitising code with a search true/false varible.
+
+   global $sent_folder;
+   for ($q = 0; $q < count($messagelist); $q++) {
+      $messagelist[$q] = trim($messagelist[$q]);
+      if ($mailbox == $sent_folder)
+         $hdr = sqimap_get_small_header ($imapConnection, $messagelist[$q], true);
+      else
+         $hdr = sqimap_get_small_header ($imapConnection, $messagelist[$q], false);
+         $from[$q] = $hdr->from;
+         $date[$q] = $hdr->date;
+         $subject[$q] = $hdr->subject;
+         $id[$q] = $messagelist[$q];
 
-         $j = 0;
-         while ($j < count($messagelist)) {
-            $date[$j] = ereg_replace("  ", " ", $date[$j]);
-            $tmpdate = explode(" ", trim($date[$j]));
-
-            $messages[$j]["TIME_STAMP"] = getTimeStamp($tmpdate);
-            $messages[$j]["DATE_STRING"] = getDateString($messages[$j]["TIME_STAMP"]);
-            $messages[$j]["ID"] = $id[$j]; 
-            $messages[$j]["FROM"] = decodeHeader($from[$j]);
-            $messages[$j]["SUBJECT"] = decodeHeader($subject[$j]);
-
-            $num = 0;
-            while ($num < count($flags[$j])) {
-               if ($flags[$j][$num] == "Deleted") {
-                  $messages[$j]["FLAG_DELETED"] = true;
-               }
-               else if ($flags[$j][$num] == "Answered") {
-                  $messages[$j]["FLAG_ANSWERED"] = true;
-               }
-               else if ($flags[$j][$num] == "Seen") {
-                  $messages[$j]["FLAG_SEEN"] = true;
-               }
-               else if ($flags[$j][$num] == "Flagged") {
-                  $messages[$j]["FLAG_FLAGGED"] = true;
-               }
-               $num++;
-            }
-            $j++;
-         }
+         $flags[$q] = sqimap_get_flags ($imapConnection, $messagelist[$q]);
+      }
 
-         /** Find and remove the ones that are deleted */
-         $i = 0;
-         $j = 0;
-         while ($j < count($messagelist)) {
-            if ($messages[$j]["FLAG_DELETED"] == true) {
-               $j++;
-               continue;
+      $j = 0;
+      while ($j < count($messagelist)) {
+         $date[$j] = ereg_replace("  ", " ", $date[$j]);
+         $tmpdate = explode(" ", trim($date[$j]));
+
+         $messages[$j]["TIME_STAMP"] = getTimeStamp($tmpdate);
+         $messages[$j]["DATE_STRING"] = getDateString($messages[$j]["TIME_STAMP"]);
+         $messages[$j]["ID"] = $id[$j]; 
+         $messages[$j]["FROM"] = decodeHeader($from[$j]);
+         $messages[$j]["SUBJECT"] = decodeHeader($subject[$j]);
+
+         $num = 0;
+         while ($num < count($flags[$j])) {
+            if ($flags[$j][$num] == "Deleted") {
+               $messages[$j]["FLAG_DELETED"] = true;
+            }
+            else if ($flags[$j][$num] == "Answered") {
+               $messages[$j]["FLAG_ANSWERED"] = true;
+            }
+            else if ($flags[$j][$num] == "Seen") {
+               $messages[$j]["FLAG_SEEN"] = true;
             }
-            $msgs[$i] = $messages[$j];
+            else if ($flags[$j][$num] == "Flagged") {
+               $messages[$j]["FLAG_FLAGGED"] = true;
+            }
+            $num++;
+         }
+         $j++;
+      }
 
-            $i++;
+      /** Find and remove the ones that are deleted */
+      $i = 0;
+      $j = 0;
+      while ($j < count($messagelist)) {
+         if ($messages[$j]["FLAG_DELETED"] == true) {
             $j++;
+            continue;
          }
-         $numMessages = $i;
+         $msgs[$i] = $messages[$j];
 
- // There's gotta be messages in the array for it to sort them.
-
-# Carn't Use the Display messages function it assumes messages are in order.
-# Again More code Hacked from else where
-
-# AT THE MOMENT YOU CARN'T SORT SEARCH RESULTS
-
-# ACTULLY THE CODE IS PROLLY BROKEN ANY HOW!
-
-       if (count($messagelist) > 0) {
-       $j=0;
-echo "<CENTER>"._("Found")." ".count($messagelist)." "._("Messages")."</CENTER>\n";
-echo "<br>\n";
-echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>";
-      echo "<TR><TD BGCOLOR=\"$color[0]\">";
-
-      echo "\n\n\n<FORM name=messageList method=post action=\"move_messages.php?msg=$msg&mailbox=$urlMailbox&startMessage=0\">";
-      echo "<TABLE BGCOLOR=\"$color[0]\" COLS=2 BORDER=0 cellpadding=0 cellspacing=0>\n";
-      echo "   <TR>\n";
-      echo "      <TD WIDTH=60% ALIGN=LEFT>\n";
-      echo "         <NOBR><SMALL>". _("Move selected to:") ."</SMALL>";
-      echo "         <TT><SMALL><SELECT NAME=\"targetMailbox\">";
-
-      $boxes = sqimap_mailbox_list($imapConnection);
-      for ($i = 0; $i < count($boxes); $i++) {
-         if ($boxes[$i]["flags"][0] != "noselect" && $boxes[$i]["flags"][1] != "noselect" && $boxes[$i]["flags"][2] != "noselect") {
-            $box = $boxes[$i]["unformatted"];
-            $box2 = replace_spaces($boxes[$i]["formatted"]);
-            echo "         <OPTION VALUE=\"$box\">$box2\n";
+         $i++;
+         $j++;
+      }
+      $numMessages = $i;
+
+      // There's gotta be messages in the array for it to sort them.
+
+      # Carn't Use the Display messages function it assumes messages are in order.
+      # Again More code Hacked from else where
+      # AT THE MOMENT YOU CARN'T SORT SEARCH RESULTS
+      # ACTULLY THE CODE IS PROLLY BROKEN ANY HOW!
+
+      if (count($messagelist) > 0) {
+         $j=0;
+         echo "<center><b>" . _("Found") . " " . count($messagelist) . " " . _("messages") . "</b></center>\n";
+         echo "<br>\n";
+         echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>";
+         echo "<TR><TD BGCOLOR=\"$color[0]\">";
+   
+         echo "\n\n\n<FORM name=messageList method=post action=\"move_messages.php?msg=$msg&mailbox=$urlMailbox&where=".urlencode($search_where)."&what=".urlencode($search_what)."\">";
+         echo "<TABLE BGCOLOR=\"$color[0]\" COLS=2 BORDER=0 cellpadding=0 cellspacing=0>\n";
+         echo "   <TR>\n";
+         echo "      <TD WIDTH=60% ALIGN=LEFT>\n";
+         echo "         <NOBR><SMALL>". _("Move selected to:") ."</SMALL>";
+         echo "         <TT><SMALL><SELECT NAME=\"targetMailbox\">";
+   
+         $boxes = sqimap_mailbox_list($imapConnection);
+         for ($i = 0; $i < count($boxes); $i++) {
+            if ($boxes[$i]["flags"][0] != "noselect" && $boxes[$i]["flags"][1] != "noselect" && $boxes[$i]["flags"][2] != "noselect") {
+               $box = $boxes[$i]["unformatted"];
+               $box2 = replace_spaces($boxes[$i]["formatted"]);
+               echo "         <OPTION VALUE=\"$box\">$box2\n";
+            }
+         }
+         echo "         </SELECT></SMALL></TT>";
+         echo "         <SMALL><INPUT TYPE=SUBMIT NAME=\"moveButton\" VALUE=\"". _("Move") ."\"></SMALL></NOBR>\n";
+   
+         echo "      </TD>\n";
+         echo "      <TD WIDTH=40% ALIGN=RIGHT>\n";
+         echo "         <NOBR><SMALL><INPUT TYPE=SUBMIT VALUE=\"". _("Delete") ."\">&nbsp;". _("checked messages") ."</SMALL></NOBR>\n";
+         echo "      </TD>";
+         echo "   </TR>\n";
+   
+         echo "</TABLE>\n\n\n";
+         echo "</TD></TR>";
+         echo "<TR><TD BGCOLOR=\"$color[0]\">";
+         echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=1 BGCOLOR=\"$color[4]\">";
+         echo "<TR BGCOLOR=\"$color[5]\" ALIGN=\"center\">";
+         echo "   <TD WIDTH=1%><B>&nbsp;</B></TD>";
+         /** FROM HEADER **/
+         if ($mailbox == $sent_folder)
+            echo "   <TD WIDTH=30%><B>". _("To") ."</B></td>";
+         else
+            echo "   <TD WIDTH=30%><B>". _("From") ."</B></td>";
+         /** DATE HEADER **/
+         echo "   <TD nowrap WIDTH=1%><B>". _("Date") ."</B></td>";
+         echo "   <TD WIDTH=1%>&nbsp;</TD>\n";
+         /** SUBJECT HEADER **/
+         echo "   <TD WIDTH=%><B>". _("Subject") ."</B></td>\n";
+         echo "</TR>";
+         while ($j < count($msgs)) {
+            printMessageInfo($imapConnection, $msgs[$j]["ID"], 0, $j, $mailbox, "", 0, $search_where, $search_what);
+            //echo $msgs[$j]["SUBJECT"]."<br>";
+            $j++;
          }
+         echo "</table>";
+         echo "</tr></td></table>";
       }
-      echo "         </SELECT></SMALL></TT>";
-      echo "         <SMALL><INPUT TYPE=SUBMIT NAME=\"moveButton\" VALUE=\"". _("Move") ."\"></SMALL></NOBR>\n";
-
-      echo "      </TD>\n";
-      echo "      <TD WIDTH=40% ALIGN=RIGHT>\n";
-      echo "         <NOBR><SMALL><INPUT TYPE=SUBMIT VALUE=\"". _("Delete") ."\">&nbsp;". _("checked messages") ."</SMALL></NOBR>\n";
-      echo "      </TD>";
-      echo "   </TR>\n";
-
-      echo "</TABLE>\n\n\n";
-      echo "</TD></TR>";
-echo "<TR><TD BGCOLOR=\"$color[0]\">";
-      echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=1 BGCOLOR=\"$color[4]\">";
-      echo "<TR BGCOLOR=\"$color[5]\" ALIGN=\"center\">";
-      echo "   <TD WIDTH=1%><B>&nbsp;</B></TD>";
-      /** FROM HEADER **/
-      if ($mailbox == $sent_folder)
-         echo "   <TD WIDTH=30%><B>". _("To") ."</B></td>";
-      else
-         echo "   <TD WIDTH=30%><B>". _("From") ."</B></td>";
-      /** DATE HEADER **/
-      echo "   <TD nowrap WIDTH=1%><B>". _("Date") ."</B></td>";
-               echo "   <TD WIDTH=1%>&nbsp;</TD>\n";
-      /** SUBJECT HEADER **/
-      echo "   <TD WIDTH=%><B>". _("Subject") ."</B></td>\n";
-      echo "</TR>";
-       
-while ($j < count($msgs)) {
-               printMessageInfo($imapConnection, $msgs[$j]["ID"], 0, $j, $mailbox, "", 0);
-               //echo $msgs[$j]["SUBJECT"]."<br>";
-               $j++;
-       }
-echo "</table>";
-echo "</tr></td></table>";
-       }
-}
+   }
 
 ?>
index 9b7656643ddf74751a821ddffc312f89d247a3ca..c485afee8cd99c4e00ee6831d424ab0d83939602 100644 (file)
@@ -10,7 +10,7 @@
 
    $mailbox_display_php = true;
 
-   function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage) {
+   function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage, $where, $what) {
       global $color, $msgs, $msort;
                global $sent_folder;
       global $message_highlight_list;
       
       if (!$hlt_color)
          $hlt_color = $color[4];
+
+      if ($where && $what) {
+         $search_stuff = "&where=".urlencode($where)."&what=".urlencode($what);
+      }
       
       echo "   <td width=1% bgcolor=$hlt_color align=center><input type=checkbox name=\"msg[$t]\" value=".$msg["ID"]."$checked></TD>\n";
       echo "   <td width=30% bgcolor=$hlt_color>$italic$bold$flag$senderName$flag_end$bold_end$italic_end</td>\n";
@@ -47,7 +51,7 @@
                if ($msg["FLAG_ANSWERED"] == true) echo "   <td bgcolor=$hlt_color width=1%><b><small>A</small></b></td>";
                elseif (ereg("(1|2)",substr($msg["PRIORITY"],0,1))) echo "   <td bgcolor=$hlt_color width=1%><b><small><font color=$color[1]>!</font></small></b></td>";
                else    echo "   <td bgcolor=$hlt_color width=1%>&nbsp;</td>";
-      echo "   <td bgcolor=$hlt_color width=%>$bold<a href=\"read_body.php?mailbox=$urlMailbox&passed_id=".$msg["ID"]."&startMessage=$startMessage&show_more=0\">$flag$subject$flag_end</a>$bold_end</td>\n";
+      echo "   <td bgcolor=$hlt_color width=%>$bold<a href=\"read_body.php?mailbox=$urlMailbox&passed_id=".$msg["ID"]."&startMessage=$startMessage&show_more=0$search_stuff\">$flag$subject$flag_end</a>$bold_end</td>\n";
 
       echo "</tr>\n";
    }
             next($msort);
             $k++;
          } while (isset ($key) && ($k < $i));
-         printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage);
+         printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage, 0, 0);
       } else {
          $i = $startMessage;
          reset($msort);
          } while (isset ($key) && ($k < $i));
 
                   do {
-            printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage);
+            printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage, 0, 0);
             $key = key($msort);
             $t++;
             $i++;
index fd274d3e3e9e5490c06ac8d10358237d81b80a7d..3f2813973b1f66837ca302505a4a21fbfcc0b9b6 100644 (file)
@@ -32,5 +32,8 @@
       sqimap_mailbox_expunge($imapConnection, $mailbox);
 
    $location = get_location();
-   header ("Location: $location/right_main.php?sort=$sort&startMessage=$startMessage&mailbox=".urlencode($mailbox));
+   if ($where && $what)
+      header ("Location: $location/search.php?where=".urlencode($where)."&what=".urlencode($what)."&mailbox=".urlencode($mailbox));
+   else   
+      header ("Location: $location/right_main.php?sort=$sort&startMessage=$startMessage&mailbox=".urlencode($mailbox));
 ?>
index 3281867be4f4a5c0cb13e239a8cc6612c11d9474..8b7b7cf802770ac1c1c61041ed2fdf131a90f3ac 100644 (file)
             sqimap_mailbox_expunge($imapConnection, $mailbox);
          }
          $location = get_location();
-         header ("Location: $location/right_main.php?sort=$sort&startMessage=$startMessage&mailbox=". urlencode($mailbox));
+         if ($where && $what)
+            header ("Location: $location/search.php?mailbox=".urlencode($mailbox)."&what=".urlencode($what)."&where=".urlencode($where));
+         else   
+            header ("Location: $location/right_main.php?sort=$sort&startMessage=$startMessage&mailbox=". urlencode($mailbox));
       } else {
          displayPageHeader($color, $mailbox);
          error_message(_("No messages were selected."), $mailbox, $sort, $startMessage, $color);
             sqimap_mailbox_expunge($imapConnection, $mailbox);
 
          $location = get_location();
-         header ("Location: $location/right_main.php?sort=$sort&startMessage=$startMessage&mailbox=". urlencode($mailbox));
+         if ($where && $what)
+            header ("Location: $location/search.php?mailbox=".urlencode($mailbox)."&what=".urlencode($what)."&where=".urlencode($where));
+         else   
+            header ("Location: $location/right_main.php?sort=$sort&startMessage=$startMessage&mailbox=". urlencode($mailbox));
       } else {
          displayPageHeader($color, $mailbox);
          error_message(_("No messages were selected."), $mailbox, $sort, $startMessage, $color);
index 1440363b5ee3c722c52f127e6aafa9727459b79c..1a7c4c2490f257800efeeb11e699d6144bd2888b 100644 (file)
    echo "         <TR>";
    echo "            <TD ALIGN=LEFT WIDTH=33%>";
    echo "               <SMALL>";
-   echo "               <A HREF=\"right_main.php?use_mailbox_cache=1&sort=$sort&startMessage=$startMessage&mailbox=$urlMailbox\">";
+   if ($where && $what) {
+      echo "               <A HREF=\"search.php?where=".urlencode($where)."&what=".urlencode($what)."&mailbox=$urlMailbox\">";
+   } else {
+      echo "               <A HREF=\"right_main.php?use_mailbox_cache=1&sort=$sort&startMessage=$startMessage&mailbox=$urlMailbox\">";
+   }
    echo _("Message List");
    echo "</A>&nbsp;|&nbsp;";
-   echo "               <A HREF=\"delete_message.php?mailbox=$urlMailbox&message=$passed_id&sort=$sort&startMessage=1\">";
+   if ($where && $what) {
+      echo "               <A HREF=\"delete_message.php?mailbox=$urlMailbox&message=$passed_id&sort=$sort&startMessage=1&where=".urlencode($where)."&what=".urlencode($what)."\">";
+   } else {
+      echo "               <A HREF=\"delete_message.php?mailbox=$urlMailbox&message=$passed_id&sort=$sort&startMessage=1\">";
+   }
    echo _("Delete");
    echo "</A>&nbsp;&nbsp;";
    echo "               </SMALL>";
    echo "            </TD><TD WIDTH=33% ALIGN=CENTER>";
    echo "               <SMALL>\n";
-   if ($currentArrayIndex == -1) {
-      echo "Previous&nbsp;|&nbsp;Next";
+   if ($where && $what) {
    } else {
-      $prev = findPreviousMessage();
-      $next = findNextMessage();
-      if ($prev != -1)
-         echo "<a href=\"read_body.php?passed_id=$prev&mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&show_more=0\">" . _("Previous") . "</A>&nbsp;|&nbsp;";
-      else
-         echo _("Previous") . "&nbsp;|&nbsp;";
-      if ($next != -1)
-         echo "<a href=\"read_body.php?passed_id=$next&mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&show_more=0\">" . _("Next") . "</A>";
-      else
-         echo _("Next");
-   }
+      if ($currentArrayIndex == -1) {
+         echo "Previous&nbsp;|&nbsp;Next";
+      } else {
+         $prev = findPreviousMessage();
+         $next = findNextMessage();
+         if ($prev != -1)
+            echo "<a href=\"read_body.php?passed_id=$prev&mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&show_more=0\">" . _("Previous") . "</A>&nbsp;|&nbsp;";
+         else
+            echo _("Previous") . "&nbsp;|&nbsp;";
+         if ($next != -1)
+            echo "<a href=\"read_body.php?passed_id=$next&mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&show_more=0\">" . _("Next") . "</A>";
+         else
+            echo _("Next");
+      }
+   }   
    echo "               </SMALL>\n";
    echo "            </TD><TD WIDTH=33% ALIGN=RIGHT>";
    echo "               <SMALL>";
index a82dc7473643a2efa248bd2e9f1e2c3bdc25b4d1..18ba2e519a3a317b8c83551ddb7c7442885faec9 100644 (file)
@@ -18,7 +18,7 @@
       include("../functions/page_header.php");
    if (!isset($imap_php))
       include("../functions/imap.php");
-       if (!isset($imap_search_php))
+   if (!isset($imap_search_php))
       include("../functions/imap_search.php");
    if (!isset($array_php))
       include("../functions/array.php");
    include("../src/load_prefs.php");
 
    displayPageHeader($color, $mailbox);
- $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
  $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
 
-if (empty($mailbox) || empty($what) || empty($where)) {
+   echo "<br>
+      <table width=95% align=center cellpadding=2 cellspacing=0 border=0>
+      <tr><td bgcolor=\"$color[0]\">
+          <center><b>"._("Search")."</b></center>
+      </td></tr>
+      <tr><td align=center>";
 
-echo "<br>
-<table width=95% align=center cellpadding=2 cellspacing=2 border=0>
-<tr><td bgcolor=\"$color[0]\">
-   <center><b>"._("Search")."</b></center>
-</td></tr></table><br>";
-               echo "<FORM ACTION=\"search.php\">\n";
-               echo " <CENTER>\n";
-               echo "   <TABLE WIDTH=75%>\n";
-               echo "     <TR>\n";
-               echo "       <TD WIDTH=33%>\n";
-      echo "         <TT><SMALL><SELECT NAME=\"mailbox\">";
+   echo "<FORM ACTION=\"search.php\">\n";
+   echo "   <TABLE WIDTH=75%>\n";
+   echo "     <TR>\n";
+   echo "       <TD WIDTH=33%>\n";
+   echo "         <TT><SMALL><SELECT NAME=\"mailbox\">";
 
-      $boxes = sqimap_mailbox_list($imapConnection);
-      for ($i = 0; $i < count($boxes); $i++) {
-         if ($boxes[$i]["flags"][0] != "noselect" && $boxes[$i]["flags"][1] != "noselect" && $boxes[$i]["flags"][2] != "noselect") {
-            $box = $boxes[$i]["unformatted"];
-            $box2 = replace_spaces($boxes[$i]["formatted"]);
-                               if ($mailbox == $box)
-               echo "         <OPTION VALUE=\"$box\" SELECTED>$box2\n";
-                               else
-                                       echo "         <OPTION VALUE=\"$box\">$box2\n";
-         }
+   $boxes = sqimap_mailbox_list($imapConnection);
+   for ($i = 0; $i < count($boxes); $i++) {
+      if ($boxes[$i]["flags"][0] != "noselect" && $boxes[$i]["flags"][1] != "noselect" && $boxes[$i]["flags"][2] != "noselect") {
+         $box = $boxes[$i]["unformatted"];
+         $box2 = replace_spaces($boxes[$i]["formatted"]);
+         if ($mailbox == $box)
+            echo "         <OPTION VALUE=\"$box\" SELECTED>$box2\n";
+         else
+            echo "         <OPTION VALUE=\"$box\">$box2\n";
       }
-      echo "         </SELECT></SMALL></TT>";
-               echo "       </TD>\n";
-      echo "        <TD ALIGN=\"CENTER\" WIDTH=33%>\n";
-      echo "          <INPUT TYPE=\"TEXT\" SIZE=\"20\" NAME=\"what\">\n";
-      echo "        </TD>";
-               echo "       <TD ALIGN=\"RIGHT\" WIDTH=33%>\n";
-               echo "         <SELECT NAME=\"where\">";
-               echo "           <OPTION VALUE=\"TEXT\">"._("Everywhere")."\n";
-               echo "           <OPTION VALUE=\"SUBJECT\">"._("Subject")."\n";
-               echo "           <OPTION VALUE=\"FROM\">"._("From")."\n";
-               echo "           <OPTION VALUE=\"TO\">"._("To")."\n";
-               echo "         </SELECT>\n";
-               echo "        </TD>\n";
-               echo "     </TR>\n";
-               echo "     <TR>\n";
-               echo "       <TD COLSPAN=\"3\" ALIGN=\"CENTER\">\n";
-               echo "         <INPUT TYPE=\"submit\" VALUE=\""._("Search")."\">\n";
-               echo "       </TD>\n";
-               echo "     </TR>\n";
-               echo "   </TABLE>\n"; 
-               echo "  </CENTER>\n";
-               echo "</FORM>";
-} else {
-
-sqimap_mailbox_select($imapConnection, $mailbox);
-       sqimap_search($imapConnection, $where, $what, $mailbox, $color);
-
-}
-sqimap_logout ($imapConnection);
+   }
+   echo "         </SELECT></SMALL></TT>";
+   echo "       </TD>\n";
+   echo "        <TD ALIGN=\"CENTER\" WIDTH=33%>\n";
+   echo "          <INPUT TYPE=\"TEXT\" SIZE=\"20\" NAME=\"what\" VALUE=\"$what\">\n";
+   echo "        </TD>";
+   echo "       <TD ALIGN=\"RIGHT\" WIDTH=33%>\n";
+   echo "         <SELECT NAME=\"where\">";
+   
+   if ($where == "TEXT") echo "           <OPTION VALUE=\"TEXT\" SELECTED>"._("Everywhere")."\n";
+   else echo "           <OPTION VALUE=\"TEXT\">"._("Everywhere")."\n";
+   
+   if ($where == "SUBJECT") echo "           <OPTION VALUE=\"SUBJECT\" SELECTED>"._("Subject")."\n";
+   else echo "           <OPTION VALUE=\"SUBJECT\">"._("Subject")."\n";
+   
+   if ($where == "FROM") echo "           <OPTION VALUE=\"FROM\" SELECTED>"._("From")."\n";
+   else echo "           <OPTION VALUE=\"FROM\">"._("From")."\n";
+   
+   if ($where == "TO") echo "           <OPTION VALUE=\"TO\" SELECTED>"._("To")."\n";
+   else echo "           <OPTION VALUE=\"TO\">"._("To")."\n";
+   
+   echo "         </SELECT>\n";
+   echo "        </TD>\n";
+   echo "       <TD COLSPAN=\"3\" ALIGN=\"CENTER\">\n";
+   echo "         <INPUT TYPE=\"submit\" VALUE=\""._("Search")."\">\n";
+   echo "       </TD>\n";
+   echo "     </TR>\n";
+   echo "   </TABLE>\n"; 
+   echo "</FORM>";
+   echo "</td></tr></table>";
+   if ($where && $what) {   
+      sqimap_mailbox_select($imapConnection, $mailbox);
+      sqimap_search($imapConnection, $where, $what, $mailbox, $color);
+   }
+   sqimap_logout ($imapConnection);
 ?>
 </body></html>