Slash3977 | Дата: Вторник, 29.06.2010, 16:55 | Сообщение # 1 |
Админ!и что?
Группа: Администраторы
Сообщений: 74
Статус: Offline
| Имеется тэг username, privat, чтобы очистить чат достаточно набрать в чат слово "Очистить" В базу Code CREATE TABLE IF NOT EXISTS `shoutbox` ( `id` smallint(6) NOT NULL auto_increment, `userid` smallint(6) NOT NULL default '0', `username` varchar(25) character set cp1251 collate cp1251_bin NOT NULL default '', `date` int(11) NOT NULL default '0', `text` text character set cp1251 collate cp1251_bin NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=27 ; Потом в корне создаем файл chat.php Code <?
require_once("include/bittorrent.php");
dbconn(false);
loggedinorreturn();
stdhead(Чат); if ($CURUSER["schoutboxpos"] == 'no') { stdmsg("Oшибка", "Вам было запрещено Использовать Чат ."); stdfoot(); exit; } ?>
<script language=javascript> function SmileIT(smile,form,text){ window.document.forms[form].elements[text].value = window.document.forms[form].elements[text].value+" "+smile+" "; window.document.forms[form].elements[text].focus(); } </script> <? begin_frame("Чат"); if (get_user_class() >= UC_MODERATOR) print("<center><font size=\"-2\">[Чтобы очистить чат введите слово <b>Очистить</b>, или проследуйте по <a class=altlink href=clear.php?action=clearshout><b>ссылке</b></a>]</font></center>"); print("<form action=\"shoutbox.php\" method=\"post\" name=\"shoutform\" onsubmit=\"return sendShout(this);\">");
?> <table border="0" cellspacing="0" cellpadding="5" width="100%" > <tr><td colspan="2" style="white-space: nowrap; border: none;" align="center"> <a href="javascript: SmileIT(':)','shoutform','shout')"><img border="0" src="pic/smilies/smile1.gif"></a> <a href="javascript: SmileIT(':(','shoutform','shout')"><img border="0" src="pic/smilies/sad.gif"></a> <a href="javascript: SmileIT(';-)','shoutform','shout')"><img border="0" src="pic/smilies/wink.gif"></a> <a href="javascript: SmileIT(':-P','shoutform','shout')"><img border="0" src="pic/smilies/tongue.gif"></a> <a href="javascript: SmileIT(':whistle:','shoutform','shout')"><img border="0" src="pic/smilies/whistle.gif"></a> <a href="javascript: SmileIT(':yawn:','shoutform','shout')"><img border="0" src="pic/smilies/yawn.gif"></a> <a href="javascript: SmileIT(':blush:','shoutform','shout')"><img border="0" src="pic/smilies/blush.gif"></a> <a href="javascript: SmileIT(':book:','shoutform','shout')"><img border="0" src="pic/smilies/book.gif"></a> <a href="javascript: SmileIT('::'-(','shoutform','shout')"><img border="0" src="pic/smilies/cry.gif"></a> <a href="javascript: SmileIT(':angry:','shoutform','shout')"><img border="0" src="pic/smilies/angry.gif"></a> <a href="javascript: SmileIT(':guns:','shoutform','shout')"><img border="0" src="pic/smilies/guns.gif"></a> <a href="javascript: SmileIT(':mama:','shoutform','shout')"><img border="0" src="pic/smilies/mama.gif"></a> <a href="javascript: SmileIT(':wave:','shoutform','shout')"><img border="0" src="pic/smilies/wave.gif"></a> <a href="javascript: SmileIT(':idea:','shoutform','shout')"><img border="0" src="pic/smilies/idea.gif"></a> </td></tr> <tr> <td colspan="2" style="white-space: nowrap; border: none;" width="100%" > <input type="text" name="shout" style="width: 75%" MAXLENGTH="300" /> <input type="submit" value="Отправить" /> <input type="button" value="Смайлы" onClick="javascript:winop()">
</td style="white-space: nowrap; border: none;">
</tr>
<tr> <td style="border: none;">
<div id="shoutbox" style="overflow: auto; height: 450px; width: 100%; padding-top: 0cm"> Загрузка, пожалуйста подождите..... </div> </td> <td style="white-space: nowrap; border: none;" valign="top" width="20%"> <script language="javascript" type="text/javascript" src="js/radio.js"></script> <style type="text/css"> .mju{width:150px;text-align:center;color:#444;font:10px Arial;} .mju a{color:#444;font:10px Arial;text-decoration:underline;} .mju a:hover{text-decoration:none;} </style> <div class="mju"> <object width="150" height="68" id="mju"> <param name="allowScriptAccess" value="sameDomain" /> <param name="swLiveConnect" value="true" /> <param name="movie" value="mju.swf" /> <param name="flashvars" value="playlist=playlist.mpl&auto_run=false&repeat_one=false&shuffle=false" /> <param name="loop" value="false" /> <param name="menu" value="false" /> <param name="quality" value="high" /> <param name="wmode" value="transparent" /> <embed src="radio/mju.swf" flashvars="playlist=radio/playlist.mpl&auto_run=false&repeat_one=false&shuffle=false" loop="false" menu="false" quality="high" wmode="transparent" bgcolor="#202020" width="150" height="68" name="mju" allowScriptAccess="sameDomain" swLiveConnect="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> </div> <hr width="100%"> <div id="wol" style="overflow: auto; height: 380px; width: 150px;"><font size="-2">
Загрузка... </font></div><br /> </td>
</tr> <table> <td style="border: none;"><tr><td style="border: none;"> <b>В чате запрещено:</b><br /> <img src="pic/buttons/control.png" border="0"> Материться, в том числе использовать скрытый мат.<br /> <img src="pic/buttons/control.png" border="0"> Оскорблять друг друга (задумайтесь над этим, не нужно хамить в ответ если Вас кто-то оскорбил, мы не будем разбираться, "кто первый начал").<br /> <img src="pic/buttons/control.png" border="0"> Флудить текстом и смайлами.<br /> <img src="pic/buttons/control.png" border="0"> Злоупотреблять BB кодом (выделение цветом, жирностью и т.п).<br /> <img src="pic/buttons/control.png" border="0"> Обсуждать/рекламировать другие трекеры (реклама в ЛС так же запрещена).<br /> <img src="pic/buttons/control.png" border="0"> Злоупотреблять Caps Lock (более 50% заглавных букв), а так же смайлами (более 5 на сообщение).<br /> <img src="pic/buttons/control.png" border="0"> Вставлять смайлы/картинки с внешних ресурсов. <br /><br /> <img src="pic/buttons/control_double.png" border="0"> <b>Нарушение данных правил карается предупреждением, закрытием доступа к чату, либо закрытием доступа к трекеру. </td>
</tr></td></table> <?
print("</form>"); end_frame(); stdfoot(); ?>
<script language="javascript"> function InsertSmilie(texttoins) { document.shoutform.shout.value = document.shoutform.shout.value+' '+texttoins+' '; document.shoutform.shout.focus(); return false; } </script>
<SCRIPT LANGUAGE="JAVASCRIPT"> <!--
function winop() { windop = window.open("moresmiles.php?form=shoutform&text=shout","mywin","height=500,width=450,resizable=no,scrollbars=yes"); }
function winoptag() { windop = window.open("tags.php?form=shbox&text=shbox_text","mywin","height=500,width=450,resizable=no,scrollbars=yes"); }
function winopar() { windop = window.open("shoutbox.php?form=shbox&text=shbox_text","mywin","height=500,width=450,resizable=no,scrollbars=yes"); }
//--> </SCRIPT>
<div id="loading-layer" style="display: none; font-family: Lucida Sans Unicode; font-size: 11px; width: 200px; height: 100px; background: #EDFCEF; padding: 10px; text-align: center; border: 1px solid #000"> <div style="font-weight:bold" id="loading-layer-text"><img src="http://zver.homelinux.net/treker/pic/smilies/baby.gif" border="0"><font color="red"> Загрузка. Пожалуйста, подождите...</font></div><br /> <img src="pic/loading.gif" border="0" /> </div> <script language="javascript" type="text/javascript" src="js/ajax.js"></script> <script type="text/javascript"> <!-- function sendShout(formObj) {
/*if (postingShout) { alert('Отправка сообщения...') return false }*/
Shout = formObj.shout.value
if (Shout.replace(/ /g, '') == '') { alert('Вы должны вести сообщение!') return false }
sb_Clear();
var ajax = new tbdev_ajax(); ajax.onShow (''); //ajax.onShow = function() { }; var varsString = ""; ajax.requestFile = "shoutbox.php"; ajax.setVar("do", "shout"); ajax.setVar("shout", escape(Shout)); ajax.method = 'GET'; ajax.element = 'shoutbox'; ajax.sendAJAX(varsString);
return false }
function getShouts() {
var ajax = new tbdev_ajax(); ajax.onShow = function() { }; var varsString = ""; ajax.requestFile = "shoutbox.php"; ajax.method = 'GET'; ajax.element = 'shoutbox'; ajax.sendAJAX(varsString);
setTimeout('getShouts()', 10000);
return false
}
function getWOL() {
var ajax = new tbdev_ajax(); ajax.onShow = function() { }; var varsString = ""; ajax.requestFile = "online.php"; ajax.method = 'GET'; ajax.setVar("wol", 1); ajax.element = 'wol'; ajax.sendAJAX(varsString);
setTimeout('getWOL()', 1000);
return false
}
function sb_Clear() { document.forms["shoutform"].shout.value = '' return true; }
function deleteShout(id) { { var ajax = new tbdev_ajax(); ajax.onShow = function() { }; var varsString = ""; ajax.requestFile = "shoutbox.php"; ajax.setVar("do", "delete"); ajax.setVar("id", id); ajax.method = 'GET'; ajax.element = 'shoutbox'; ajax.sendAJAX(varsString); }
return false
}
getShouts();
getWOL();
--> </script> Далее создаем файл shoutbox.php Code <? require_once("include/bittorrent.php"); dbconn(); loggedinorreturn(); header("Content-Type: text/html; charset=Windows-1251"); if ($CURUSER["schoutboxpos"] == 'no') { stdmsg("Oшибка", "Вам было запрещено Использовать Чат ."); stdfoot(); exit; } if ($CURUSER) { ///////////session///////////////// mysql_query("UPDATE users SET page=1 WHERE id = " . $CURUSER["id"]) or sqlerr(__FILE__,__LINE__); ///////////////////////////////////
}
function decode_unicode_url($str) { $res = '';
$i = 0; $max = strlen($str) - 6; while ($i <= $max) { $character = $str[$i]; if ($character == '%' && $str[$i + 1] == 'u') { $value = hexdec(substr($str, $i + 2, 4)); $i += 6;
if ($value < 0x0080) // 1 byte: 0xxxxxxx $character = chr($value); else if ($value < 0x0800) // 2 bytes: 110xxxxx 10xxxxxx $character = chr((($value & 0x07c0) >> 6) | 0xc0) . chr(($value & 0x3f) | 0x80); else // 3 bytes: 1110xxxx 10xxxxxx 10xxxxxx $character = chr((($value & 0xf000) >> 12) | 0xe0) . chr((($value & 0x0fc0) >> 6) | 0x80) . chr(($value & 0x3f) | 0x80); } else $i++;
$res .= $character; }
return $res . substr($str, $i); }
function convert_text($s) { $out = "";
for ($i=0; $i<strlen($s); $i++) { $c1 = substr ($s, $i, 1); $byte1 = ord ($c1); if ($byte1>>5 == 6) // 110x xxxx, 110 prefix for 2 bytes unicode { $i++; $c2 = substr ($s, $i, 1); $byte2 = ord ($c2); $byte1 &= 31; // remove the 3 bit two bytes prefix $byte2 &= 63; // remove the 2 bit trailing byte prefix $byte2 |= (($byte1 & 3) << 6); // last 2 bits of c1 become first 2 of c2 $byte1 >>= 2; // c1 shifts 2 to the right
$word = ($byte1<<8) + $byte2; if ($word==1025) $out .= chr(168); // ? elseif ($word==1105) $out .= chr(184); // ? elseif ($word>=0x0410 && $word<=0x044F) $out .= chr($word-848); // ?-? ?-? else { $a = dechex($byte1); $a = str_pad($a, 2, "0", STR_PAD_LEFT); $b = dechex($byte2); $b = str_pad($b, 2, "0", STR_PAD_LEFT); $out .= "".$a.$b.";"; } } else { $out .= $c1; } }
return $out; }
if ($_GET["do"] == "shout") { $shout = convert_text(urldecode(decode_unicode_url($_GET["shout"]))); if ($shout == "очистить" && get_user_class() >= UC_MODERATOR) { mysql_query("TRUNCATE TABLE shoutbox"); die("Сообшений нет"); } $sender = $CURUSER["id"]; if (!empty($shout)) { $shout = preg_replace("/\/me /", $CURUSER["username"]." ", $shout); $datee = time(); mysql_query("INSERT INTO shoutbox (date, text, userid) VALUES (".implode(", ", array_map("sqlesc", array($datee, $shout, $sender))).")") or sqlerr(__FILE__,__LINE__); } else print("<script>alert('Введи сообщение');</script>"); } elseif ($_GET["do"] == "delete" && get_user_class() >= UC_MODERATOR && is_valid_id($_GET["id"])) { $id = $_GET["id"]; mysql_query("DELETE FROM shoutbox WHERE id = $id") or sqlerr(__FILE__,__LINE__); } $res = mysql_query("SELECT shoutbox.*, users.username, users.warned, users.id as uid, users.class FROM shoutbox INNER JOIN users ON shoutbox.userid = users.id ORDER BY id DESC LIMIT 35") or sqlerr(__FILE__,__LINE__); if (mysql_num_rows($res) == 0) die("Сообшений нет"); print("\n"); while ($arr = mysql_fetch_array($res)) {
if ($arr["warned"] == "yes") $warn = "<img src=\"pic/warned8.gif\" alt=\"Предупрежден\"/>"; else $warn = ""; $username = $arr["username"];
$arr["text"] = format_comment($arr["text"]);
$arr["text"] = str_replace("[$CURUSER[username]]","<font color=#000000>{</font><b style='color: red; background: #FFFFFF;'>$CURUSER[username]</b><font color=#000000>}</font>",$arr["text"]);
$arr["text"] = preg_replace("/\[((\s|.)+?)\]/", "<font color=#000000>[</font><b style='color: black;'>\\1</b><font color=#000000>]</font>", $arr["text"]);
if (strpos($arr["text"], "privat($CURUSER[username])") !== false) {
$variabila = "privat($CURUSER[username])"; $nume = substr($variabila, 7); $nume = substr($nume, 0, strlen($nume)-1);
if (($CURUSER["username"] == $nume) || ($CURUSER["id"] == "".$arr["userid"]."")) {
$arr["text"] = str_replace("privat($CURUSER[username])","<b style='color: red; background: #FFFFFF;'>$CURUSER[username]</b>:",$arr["text"]);
$arr["text"] = preg_replace("/privat\(([^()<>\s]+?)\)/i","<b style='color: #000000; background: #FFFFFF;'>\\1</b>", $arr["text"]);
print("<span class='date'>[".strftime("%H:%M:%S",$arr["date"])."]</span>" . (get_user_class() >= UC_MODERATOR ? "<span onclick=\"deleteShout($arr[id]);\" style=\"cursor: pointer; color: red; font-weight: bold; text-decoration: underline\"><img src=\"pic/warned2.gif\" style=\"border: 0px;\" /></span>" : "") . " <a target=_blank href=message.php?action=sendmessage&receiver=".$arr['userid']." title=\"Отправить ЛС\"><img src=\"pic/pn_inbox.gif\" border=\"0\"></a> <a href=userdetails.php?id=".$arr["uid"]." target='_blank'><img src=\"pic/info/guest.gif\" border=0 title=\"Посмотреть профиль\"><span onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='privat($username) '+parent.document.shoutform.shout.value;return false;\" title=\"Приват\" style=\"cursor: pointer; color: red; font-weight: bold;\"><img src=\"pic/info/group.gif\" alt=\"Приват\" title=\"Приват\"></span></a> <a href=\"userdetails.php?id=".$arr["uid"]."\" onClick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='[".$username."]: '+parent.document.shoutform.shout.value;return false;\">".get_user_class_color($arr["class"], $arr["username"]) . "</a>$warn: ".($arr["text"])."<br />\n"); } } else if ((($CURUSER["id"] == "".$arr["userid"]."") OR (get_user_class() >= UC_MODERATOR)) AND (get_user_class() >= $arr["class"]) AND (strpos($arr["text"], "privat(") !== false)) {
$arr["text"] = preg_replace("/privat\(([^()<>\s]+?)\)/i","<b style='color: red; background: #FFFFFF;'>{\\1}</b>", $arr["text"]);
print("<span class='date'>[".strftime("%H:%M:%S",$arr["date"])."]</span>" . (get_user_class() >= UC_MODERATOR ? "<span onclick=\"deleteShout($arr[id]);\" style=\"cursor: pointer; color: red; font-weight: bold; text-decoration: underline\"><img src=\"pic/warned2.gif\" style=\"border: 0px;\" /></span>" : "") . " <a target=_blank href=message.php?action=sendmessage&receiver=".$arr['userid']." title=\"Отправить ЛС\"><img src=\"pic/pn_inbox.gif\" border=\"0\"></a> <a href=userdetails.php?id=".$arr["uid"]." target='_blank'><img src=\"pic/info/guest.gif\" border=0 title=\"Посмотреть профиль\"></a><span onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='privat($username) '+parent.document.shoutform.shout.value;return false;\" title=\"Приват\" style=\"cursor: pointer; color: red; font-weight: bold;\"><img src=\"pic/info/group.gif\" alt=\"Приват\" title=\"Приват\"></span> <a href=\"userdetails.php?id=".$arr["uid"]."\" onClick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='[".$username."]: '+parent.document.shoutform.shout.value;return false;\">".get_user_class_color($arr["class"], $arr["username"]) . "</a>$warn: ".($arr["text"])."<br />\n"); } elseif (strpos($arr["text"], "privat(") !== false) { } else {
print("<span class='date'>[".strftime("%H:%M:%S",$arr["date"])."]</span>" . (get_user_class() >= UC_MODERATOR ? "<span onclick=\"deleteShout($arr[id]);\" style=\"cursor: pointer; color: red; font-weight: bold; text-decoration: underline\"><img src=\"pic/warned2.gif\" style=\"border: 0px;\" /></span>" : "") . " <a target=_blank href=message.php?action=sendmessage&receiver=".$arr['userid']." title=\"Отправить ЛС\"><img src=\"pic/pn_inbox.gif\" border=\"0\"></a> <a href=userdetails.php?id=".$arr["uid"]." target='_blank'><img src=\"pic/info/guest.gif\" border=0 title=\"Посмотреть профиль\"></a><span onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='privat($username) '+parent.document.shoutform.shout.value;return false;\" title=\"Приват\" style=\"cursor: pointer; color: red; font-weight: bold; \"><img src=\"pic/info/group.gif\" alt=\"Приват\" title=\"Приват\"></span> <a href=\"userdetails.php?id=".$arr["uid"]."\" onClick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='[".$username."]: '+parent.document.shoutform.shout.value;return false;\">".get_user_class_color($arr["class"], $arr["username"]) . "</a>$warn: ".($arr["text"])."<br />\n"); } }
?> Далее создаем файл online.php Code <? include_once("include/bittorrent.php"); dbconn(); header("Content-Type: text/html; charset=Windows-1251");
print " <div id=\"wol\">"; mysql_query("UPDATE users SET page=1 WHERE id = " . $CURUSER["id"]) or sqlerr(__FILE__,__LINE__);
$dt = gmtime() - 5; $dt = sqlesc(get_date_time($dt)); $res = mysql_query("SELECT id, username, gender, class, donor, warned, parked FROM users WHERE last_access >= $dt ORDER BY username") or print(mysql_error()); while ($arr = mysql_fetch_assoc($res)) { if ($arr["gender"] == "1") $gender = "<img src=\"pic/male.gif\" alt=\"Парень\" title=\"Парень\">"; elseif ($arr["gender"] == "2") $gender = "<img src=\"pic/female.gif\" alt=\"Девушка\" title=\"Девушка\">"; $username = $arr['username']; $id = $arr['id'];
echo "<font size = 1,5><a href=userdetails.php?id=$id target='_blank'><img src=\"pic/info/guest.gif\" border=0 title=\"Посмотреть профиль\"></a><span onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='privat($username) '+parent.document.shoutform.shout.value;return false;\" title=\"Приват\" style=\"cursor: pointer; color: red; font-weight: bold;\"><img src=\"pic/info/group.gif\" alt=\"Приват\" title=\"Приват\"></span> <a href=userdetails.php?id=$id onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='[$username]: '+parent.document.shoutform.shout.value;return false;\" target=_blank>".get_user_class_color($arr["class"], $arr["username"]) . "</a>".$gender."</font><br />"; } print "</div>"; ?> Далее clear.php Code <?php require_once("include/bittorrent.php"); dbconn(); loggedinorreturn(); if (get_user_class() < UC_MODERATOR) stderr('Ошибка', 'Не достаточно прав.');
$action = ($_POST['action'] ? $_POST['action'] : ($_GET['action'] ? $_GET['action'] : 'start'));
if ($action == 'clearshout') { mysql_query('TRUNCATE TABLE shoutbox') or sqlerr(__FILE__, __LINE__); header("Refresh: 3; url=chat.php"); stderr('Очистка прошла успешно.','Таблица чата была успешно очищена. Сейчас вы будете возвращены в чат.'); }elseif ($action == 'start') { stderr('Очистить таблицы','Нажмите <a href="'.$_SERVER['SCRIPT_NAME'].'?action=clearshout">сюда</a> что-бы очистить таблицы.',false); } ?>
|
|
| |
Slash3977 | Дата: Вторник, 29.06.2010, 16:55 | Сообщение # 2 |
Админ!и что?
Группа: Администраторы
Сообщений: 74
Статус: Offline
| js/ajax.js Code function _get_obj_toppos(obj) { var top = obj.offsetTop; while( (obj = obj.offsetParent) != null ) { top += obj.offsetTop; } return top; } function center_div() { this.divname = ''; this.divobj = ''; } center_div.prototype.clear_div = function() { try { if ( ! this.divobj ) { return; } else { this.divobj.style.display = 'none'; } } catch(e) { return; } } center_div.prototype.Ywindow = function() { var scrollY = 0; if ( document.documentElement && document.documentElement.scrollTop ) { scrollY = document.documentElement.scrollTop; } else if ( document.body && document.body.scrollTop ) { scrollY = document.body.scrollTop; } else if ( window.pageYOffset ) { scrollY = window.pageYOffset; } else if ( window.scrollY ) { scrollY = window.scrollY; } return scrollY; } center_div.prototype.move_div = function() { try { this.divobj = document.getElementById( this.divname ); } catch(e) { return; } // Figure width and height var my_width = 0; var my_height = 0; if ( typeof( window.innerWidth ) == 'number' ) { my_width = window.innerWidth; my_height = window.innerHeight; } else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { my_width = document.documentElement.clientWidth; my_height = document.documentElement.clientHeight; } else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { my_width = document.body.clientWidth; my_height = document.body.clientHeight; } this.divobj.style.position = 'absolute'; this.divobj.style.display = 'block'; this.divobj.style.zIndex = 99; var divheight = parseInt( this.divobj.style.Height ); var divwidth = parseInt( this.divobj.style.Width ); divheight = divheight ? divheight : 50; divwidth = divwidth ? divwidth : 200; var scrolly = this.Ywindow(); var setX = ( my_width - divwidth ) / 2; var setY = ( my_height - divheight ) / 2 + scrolly; setX = ( setX < 0 ) ? 0 : setX; setY = ( setY < 0 ) ? 0 : setY; this.divobj.style.left = setX + "px"; this.divobj.style.top = setY + "px"; } function tbdev_ajax(file){ this.AjaxFailedAlert = "Ваш браузер не поддерживает расширенные возможности управления сайтом, мы настоятельно рекомендуем сменить браузер.\n"; this.requestFile = file; this.method = "POST"; this.URLString = ""; this.encodeURIString = true; this.execute = false; this.loading_fired = 0; this.centerdiv = null; this.onLoading = function() { }; this.onLoaded = function() { }; this.onInteractive = function() { }; this.onCompletion = function() { }; this.onShow = function( message ) { if ( ! this.loading_fired ) { this.loading_fired = 1; // Change text? if ( message ) { document.getElementById( 'loading-layer-text' ).innerHTML = message; } this.centerdiv = new center_div(); this.centerdiv.divname = 'loading-layer'; this.centerdiv.move_div(); } return; }; this.onHide = function() { try { if ( this.centerdiv && this.centerdiv.divobj ) { this.centerdiv.clear_div(); } } catch(e) { } this.loading_fired = 0; return; }; this.createAJAX = function() { try { this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (err) { this.xmlhttp = null; } } if(!this.xmlhttp && typeof XMLHttpRequest != "undefined") this.xmlhttp = new XMLHttpRequest(); if (!this.xmlhttp){ this.failed = true; } }; this.setVar = function(name, value){ if (this.URLString.length < 3){ this.URLString = name + "=" + value; } else { this.URLString += "&" + name + "=" + value; } } this.encVar = function(name, value){ var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value); return varString; } this.encodeURLString = function(string){ varArray = string.split('&'); for (i = 0; i < varArray.length; i++){ urlVars = varArray[i].split('='); if (urlVars[0].indexOf('amp;') != -1){ urlVars[0] = urlVars[0].substring(4); } varArray[i] = this.encVar(urlVars[0],urlVars[1]); } return varArray.join('&'); } this.encodeVAR = function(url){ url = url.toString(); var regcheck = url.match(/[x90-xFF]/g); if ( regcheck ) { for (var i = 0; i < i.length; i++) { url = url.replace(regcheck[i], '%u00' + (regcheck[i].charCodeAt(0) & 0xFF).toString(16).toUpperCase()); } } return escape(url).replace(/+/g, "%2B"); } this.runResponse = function(){ eval(this.response); } this.sendAJAX = function(urlstring){ this.responseStatus = new Array(2); if(this.failed && this.AjaxFailedAlert){ alert(this.AjaxFailedAlert); } else { if (urlstring){ if (this.URLString.length){ this.URLString = this.URLString + "&" + urlstring; } else { this.URLString = urlstring; } } if (this.encodeURIString){ var timeval = new Date().getTime(); this.URLString = this.encodeURLString(this.URLString); //this.setVar("rndval", timeval); } if (this.element) { this.elementObj = document.getElementById(this.element); } if (this.xmlhttp) { var self = this; if (this.method == "GET") { var totalurlstring = this.requestFile + "?" + this.URLString; this.xmlhttp.open(this.method, totalurlstring, true); } else { this.xmlhttp.open(this.method, this.requestFile, true); } if (this.method == "POST"){ try { this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded') } catch (e) {} } this.xmlhttp.send(this.URLString); this.xmlhttp.onreadystatechange = function() { switch (self.xmlhttp.readyState){ case 1: self.onLoading(); break; case 2: self.onLoaded(); break; case 3: self.onInteractive(); break; case 4: self.response = self.xmlhttp.responseText; self.responseXML = self.xmlhttp.responseXML; self.responseStatus[0] = self.xmlhttp.status; self.responseStatus[1] = self.xmlhttp.statusText; self.onCompletion(); if(self.execute){ self.runResponse(); } if (self.elementObj) { var elemNodeName = self.elementObj.nodeName; elemNodeName.toLowerCase(); self.onHide(); if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){ if (self.response == 'error') { alert('Доступ отклонен'); } else { self.elementObj.value = self.response; } } else { if (self.response == 'error') { alert('Доступ отклонен'); } else { self.elementObj.innerHTML = self.response; } } } self.URLString = ""; break; } }; } } }; this.createAJAX(); } function signup_check(action) { var ajax = new tbdev_ajax(); ajax.onShow (''); var varsString = ""; ajax.requestFile = "check_signup.php"; if (action == "username") ajax.setVar("username", document.getElementById('wantusername').value); if (action == "password"){ ajax.setVar("password", document.getElementById('wantpassword').value); ajax.setVar("passagain", document.getElementById('passagain').value);} if (action == "email") ajax.setVar("email", document.getElementById('email').value); ajax.element = 'check_' + action; ajax.setVar("action", action); ajax.method = 'POST'; ajax.sendAJAX(varsString); }
|
|
| |