JSON: Error: Unexpected EOF и Error: Invalid or unexpected token

580
11 ноября 2017, 14:44

У меня имеется старый самопис движок (2009-11 года).

На странице кнопка, по нажатию которой открывается окно отправки сообщения

<a onclick='showBox("sendMsg", "mail.php", {act: "a_write_box", to: "{$page.user_dat.id}"}, true, true, {title: Sendmsg, progress: "sending_progress", width: 450}); return false;' href='/mail.php?act=write&to={$page.user_dat.id}'>Отправить {$page.user_dat.dname} сообщение</a>

Соответственно идет запрос в mail.php?act=a_write_box

case "a_write_box":
        $users = get_user($_POST["to"]);
        if(ch_pram($users["privacy_mail_send"], "1", $users["privacy_mail_sendl"], $tid, "2") == "1"){
            $page["user"] = $users;
            $page["hash"] = md5($users["id"]."send_msg_to".$uid."h78yt087gh8i");
            $skin->assign("page", $page);
            $rp = array("\n","\r");
            $rt = array("\\n","\\n");
            $rpj = array("\r\n","\r", '"');
            $rtj = array("\\n","\\n", '\"');
            $out["html"] = str_replace($rp, "", addslashes($skin->fetch("pagebody/mail/write_box.tpl")));
            $out["script"] = str_replace($rpj, $rtj, $skin->fetch("pagebody/mail/js_write_to.tpl"));
        }else{
            $out["html"] = '<div class=\"msg\" style=\"margin: 0px 2px\">Вы не можете отправить сообщение данному пользователю, так как он ограничивает круг лиц, которые могут присылать ему сообщения.<\/div>';
            $out["script"] = "null";
        }
            echo $json->encode($out);
        break;

Должно открытся окошко с вводом темы и сообщения из шаблонов .tpl

Если напрямую перейти по mail.php?act=a_write_box - то грузит. В тех годах все работало. Сейчас нет. В Safari одна ошибка, в Хроме другая..

UPD

Дело вот в этой строчке $out["script"] = str_replace($rpj, $rtj, $skin->fetch("pagebody/mail/js_write_to.tpl"));

В этом tpl шаблоне код и из-за него не открывается..

    {literal}
window.submitMessage = function() {
  if (isVisible(ge('sending_progress'))) return;
  if (trim(ge('write_box_text').value).length) {
    hide('to_extended');
    show('sending_progress');
    var stop = function() {
      hide('sending_progress');
    }
    Ajax.postWithCaptcha('mail.php', {act: 'sent', ajax: 1, chas: '{/literal}{$page.hash}{literal}', to_id: {/literal}{$page.user.id}{literal}, title: ge('write_box_subj').value, message: ge('write_box_text').value, from_box: 1}, {onSuccess: function(obj, text) {
//alert("tut"); 
     winBoxes.sendMsg.content(text);
      hide('sending_progress');
      setTimeout("winBoxes.sendMsg.hide(400)", 2400);
      winBoxes.sendMsg.removeButtons();
      winBoxes.sendMsg.addButton({label: 'Закрыть', onClick: winBoxes.sendMsg.hide});
    }, onFail: stop, onCaptchaShow: stop, onCaptchaHide: stop});
  } else {
    ge('write_box_text').focus();
  }
}
winBoxes.sendMsg.removeButtons();
winBoxes.sendMsg.addButton({label: global_cancel, style: 'fl_r button_gray', onClick: winBoxes.sendMsg.hide});
winBoxes.sendMsg.addButton({label: 'Отправить', onClick: window.submitMessage});
if (intval('0')) {
  window.to_extended = function() {
    showBox('im', 'im.php', {act: 'a_box', sel: '{/literal}{$page.user.id}{literal}'}, false, true, {type: 'POPUP', width: 610, hideOnClick: false}, ['css/im.css?97', 'css/ui_controls.css', 'js/lib/ui_controls.js', 'js/sound.js?1']);
  }
  winBoxes.sendMsg.addControlsText('<span id="to_extended" style="color: #2B587A; cursor: pointer;" onmouseover="this.style.textDecoration=\\'underline\\'" onmouseout="this.style.textDecoration=\\'none\\'" onclick="to_extended()">Перейти в расширенный режим</a>');
}
window.writeFullPage = function() {
  if (window.event && (window.event.which == 2 || window.event.button == 1)) {
    return true;
  }
  hide('to_extended');
  show('sending_progress');
  ge('to_history_form').action = '/mail.php?act=write&to={/literal}{$page.user.id}{literal}';
  ge('to_history_form').submit();
  return false;
}
setTimeout("ge('write_box_text').focus();", 0);
{/literal}

Что делать?

READ ALSO
Выбор лучших мест в зале

Выбор лучших мест в зале

Лучшими, можно считать географически центральные местаКак получить массив самых центральных мест?

390
Одинаковый код на Python и JavaScript работает по-разному

Одинаковый код на Python и JavaScript работает по-разному

Почему одинаковый код на разных языках работает по-разному? На Python работает корректно, на JS - нетЯ написал "аттакер" на линейно-конгруэнтный...

268
Реализация Service Worker на Angular 2/4

Реализация Service Worker на Angular 2/4

Вопрос такой - как правильно реализовать Service Worker на Angular 2/4? Меня именно интересуют уведомления, когда приложение не активно (вкладка не открыта),...

213