"XXS-yourself" fixes
[squirrelmail.git] / plugins / mail_fetch / options.php
index 7dd615d1eb1644909a2a3913409e12a2f7a366ea..a6782d227fdf19a3c7668f2e2899f30be07bd712 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * mail_fetch/options.php
  *
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Copyright (c) 1999-2003 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * Setup of the mailfetch plugin.
@@ -17,21 +17,72 @@ require_once(SM_PATH . 'include/validate.php');
 require_once(SM_PATH . 'functions/imap.php');
 require_once(SM_PATH . 'include/load_prefs.php');
 
+    /* globals */
+    $username = $_SESSION['username'];
+    $key = $_COOKIE['key'];
+    $onetimepad = $_SESSION['onetimepad'];
+    $delimiter = $_SESSION['delimiter'];
+    
+    if(isset($_POST['mf_cypher'])) {
+        $mf_cypher = $_POST['mf_cypher'];
+    }
+    else {
+        $mf_cyper = '';
+    }
+    if(isset($_POST['mf_sn'])) {
+        $mf_sn = $_POST['mf_sn'];
+    }
+    if(isset($_POST['mf_server'])) {
+        $mf_server = $_POST['mf_server'];
+    }
+    if(isset($_POST['mf_port'])) {
+        $mf_port = $_POST['mf_port'];
+    }
+    if(isset($_POST['mf_alias'])) {
+        $mf_alias = $_POST['mf_alias'];
+    }
+    if(isset($_POST['mf_user'])) {
+        $mf_user = $_POST['mf_user'];
+    }
+    if(isset($_POST['mf_pass'])) {
+        $mf_pass = $_POST['mf_pass'];
+    }
+    if(isset($_POST['mf_subfolder'])) {
+        $mf_subfolder = $_POST['mf_subfolder'];
+    }
+    if(isset($_POST['mf_login'])) {
+        $mf_login = $_POST['mf_login'];
+    }
+    if(isset($_POST['mf_fref'])) {
+        $mf_fref = $_POST['mf_fref'];
+    }
+    if(isset($_POST['submit_mailfetch'])) {
+        $submit_mailfetch = $_POST['submit_mailfetch'];
+    }
+    if(isset($_POST['mf_lmos'])) {
+        $mf_lmos = $_POST['mf_lmos'];
+    }
+    /* end globals */
+
     displayPageHeader( $color, 'None' );
 
     //if dosen't select any option
-    if (!isset($mf_action))
+    if (!isset($_POST['mf_action'])) {
         $mf_action = 'config';
+    } else {
+        $mf_action = $_POST['mf_action'];
+    }
 
     switch( $mf_action ) {
     case 'add':
         if ($mf_sn<1) $mf_sn=0;
         if (!isset($mf_server)) return;
         setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?$mf_server:""));
+        setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?$mf_port:110));
         setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?$mf_alias:""));
         setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?$mf_user:""));
         setPref($data_dir,$username,"mailfetch_pass_$mf_sn",(isset($mf_pass)?encrypt( $mf_pass )    :""));
-        if( $mf_cypher <> 'on' ) SetPref($data_dir,$username,"mailfetch_cypher",    'on');
+        if( isset($mf_cypher) && $mf_cypher <> 'on' ) SetPref($data_dir,$username,'mailfetch_cypher',    'on');
         setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?$mf_lmos:""));
         setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?$mf_login:""));
         setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?$mf_fref:""));
@@ -44,6 +95,7 @@ require_once(SM_PATH . 'include/load_prefs.php');
         //modify    a server
         if (!isset($mf_server)) return;
         setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?$mf_server:""));
+        setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?$mf_port:110));
         setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?$mf_alias:""));
         setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?$mf_user:""));
         setPref($data_dir,$username,"mailfetch_pass_$mf_sn",(isset($mf_pass)?encrypt( $mf_pass )    :""));
@@ -68,6 +120,7 @@ require_once(SM_PATH . 'include/load_prefs.php');
             for ($i=$mf_sn;$i<$mailfetch_server_number;$i++) {
                 $tmp=$i+1;
                 setPref($data_dir,$username,"mailfetch_server_$i", getPref($data_dir, $username, "mailfetch_server_$tmp"));
+                setPref($data_dir,$username,"mailfetch_port_$i", getPref($data_dir,$username, "mailfetch_port_$tmp"));
                 setPref($data_dir,$username,"mailfetch_alias_$i", getPref($data_dir, $username, "mailfetch_alias_$tmp"));
                 setPref($data_dir,$username,"mailfetch_user_$i", getPref($data_dir, $username, "mailfetch_user_$tmp"));
                 setPref($data_dir,$username,"mailfetch_pass_$i",(isset($mf_pass)?encrypt( $mf_pass ) :""));
@@ -90,6 +143,7 @@ require_once(SM_PATH . 'include/load_prefs.php');
     }
     for ($i=0;$i<$mailfetch_server_number;$i++) {
         $mailfetch_server_[$i] = getPref($data_dir, $username, "mailfetch_server_$i");
+        $mailfetch_port_[$i] = getPref($data_dir, $username, "mailfetch_port_$i");
         $mailfetch_alias_[$i] = getPref($data_dir, $username, "mailfetch_alias_$i");
         $mailfetch_user_[$i] = getPref($data_dir, $username, "mailfetch_user_$i");
         $mailfetch_pass_[$i] = getPref($data_dir, $username, "mailfetch_pass_$i");
@@ -146,6 +200,10 @@ require_once(SM_PATH . 'include/load_prefs.php');
                     html_tag( 'th', _("Server:"), 'right' ) .
                     html_tag( 'td', '<input type=text name=mf_server value="" size=40>', 'left' )
                 ) .
+                html_tag( 'tr',
+                    html_tag( 'th', _("Port:"), 'right') .
+                    html_tag( 'td', '<input type=text name=mf_port value="110" size=20', 'left')
+                ) .
                 html_tag( 'tr',
                     html_tag( 'th', _("Alias:"), 'right' ) .
                     html_tag( 'td', '<input type=text name=mf_alias value="" size=20>', 'left' )
@@ -164,17 +222,11 @@ require_once(SM_PATH . 'include/load_prefs.php');
         $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0);
         $boxes = sqimap_mailbox_list($imapConnection);
         echo '<select name="mf_subfolder">';
-        $boxes = sqimap_mailbox_list($imapConnection);
-        for ($i = 0; $i < count($boxes); $i++) {
-            if (!in_array('noselect', $boxes[$i]['flags'])) {
-                $box = $boxes[$i]['unformatted'];
-                $box2 = str_replace(' ', '&nbsp;', $boxes[$i]['unformatted-disp']);
-                if ( strtolower( $box2 ) == 'inbox' ) {
-                    $box2 = _("INBOX");
-                }
-                echo "<option value=\"$box\">$box2</option>\n";
-            }
-        }        
+
+        $selected = 0;
+        if ( isset($mf_subfolder) )
+          $selected = array(strtolower($mf_subfolder));
+        echo sqimap_mailbox_option_list($imapConnection, $selected);
         echo '</select></td></tr>' .
                 html_tag( 'tr',
                     html_tag( 'th', '&nbsp;', 'right' ) .
@@ -208,7 +260,7 @@ require_once(SM_PATH . 'include/load_prefs.php');
             echo '<b>' . _("Server Name:") . '</b> <select name="mf_sn">';
             for ($i=0;$i<$mailfetch_server_number;$i++) {
                 echo "<option value=\"$i\">" .
-                    (($mailfetch_alias_[$i]=='')?$mailfetch_server_[$i]:$mailfetch_alias_[$i]) . "</option>>";
+                    htmlspecialchars( (($mailfetch_alias_[$i]=='')?$mailfetch_server_[$i]:$mailfetch_alias_[$i])) . "</option>>";
             }
             echo '</select>'.
                  '&nbsp;&nbsp;<INPUT TYPE=submit name=mf_action value="' . _("Modify") . '">'.
@@ -263,6 +315,10 @@ require_once(SM_PATH . 'include/load_prefs.php');
                     html_tag( 'th', _("Server:"), 'right' ) .
                     html_tag( 'td', '<input type="text" name="mf_server" value="' . $mailfetch_server_[$mf_sn] . '" size="40">', 'left' )
                 ) .
+                html_tag( 'tr',
+                    html_tag( 'th', _("Port:"), 'right' ) .
+                    html_tag( 'td', '<input type="text" name="mf_port" value="' . $mailfetch_port_[$mf_sn] . '" size="40">', 'left' )
+                ) .
                 html_tag( 'tr',
                     html_tag( 'th', _("Alias:"), 'right' ) .
                     html_tag( 'td', '<input type="text" name="mf_alias" value="' . $mailfetch_alias_[$mf_sn] . '" size="40">', 'left' )
@@ -282,19 +338,10 @@ require_once(SM_PATH . 'include/load_prefs.php');
         $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0);
         $boxes = sqimap_mailbox_list($imapConnection);
         echo '<select name="mf_subfolder">';
-        $boxes = sqimap_mailbox_list($imapConnection);
-        for ($i = 0; $i < count($boxes); $i++) {
-            if (!in_array('noselect', $boxes[$i]['flags'])) {
-                $box = $boxes[$i]['unformatted'];
-                $box2 = str_replace(' ', '&nbsp;', $boxes[$i]['unformatted-disp']);
-                if ( strtolower( $box2 ) == 'inbox' ) {
-                    $box2 = _("INBOX");
-                }
-                echo '<option ' .
-                     (strcmp($mailfetch_subfolder_[$mf_sn],$box)==0?'selected':'') .
-                     " value=\"$box\">$box2</option>\n";
-            }
-        }                
+        $selected = 0;
+        if ( isset($mf_subfolder) )
+          $selected = array(strtolower($mf_subfolder));
+        echo sqimap_mailbox_option_list($imapConnection, $selected);
         echo '</select></td></tr>' .
 
                 html_tag( 'tr',