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