Рабочий ЧАТ на Iframe

Готовые уроки IFrame + ВКонтакте API
Hail
Сообщения: 35
Зарегистрирован: 11 авг 2010, 22:21

Рабочий ЧАТ на Iframe

Сообщение Hail »

Вставляем в Index.php

Код: Выделить всё

<div id="chats" style="height:100; overflow: scroll; overflow: auto; background-color: white;  text-align:left; padding:2px 2px 2px 2px;  margin:0px 0px 2px 0px; color:#b6b19d; border:1px  solid #bdc7d8"></div> <script src="jquery-1.4.2.min.js" charset="windows-1251"></script> <script type="text/javascript">function addchats(text) { var text = text; if (text == "") var text = "всем привет"; var stroka2 = "<?require 'vkapi.class.php';define('API_ID', "*********"); // ID вашего приложенияdefine('API_VERSION', "3.0"); // Версия API (на данный момент она равняется 3.0)define('API_SECRET', "*********************"); // Тот самый защищённый ключ // Генерируем подлинный auth_key (для наглядности, назовём его secret_key)$secret_key = md5(API_ID . "_" . $_GET['viewer_id'] . "_" . API_SECRET); // вместо постоянной  API_ID, можно воспользоваться полученной от сервера $_GET['api_id']. Разницы между этими  значениями нет (если, конечно, запрос не фальшивый :)) // Если нет сессии (т.е. пользователь НЕ авторизирован), сравниваем наш подлинный secret_key с  полученным auth_key, и при успехе ставим сессию user_id, содержащую id текущего пользователя.if (!$_SESSION['user_id']){    if ($_GET['auth_key'] == $secret_key)    {        $_SESSION['user_id'] = $_GET['viewer_id'];    }}$method = "getProfiles";$sig = md5("api_id=" . API_ID . "method=" . $method . "uids=" . $_SESSION['user_id'] . "v=" .  API_VERSION . API_SECRET);$user = simplexml_load_file("http://api.vkontakte.ru/api.php?api_id=" . API_ID . "&v=" .  API_VERSION . "&method=" . $method . "&uids=" . $_SESSION['user_id'] . "&sig=" . $sig);$zname = $user->user->first_name;$zfam = $user->user->last_name;$zid = $user->user->uid;?><? echo "$zid $zname $zfam пишет:"; ?>"; $.post("addchat.php", { check: text, stroka: stroka2 }, function(data) {  document.getElementById('textchat').value='';  } ); }</script> <input  type=text id="textchat" name="textchat" title="напишите сообщение в чат" size=30  maxlength=50>  <INPUT TYPE=IMAGE SRC="chatadd.gif" onmouseover="this.src='chatadd2.gif';"  onmouseout="this.src='chatadd.gif';" id="okey3" name="okey3"    onclick="addchats(document.getElementById('textchat').value); return false;" title="написать в  чат" VALUE="написать"> <script type="text/javascript"> function chatad() {  $.post("getchat.php", {  }, function(data) {   document.getElementById('chats').innerHTML =  '';   for(var i = 1; i <= 20; i++) {   document.getElementById('chats').innerHTML +=  ' ' + $(data).find("time" + i).text() + ' '  + '<a href=http://vkontakte.ru/id' + $(data).find("uid" + i).text() + ' ' + 'target="_blank">'  + $(data).find("first_name" + i).text() + ' ' + $(data).find("last_name" + i).text() + '</a>';      document.getElementById('chats').innerHTML += ' ' + $(data).find("text" + i).text()  + '  <br>';   }    }, "xml" ); setTimeout('chatad()', 1000); }</script><script type="text/javascript">setTimeout('chatad()', 1000);</script>  

в файл getchat.php вставляем

Код: Выделить всё

<?header('Content-Type: text/xml; charset=UTF-8');$file5 = file("chat.txt");if ($file5) {$ss2 = 0;for ($ss=1;$ss<21;$ss++) {${pieces.$ss} = explode(" ", iconv('windows-1251', 'UTF-8', $file5[$ss2]));$ss2++;}} echo"<xml><body>"; for ($t=1;$t<21;$t++) {  echo "<time$t>" . ${pieces.$t}[0]. "</time$t>"; echo "<uid$t>" . ${pieces.$t}[2]. "</uid$t>"; echo "<first_name$t>" . ${pieces.$t}[3]. "</first_name$t>"; echo "<last_name$t>" . ${pieces.$t}[4]. "</last_name$t>"; echo "<text$t>"; for ($mm=5;$mm<count(${pieces.$t});$mm++) { echo  ${pieces.$t}[$mm]." "; } echo "</text$t>";}  echo "</body></xml>"; ?>
и в addchat.php

Код: Выделить всё

<?if (isset($_POST['stroka'])) { $dates = date( 'H:i:s d/m/y', time() );$chatstr = $dates;$storki = $_POST['stroka'];$chatstr = "$chatstr $storki";$testfrom = $_POST['check'];$chatstr = "$chatstr $testfrom";$chatstr = iconv('UTF-8', 'windows-1251', $chatstr);} $file_chat="chat.txt"; // файл гостевой книги$file_temp="tempchat.txt"; // временный файл  $fe = file_exists($file_temp); if($fe != TRUE) {if(copy($file_chat, $file_temp))  {  if($w=fopen($file_chat,"w")) {  flock($w,2); // локируем файл  fwrite($w,$chatstr."\n"); // записываем первую строку   if ($r=fopen($file_temp,"r")) {   flock($r,1);   $x = 0;   while( ($str=fgets($r,10240)) && ($x < 20) ) // читаем построчно    {     $x++;     fputs($w,$str); // пишем построчно    }   flock($r,3);   fclose($r);   flock($w,3);   fclose($w);   unlink($file_temp);  } } }} ?>
создаем chat.txt всё это закидываем на сервер и ставим права на запись для chat.txt
Всё наслаждаемся!!!! тема взята от автора azzzi и код немного переделал!!!!

пример работы чата здесь: http://vkontakte.ru/app1833150
Van
Сообщения: 17
Зарегистрирован: 26 мар 2010, 15:16

Re: Рабочий ЧАТ на Iframe

Сообщение Van »

Толи я дурак, толи лыжи не едут. добовляю сообщение в чат в chat.txt оно добовляется но в приложение как в таковом не отображается...


ЗАменил фрагмент кода который нужно добавить в index.php

на

Код: Выделить всё

<script type="text/javascript"> function chatad() {  $.post("getchat.php", {  }, function(data) {    document.getElementById('chats').innerHTML =  '';   for(var i = 1; i <= 20; i++) {   document.getElementById('chats').innerHTML +=  ' ' + $(data).find("time" + i).text() + ' ' + '<a href=http://vkontakte.ru/id' + $(data).find("uid" + i).text() + ' ' + 'target="_blank">' + $(data).find("first_name" + i).text() + ' ' + $(data).find("last_name" + i).text() + '</a>';     document.getElementById('chats').innerHTML += ' ' + $(data).find("text" + i).text()  + ' <br>';   }    }, "xml" ); setTimeout('chatad()', 1000); }</script>
и заработало :D
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Рабочий ЧАТ на Iframe

Сообщение Влад »

а у меня, не пишет в файл
Hail
Сообщения: 35
Зарегистрирован: 11 авг 2010, 22:21

Re: Рабочий ЧАТ на Iframe

Сообщение Hail »

Влад писал(а):а у меня, не пишет в файл
права на запись стоят в chat.txt??? по идеи должен писать у мну робит я могу исходник скинуть если надо!!!
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Рабочий ЧАТ на Iframe

Сообщение Влад »

Скинь пожалуйста исходник рабочий, если не тяжело, все права 777
Hail
Сообщения: 35
Зарегистрирован: 11 авг 2010, 22:21

Re: Рабочий ЧАТ на Iframe

Сообщение Hail »

Вот исходник http://promo-rap.ru/chat.rar только index.php поправить не забудьте вести своё id приложение и защещённый ключ
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Рабочий ЧАТ на Iframe

Сообщение Влад »

У меня что-то с сервером наверное, все равно не записывает в файл, попробую переделать...
Fantom2067
Сообщения: 16
Зарегистрирован: 15 фев 2011, 23:34

Re: Рабочий ЧАТ на Iframe

Сообщение Fantom2067 »

Ссылка на исходник не рабочая, киньте пжлст рабочую ссылку
maksimn
Сообщения: 59
Зарегистрирован: 26 мар 2011, 10:46

Re: Рабочий ЧАТ на Iframe

Сообщение maksimn »

Тоже жду исходник.
maksimn
Сообщения: 59
Зарегистрирован: 26 мар 2011, 10:46

Re: Рабочий ЧАТ на Iframe

Сообщение maksimn »

Скачал исходник. На Denwer`е все работает, а после закачки на сервер не пишет в файл chat.txt. Права 777.
Ответить