<?php
/* die if post iCHAT not set */
if (!isset($_POST['iCHAT']) || $_POST['iCHAT'] != true) { die(); }

/* reset variables */
$mess_output null;

$limit 25// max 25 messages shown

/* check through files and folders function */
function getmessages($day$b$i) {
global 
$messages$limit;
    
$time strtotime("$day day");
    
$dat['day'] = date('j'$time);
    
$dat['month'] = date('m'$time);
    
$dat['year'] = date('Y'$time);
    
    
$dir "data/messages/".$dat['year']."-".$dat['month'];
    
$file $dat['day'].".php";
    
    if (
file_exists($dir."/".$file)) {
        
$mess_string file_get_contents($dir."/".$file);
        
$mess[$dir."/".$file] = simplexml_load_string("<?xml version='1.0'?><document>$mess_string</document>");
        foreach (
$mess[$dir."/".$file]->item as $mss) {
            
$date explode(" "$mss->date);
            
$messages[$date['1']] = "<div class='mess-holder'>
                <div class='mess-date'>("
.date("Y-m-d H:i:s"$date['1']).")</div>
                <div class='mess-user'>&lt;"
.$mss->user."&gt;</div>
                <div class='mess-body'>"
.$mss->body."</div>
            </div>"
;
            ++
$i;
        }
    
        if (
count($messages) < $limitgetmessages($day-1$b$i);
    } else {
        if (
$b <= 40) {
            ++
$b;
            
getmessages($day-1$b$i);
        } else {
            return 
false;
        }
    }
}

/* initiate message-get */
getmessages(date('j'), 00);

$i 0;

if (isset(
$messages)) {
    
rsort($messages);

    foreach (
$messages as $msgskey => $msgsval) {
        if (
$i <= $limit) {
            
$mess_output $msgsval.$mess_output;
        }
        ++
$i;
    }
}

echo (isset(
$messages) ? $mess_output 'No messages written yet.');
?>