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
[email protected]
https://lists.sourceforge.net/lists/listinfo/ilohamail-devel