Автор Тема: помогите плиз.в долгу не останусь  (Прочитано 2350 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dawer83

  • Коллежский регистратор
  • *
  • Сообщений: 1
  • Репутация: 0
помогите плиз.в долгу не останусь
« : јРав 17, 2009, 04:38:00 pm »
Здравствуйте!!! может кто поможет.Есть чат я на яваскрипте там я не могу поставит знак +;
Хотя люди его как то там ставят, просто мой знак + заменяется пробелом. на сколько я понимаю стоят фильтры
Может в коде что изменить?
вот код Java
<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" bgcolor="#CAC9C6" scroll="no" style="border-top: 3px solid black;">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<style>
.users td{FONT-FAMILY: Tahoma; padding-left:5px; font-size:9px;}
.chat td{FONT-FAMILY: Tahoma; padding-left:5px; font-size:9px;}
.chat td#r1{ width:40px;}
.chat td#r2{ font-weight:bold;}
.m_text {border: 1px solid black; width: 100%;}
.m_but {border: 1px solid black; height: 20px;width: 100px;}
.m_del {border: 1px solid black; height: 20px;width: 20px;}
.blocked {text-decoration: line-through;}
.private {color:#0000FF;}

</style>

<table border="1" height="100%" width="100%">
<tr>
<td width="100%">
<div id="main" style='width:100%; height: 100%; overflow:auto; border: 1px solid black; background-color:#FFFFFF;'>
<table id="chat" class="chat" border=0 cellpadding="0" cellspacing="0">
<tr><td id="r1">Время</td><td id="r2">Ник</td><td id="r3">Сообщение</td></tr>
</table>
</div>
</td>
<td width="200">
<div id="right" style='width:150px; height: 100%; overflow:auto; border: 1px solid black; background-color:#FFFFFF;'>
<table id="users" border=0 cellpadding="0" cellspacing="0" class="users">
<tr><td>Ждите</td><tr>
</table>
</div>
</td>
</tr>
<tr><td colspan="2" height="20"><input class="m_text" id="message" type="text" onKeyDown="javascript:CheckEnter(event);"/></td>
</tr>
</table>

<script language="javascript">

var fromid=0;
var getuserspart="&getusers=1";
var msgpart="";

function ScrollDown()
{
main.scrollTop = main.scrollHeight;
}

function CheckEnter(e)
{
//alert(e.keyCode);
keynum = e.keyCode;
if(keynum==13)
{
SendMsg(message.value);
message.value='';
}
}

function SendMsg(msg)
{
msgpart="&msg="+escape(msg);
doReqChat(xmlRequest);
}

function InsertNick(nick)
{
message.value=message.value+nick;
}

function AddMsg(ts,nick,msg,type,tid)
{
var obj_chat=document.all.chat;
var row = obj_chat.insertRow(-1);
var cell = row.insertCell(0);
cell.id="r1";
cell.innerHTML=ts;
var cell = row.insertCell(1);
cell.onclick = "alert(23);";
cell.id="r2";


if(type==2 || type==1) nick="<span class='private'>"+nick+"</span>";
cell.innerHTML="<div style='cursor:hand;' onclick=\"InsertNick('"+nick+"')\">"+nick+"</div>";




var cell = row.insertCell(2);
cell.id="r3";

if(type==2) msg="-><b><span class='private'>"+tid+"</span>: "+msg+"</b>";
cell.innerHTML=msg;
CutMessages();
ScrollDown();
}

function AddUser(nick,type,daycredits)
{
var obj_userlist=document.all.users;
var row = obj_userlist.insertRow(-1);
var cell = row.insertCell(0);
if(typeof daycredits== 'undefined') daycredits=0;
//ICON 0 - surfer; 1 - regular in chat; 2 - moderator in chat; 3 - superuser in chat; 4 - blocked
if(typeof type== 'undefined') type=0;
var icon="<img width=11 height=10 src='ico_rotarrows.gif'>";
if(type==1) icon="<img width=11 height=10 src='ico_chat.gif'>";
if(type==2) icon="<img width=11 height=10 src='ico_admin.gif'>";
if(type==3)
{
icon="<img width=11 height=10 src='ico_star.gif'>";
nick="<b>"+nick+"</b>";
}
if(type==4)
{
icon="<img width=11 height=10 src='ico_blocked.gif'>";
nick="<span class='blocked'>"+nick+"</span>";
}



cell.innerHTML=icon+" ("+daycredits+") "+nick;
}

function ClearUserlist()
{
var obj_userlist=document.all.users;
var newPlane = obj_userlist.cloneNode(false); // no child nodes;
obj_userlist.parentNode.replaceChild(newPlane,obj_userlist);
}

function ClearChat()
{
var obj_chat=document.all.chat;
var newPlane = obj_chat.cloneNode(false); // no child nodes;
obj_chat.parentNode.replaceChild(newPlane,obj_chat);
}

function CutMessages()
{
var obj_chat=document.all.chat;
while (obj_chat.rows.length >= 50) {
obj_chat.firstChild.removeChild(obj_chat.firstChild.firstChild);
}

function KeysON()
{
//alert('dd2');
}

// Инициализируем таблицу перевода
var trans = [];
for (var i = 0x410; i <= 0x44F; i++)
trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8; // Ё
trans[0x451] = 0xB8; // ё

// Сохраняем стандартную функцию escape()
var escapeOrig = window.escape;

// Переопределяем функцию escape()
window.escape = function(str)
{
var ret = [];
// Составляем массив кодов символов, попутно переводим кириллицу
for (var i = 0; i < str.length; i++)
{
var n = str.charCodeAt(i);
if (typeof trans[n] != 'undefined')
n = trans[n];
if (n <= 0xFF)
ret.push(n);
}
return escapeOrig(String.fromCharCode.apply(null, ret));
}

}

function getVar(name)
{
get_string = document.location.search;
return_value = '';

do { //This loop is made to catch all instances of any get variable.
name_index = get_string.indexOf(name + '=');

if(name_index != -1)
{
get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);

end_of_value = get_string.indexOf('&');
if(end_of_value != -1)
value = get_string.substr(0, end_of_value);
else
value = get_string;

if(return_value == '' || value == '')
return_value += value;
else
return_value += ', ' + value;
}
} while(name_index != -1)

//Restores all the blank spaces.
space = return_value.indexOf('+');
while(space != -1)
{
return_value = return_value.substr(0, space) + ' ' +
return_value.substr(space + 1, return_value.length);

space = return_value.indexOf('+');
}

return(return_value);
}


function initChat()
{
sess_id=getVar("sess");
setInterval(function(){doReqUsers();},60000);
setInterval(function(){doReqChat(xmlRequest);},30000);
doReqChat(xmlRequest);
}

function doReqUsers()
{
getuserspart="&getusers=1";
}

function doReqChat(xmlRequest)
{
//alert('drc');
var now = new Date();


var frompart="";
if(fromid>0) frompart="&fromid="+fromid;
var url="http://www.vipspace.net/core/chat/chat.php?sess="+sess_id+frompart+getuserspart+msgpart+"&"+now;
getuserspart="";
msgpart="";


xmlRequest.open("GET", url, true);
xmlRequest.setRequestHeader("Content-Type", "application/x-www-formurlencoded");
xmlRequest.onreadystatechange = function(){PollChat(xmlRequest);};
xmlRequest.send();
}


function PollChat(xmlhttp)
{

if (xmlhttp.readyState === 4) {

var statusCode = xmlhttp.status;
if (!((statusCode < 200) || (statusCode >= 300))){
var xmlDoc=xmlhttp.responseXML;
//alert(xmlhttp.responseText);
var msgs=xmlDoc.getElementsByTagName("chat");
processResponse(xmlhttp);
}else{
AddMsg("00:00:00","ipSPACE bot","Нет интернет соединения",1,0);
//alert ("error poll");
}
}
};

function getNodeValue(obj,tag)
{
try
{
return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
}
catch(e)
{
return "";
}

}

function processResponse(xmlHttp)
{
var xmlDoc=xmlHttp.responseXML;
var msgs=xmlDoc.getElementsByTagName("i");
for (var i=0;i<msgs.length;i++)
{
tid="";
if(getNodeValue(msgs[i],'type')==2) tid=getNodeValue(msgs[i],'tid');
AddMsg(getNodeValue(msgs[i],'t'),getNodeValue(msgs[i],'l_f'),getNodeValue(msgs[i],'msg'),getNodeValue(msgs[i],'type'),tid);
fromid=getNodeValue(msgs[i],'id');
}

var users=xmlDoc.getElementsByTagName("u");
if(users.length>0) ClearUserlist();
for (var i=0;i<users.length;i++)
{
// function AddUser(nick,type,daycredits)
AddUser(getNodeValue(users[i],'l'),getNodeValue(users[i],'st'),getNodeValue(users[i],'dc'));
}

//alert ("FID="+fromid);
}

var xmlRequest = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Msxml2.XMLHTTP");
initChat();
</script>
Пользуемся тегами code!
« Последнее редактирование: јРав 17, 2009, 05:59:16 pm от razb »

Оффлайн knit_maxim

  • Глобальный модератор
  • Коллежский асессор
  • *****
  • Сообщений: 246
  • Репутация: 12
  • Пол: Мужской
Re: помогите плиз.в долгу не останусь
« Ответ #1 : јРав 26, 2009, 03:46:54 pm »
Если хочется заплатить кому нибудь денежку, то лучше сразу в платный раздел, там быстрее помогут
Если человек счастлив больше одного дня, значит от него что-то скрывают.
Если Вам кто-то помог, нажмите

Оффлайн wind

  • Коллежский регистратор
  • *
  • Сообщений: 2
  • Репутация: 0
Re: помогите плиз.в долгу не останусь
« Ответ #2 : °ЯаХЫм 08, 2009, 04:49:33 pm »
Здравствуйте!!! может кто поможет.Есть чат я на яваскрипте там я не могу поставит знак +;
Хотя люди его как то там ставят, просто мой знак + заменяется пробелом. на сколько я понимаю стоят фильтры
Может в коде что изменить?
вот код Java
Ну во первых не JAVA а JavaScript... разница есть!
Во вторых код тут не при чем... просто при передаче запроса (yt важно POST или GET) символ + имеет значение соединителя " " (пробел), так что самое простое это ставить вместо него "%2B" если ошибаюсь... но смотреть в эту сторону... Если что, это шестнадцатиричное значение символа ;)

Вообще странно, что сообщения не эскейпятся...