Агент для инстанта

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 17 апреля 2014 в 12:57
Здраствуйте. Словом решил переделать агент для инстанта который разрабатывался для 1.9 версии. Все супер, подружил его с 1.10.3. Проблема в отправке и приеме сообщений. При отправке с мессенджера в базу записываются пустые сообщения. При отправке с сайта мессенджер выдает пустую строку (но с указанием отправителя). Пользователей показует в нормальном режиме. Я понимаю что проблема в кодировке но не могу понять где именно. Вот два файла которые используються самим мессенджером. Думаю копать надо в них
  1. <?
  2.  
  3. /******************************************************************************/
  4. // ICM v 2.0 for InstantCMS 1.7 //
  5. // 2011 FREEWARE //
  6. // gener@i.ua //
  7. // //
  8. // //
  9. /******************************************************************************/
  10. define('PATH', $_SERVER['DOCUMENT_ROOT']);
  11. define('HOST', 'http://' . $_SERVER['HTTP_HOST']);
  12. define("VALID_CMS", 1);
  13. //header('Content-Type: text/html;charset=windows-1251');
  14. include('core/cms.php');
  15. include('components/users/includes/usercore.php');
  16.  
  17. $inCore = cmsCore::getInstance();
  18. $inCore->loadClass('user');
  19.  
  20. $inDB= cmsDatabase::getInstance();
  21. $inUser= cmsUser::getInstance();
  22. $inUser->update();
  23. $inCore->onlineStats();
  24. $user_id=$inUser->id;
  25. $inCore->loadModel('users');
  26. $dom=new DOMDocument('1.0', 'UTF-8');
  27.  
  28. function idtonick($uid){
  29.  
  30. $inDB= cmsDatabase::getInstance();
  31.  
  32. $sq="SELECT nickname FROM cms_users WHERE id=$uid LIMIT 1";
  33. $result=$inDB->query($sq);
  34. if ($inDB->num_rows($result)){
  35. $nick = $inDB->fetch_assoc($result);
  36. return $nick['nickname'];
  37.  
  38. }
  39. else return "";
  40. }
  41.  
  42. if ($user_id){
  43. if ($inCore->inRequest('cmd')){
  44. $cmd = $inCore->request('cmd', 'str');
  45. if ($cmd=='enter'){
  46. $sq="DELETE FROM cms_imchat_online WHERE user=$user_id";
  47. $inDB->query($sq);
  48. $sq="INSERT INTO cms_imchat_online (user) VALUES ($user_id)";
  49. $inDB->query($sq);
  50.  
  51. }
  52.  
  53. if ($cmd=="exit"){
  54.  
  55. $sq="DELETE FROM cms_imchat_online WHERE user=$user_id";
  56. $inDB->query($sq);
  57. }
  58.  
  59. if ($cmd=="refresh"){
  60. if($inCore->inRequest('lmes')){$lastmsg=$inCore->request('lmes','int');}
  61. $sq="SELECT * FROM cms_imchat where id>$lastmsg ORDER BY id";
  62. $result=$inDB->query($sq);
  63. $root=$dom->createElement('response');
  64. if ($inDB->num_rows($result)){
  65.  
  66. while($nmes = $inDB->fetch_assoc($result)){
  67. if($nmes['to']<>$user_id && $nmes['privat']==1&& $nmes['from']<>$user_id){}
  68. else{
  69. $name=$dom->createElement('name');
  70. $root->appendChild($name);
  71. $nsender=idtonick($nmes['from']);
  72. $nto=idtonick($nmes['to']);
  73. $name->appendChild($dom->createElement('sender',iconv ("windows-1251","utf-8",$nsender)));
  74. $name->appendChild($dom->createElement('to',iconv ("windows-1251","utf-8",$nto)));
  75. $name->appendChild($dom->createElement('time',$nmes['time']));
  76. $name->appendChild($dom->createElement('msg',iconv ("windows-1251","utf-8",$nmes['msg'])));
  77. $name->appendChild($dom->createElement('privat',$nmes['privat']));
  78. $name->appendChild($dom->createElement('lastmsg',$nmes['id']));
  79. }
  80. }
  81.  
  82. }
  83. $dom->appendChild($root);
  84. echo $dom->saveXML();
  85.  
  86.  
  87. }
  88.  
  89.  
  90. if ($cmd=='say'){
  91. $to=$inCore->request('to','int');
  92. $time=date('m.d.y H:i:s');
  93. $msg=$inCore->request('msg','str');
  94. $prv=$inCore->request('prv','int');
  95. if($to>=0){
  96. $sq="INSERT INTO cms_imchat (`from`,`to`,`time`,msg,privat) VALUES ($user_id,$to,'{$time}','{$msg}',$prv)";
  97.  
  98. $inDB->query($sq);
  99. $lastid=$inDB->get_last_id('cms_imchat');
  100. $sq="DELETE FROM cms_imchat WHERE id <$lastid-20";
  101. $inDB->query($sq);
  102.  
  103.  
  104.  
  105. }
  106.  
  107.  
  108. }
  109.  
  110. if ($cmd=='online'){
  111. $sq="SELECT user from cms_imchat_online";
  112. $result=$inDB->query($sq);
  113. $root=$dom->createElement('response');
  114. if ($inDB->num_rows($result)){
  115. while($rec = $inDB->fetch_assoc($result)){
  116. $name=$dom->createElement('name');
  117. $root->appendChild($name);
  118. $nick=idtonick($rec['user']);
  119. $name->appendChild($dom->createElement('id',$rec['user']));
  120. $name->appendChild($dom->createElement('nick',iconv ("windows-1251","utf-8",$nick)));
  121.  
  122.  
  123. }
  124.  
  125.  
  126.  
  127. }
  128.  
  129. $dom->appendChild($root);
  130. echo $dom->saveXML();
  131.  
  132.  
  133. }
  134.  
  135.  
  136.  
  137.  
  138.  
  139. }
  140. }
  141. ?>
  1. <?
  2. /******************************************************************************/
  3. // ICM v 2.0 for InstantCMS 1.7 //
  4. // 2011 FREEWARE //
  5. // gener@i.ua //
  6. // //
  7. // //
  8. /******************************************************************************/
  9.  
  10. define('PATH', $_SERVER['DOCUMENT_ROOT']);
  11. define('HOST', 'http://' . $_SERVER['HTTP_HOST']);
  12. define("VALID_CMS", 1);
  13. //header('Content-Type: text/html;charset=windows-1251');
#2 17 апреля 2014 в 13:33
Чтоб подружить агент и систему установил на поддомене версию 1.9 и просто вручную заменил настройки к БД. Это так инфо для размышления. Я просто перепробовал уже все что можно но так и не могу додуматься в чем проблема.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.