hi list, i use IlohaMail-dev-20060103, php-5.1.4

i see some php's warning message in my httpd's log like this:

--------------------------------------------------
PHP Warning:  Invalid argument supplied for foreach() in
/http-root/IlohaMail-dev-20060103/source/main.xml2.php on line 168
--------------------------------------------------

anyone know what mean is this warning message?
how to fix this?
thank you

i attach the complete main.xml2.php file,
and some part of main.xml2.php is below

my IlohaMail-dev-20060103/source/main.xml2.php is like this
(without the line number)
---------------------------------------------------------
147 function doit(&$headers,&$t_num_kids, $haveuids, $status){
148         global $my_prefs;
149         global $MAIN_CONTEXT;
150         global $total_num, $start, $next_start, $prev_start,
$num_show;
151         global
$user,$folder,$submit,$checkboxes,$selected_boxes,$report,$showto;
152
153         $selected = array();
154         $haveuids = explode(',',$haveuids);
155
156         header('Content-type: text/xml');
157         echo '<?xml version="1.0"
encoding="'.$my_prefs['charset'].'"?>'."\r\n";
158         echo '<data>';
159         echo '<type>m</type>';
160         echo '<message>';
161         //echo dodiff($headers, $t_num_kids,
explode(",",$haveuids));
162         echo '</message>';
163         echo '<items>';
164         $num_new = 0;
165         $num_old = 0;
166         $num_del = 0;
167         $row_count = 0;
168         foreach($headers as $header){
169                 $uid = $header->uid;
170                 $old_row = array_search($uid, $haveuids);
171                 $row = main_packageHeader($folder, $header,
$t_num_kids, $showto, $selected_boxes);
172                 if ($old_row===false){
173                         echo formNewItem($row_count, $uid, $row);
174                         $num_new++;
175                 }else{
176                         echo formOldItem($row_count, $uid, $row,
$old_row);
177                         $haveuids[$old_row] = false;
178                         $num_old++;
179                 }
180                 $row_count++;
181         }
182         foreach($haveuids as $row=>$uid){
183                 if ($uid===false) continue;
184                 echo formRemovedItem($row,$uid);
185                 $num_del++;
186         }
187         echo '</items>';
188         echo '<numnew>'.$num_new.'</numnew>';
189         echo '<numold>'.$num_old.'</numold>';
190         echo '<numdel>'.$num_del.'</numdel>';
191         echo '<report>Report:'.$status.'</report>';
192         echo '</data>';
193 }
-----------------------------------------------------------------
<?php
/*
        File:           main.xml.php
        Purpose:        Equivalent to main.php, except output XML data
        Author:         Ryo Chijiiwa, ilohamail.org
        License:        GPL (part of IlohaMail)
*/

include('../include/stopwatch.inc');
$clock = new stopwatch(true);
include_once("../include/super2global.inc");
include_once("../include/nocache.inc");
include_once("../include/session_auth.inc");
include_once("../lang/".$my_prefs["charset"].".inc");
include_once("../include/ryosimap.inc");
include_once('../include/ryosdates.inc');
include_once('../include/js_utils.inc');
include_once('../lang/'.$my_prefs['lang'].'dates.inc');


/////////////////
//      FUNCTIONS
/////////////////

function headers2tree(&$headers, &$t_num_kids){
        
}

function array2xml($a){
        $out='';
        foreach($a as $label=>$data){
                if (is_numeric($label)) $label='i'.$label;
                if (is_array($data)) 
$out.='<'.$label.'>'.array2xml($data).'</'.$label.'>';
                else 
$out.='<'.$label.'>'.htmlspecialchars($data).'</'.$label.'>';
        }
        return $out;
}

function header2xml(&$header, &$t_num_kids, $print_r=false){
        global $folder, $showto, $selected_boxes;

        $a = main_packageHeader($folder, $header, $t_num_kids, $showto, 
$selected_boxes);

        if ($print_r){
                print_r($a);
                return;
        }

        echo '<msg>';
        echo array2xml($a);
        echo '</msg>'."\r\n";
}

function dodiff(&$headers, &$t_num_kids, $olduids){
        $row_uid = array();
        foreach($headers as $header){
                $row_uid[] = $header->uid;
        }
}

function formNewItem($num, $uid, &$row){
        $package = array();
        $package['row'] = $num;
        $package['uid'] = $uid;
        $package['op'] = 'n';
        $package['data'] = '%data';
        
        $payload = js_print_array($package,true);
        $payload = str_replace('"%data"', main_packageJSRow($row), $payload);
        $xml = '<item>';
        $xml.= '<![CDATA[var item='.$payload.']]>';
        $xml.= '</item>';
        return $xml;
}

function formNewItem2($num, $uid, &$row){
        $xml = '<item>';
        $xml.= '<num>'.$num.'</num>';
        $xml.= '<uid>'.$uid.'</uid>';
        $xml.= '<op>n</op>';
        $xml.= '<data>'.htmlspecialchars(main_packageJSRow($row)).'</data>';
        $xml.= '</item>';
        return $xml;
}

function formOldItem($num, $uid, &$row, $oldnum){
        $data = array();
        $data['rep'] = $row['is_reply'];
        $data['nc'] = $row['nc'];
        $data['sn'] = $row['sn'];
        $data['fl'] = $row['fl'];
        
        $package = array();
        $package['row'] = $num;
        $package['uid'] = $uid;
        $package['op'] = 'o';
        $package['old'] = $oldnum;
        $package['data'] = '%data';
        
        $payload = js_print_array($package, true);
        $payload = str_replace('"%data"', js_print_array($data,true), $payload);
        
        $xml = '<item>';
        $xml.= '<![CDATA[var item='.$payload.']]>';
        $xml.= '</item>';
        return $xml;
}

function formOldItem2($num, $uid, &$row, $oldnum){
        $data = array();
        $data['rep'] = $row['is_reply'];
        $data['nc'] = $row['nc'];
        $data['sn'] = $row['sn'];
        $data['fl'] = $row['fl'];

        $xml = '<item>';
        $xml.= '<num>'.$num.'</num>';
        $xml.= '<uid>'.$uid.'</uid>';
        $xml.= '<op>o</op>';
        $xml.= '<old>'.$oldnum.'</old>';
        $xml.= '<data>'.htmlspecialchars(js_print_array($data,true)).'</data>';
        $xml.= '</item>';
        return $xml;
}

function formRemovedItem($oldrow,$uid){
        $data = array();
        $data['uid'] = $uid;
        $data['old'] = $oldrow;
        $data['op'] = 'r';
        
        $xml = '<item>';
        $xml.= '<![CDATA[var item='.js_print_array($data, true).']]>';
        $xml.= '</item>';
        return $xml;
}

function formRemovedItem2($oldrow,$uid){
        $xml = '<item>';
        $xml.= '<old>'.$oldrow.'</old>';
        $xml.= '<uid>'.$uid.'</uid>';
        $xml.= '<op>r</op>';
        $xml.= '</item>';
        return $xml;
}

function doit(&$headers,&$t_num_kids, $haveuids, $status){
        global $my_prefs;
        global $MAIN_CONTEXT;
        global $total_num, $start, $next_start, $prev_start, $num_show;
        global 
$user,$folder,$submit,$checkboxes,$selected_boxes,$report,$showto;
        
        $selected = array();
        $haveuids = explode(',',$haveuids);
        
        header('Content-type: text/xml');
        echo '<?xml version="1.0" encoding="'.$my_prefs['charset'].'"?>'."\r\n";
        echo '<data>';
        echo '<type>m</type>';
        echo '<message>';
        //echo dodiff($headers, $t_num_kids, explode(",",$haveuids));
        echo '</message>';
        echo '<items>';
        $num_new = 0;
        $num_old = 0;
        $num_del = 0;
        $row_count = 0;
        foreach($headers as $header){
                $uid = $header->uid;
                $old_row = array_search($uid, $haveuids);
                $row = main_packageHeader($folder, $header, $t_num_kids, 
$showto, $selected_boxes);
                if ($old_row===false){
                        echo formNewItem($row_count, $uid, $row);
                        $num_new++;
                }else{
                        echo formOldItem($row_count, $uid, $row, $old_row);
                        $haveuids[$old_row] = false;
                        $num_old++;
                }
                $row_count++;
        }
        foreach($haveuids as $row=>$uid){
                if ($uid===false) continue;
                echo formRemovedItem($row,$uid);
                $num_del++;
        }
        echo '</items>';
        echo '<numnew>'.$num_new.'</numnew>';
        echo '<numold>'.$num_old.'</numold>';
        echo '<numdel>'.$num_del.'</numdel>';
        echo '<report>Report:'.$status.'</report>';
        echo '</data>';
}

function printheaders(&$headers, &$t_num_kids){
        foreach($headers as $header){
                header2xml($header, $t_num_kids, true);
        }
}



/////////////////
//      LOAD CORE
//              The main_core file processes actions, 
//              creates message indices, and fetches headers
/////////////////

include('../include/main_core.inc');

/////////////////
//      OUTPUT XML
/////////////////
$clock->purge();
doit($headers, $t_num_kids, $haveuids, $report);


/////////////////
//      SAVE CONTEXT
/////////////////
main_contextSave($MAIN_CONTEXT, $OLD_CONTEXT);

iil_Close($conn);

echo "\n<!--\n";
$clock->dump();
echo "\n//-->\n";
?>
_______________________________________________
Ilohamail-devel mailing list
Ilohamail-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ilohamail-devel

Reply via email to