get('language')) { // Validate language setting in session if (is_language_supported($sess->get('language'),$language_support) === true) { require('lang/'.$sess->get('language').'.php'); } else{ // In case of invalid session, overwrite value require('lang/'.$language_support[default_language][0].'.php'); $sess->set('language',$language_support[default_language][0]); } } else{ // If no lang in sess, set it anyway... require('lang/'.$language_support[default_language][0].'.php'); $sess->set('language',$language_support[default_language][0]); } // language $lang = $sess->get('language'); define(XMPP_HOST,$sess->get('vhost')); $xmpp_host = str_replace(".","_", XMPP_HOST); $rpc_host = check_rpc_server($vhosts[XMPP_HOST],$rpc_port); // in case no RPC servers are available stop jorge if ($rpc_host===false) { print "
Currently service is unavailable. Please try again later.
"; exit; } // connect to xmpp server $ejabberd_rpc = new rpc_connector("$rpc_host","$rpc_port",XMPP_HOST); // initialize encryption system $enc = new url_crypt(ENC_KEY); // authenticate if (check_registered_user($sess,$ejabberd_rpc,$enc) !== true) { header("Location: index.php?act=logout"); exit; } // create database object $db = new db_manager(MYSQL_HOST,MYSQL_NAME,MYSQL_USER,MYSQL_PASS,"mysql","$xmpp_host"); // set user data define(TOKEN,$sess->get('uid_l')); $db->get_user_id(TOKEN); define(USER_ID, $db->result->user_id); if (!ctype_digit(USER_ID)) { // exit on unexpected results exit; } else{ $db->set_user_id(USER_ID); } // get parameters $e_string=$_GET['a']; if ($enc->decrypt_url($e_string) === true) { $tslice = $enc->tslice; $talker = $enc->peer_name_id; $server = $enc->peer_server_id; } else { // if validation of link fail, exit header('Location: index.php'); exit; } $db->get_user_name($talker); $user_name = $db->result->username; $db->get_server_name($server); $server_name = $db->result->server_name; $nickname = $sess->get('export_nickname'); $db->get_own_name(); if ($db->result->own_name) { $own_name = $db->result->own_name; } else{ $own_name = false; } // get chat $db->get_user_chat($tslice,$talker,$server,$resource_id = null,$start = null,10000); $result = $db->result; // set headers header("Cache-Control: public, must-revalidate"); header("Pragma: hack"); // this is WEIRD - it is needed to work with Internet Explorer :O header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"Jorge_chat_$nickname-$tslice.txt\""); $data="$export_head1[$lang]$nickname ($user_name@$server_name) $export_head2[$lang] $tslice:\n"; foreach ($result as $results) { if ($results["direction"] == "from") { $out=$nickname; $tt=$tt+1; $aa=0; } else { if ($own_name !== false) { $out = $own_name; } else{ $out = TOKEN; } $aa=$aa+1; $tt=0; } if ($aa<2 AND $tt<2) { $data .= "\n(".trim(strstr($results[ts], ' ')).") $out\n"; $here="1"; } else { $data .=""; $here="0"; } $data .=" $results[body]\n"; } $data .="\n\n______\nChat exported by Jorge"; echo $data; ob_end_flush(); // log event $db->set_logger("8","1", "JID: $user_name@$server_name, Date: $tslice"); $sess->unregister('export_nickname'); ?>