PHP

Анонимка.Чат исходники. Описание методов работы с сервером.



Как уже писал ранее, имеется у меня на «складе», один бесперспективный проект, идей по развитию которого у меня просто нет, да и не думаю что они появятся, так как проект был написан на скорую руку, для сдачи как курсовой проект в моём учебном заведении.
Сегодня, решил всё же опубликовать исходники, данного проекта. Изначально проект назывался Анонимка.Чат, почему так? Всё просто. Изначально задумка была в создании анонимного чата, что очень легко реализовать на основе моего кода, но не суть, я просто передумал icon smile Анонимка.Чат исходники. Описание методов работы с сервером. Мне просто было лень дописать несколько строчек, да и полно в интернете анонимных чатов. А куда нам до «гигантов».
Многовато получается истории, перейдем к делу. В этой записи(ниже) можно скачать исходники проекта написанного на объектно-ориентированном языке Delphi, а пока что посмотрим и разберем на примере мною написанные «API», или просто серверную часть.
Серверная часть написана, может кого-то обрадую, а кого-то огорчу, но написана она на PHP, так как для меня это просто, и не использует ни MySQL, ни других аналогов. Вся информация о пользователе хранится в файлах. И так, перейдем к описанию методов «API»(незнаю как по другому это назвать).
// Конфигурация серверной части
$ccount = 19; //количество сообщений выводимых в чате
$cfile = ‘chat.txt’; // файл в котором хранятся последние сообщения

Методы / команды серверной части:
api.php?cmd=check&login=LOGIN — Проверка на занятость логина на сервере (Имеется ли пользователь с таким же именем. Ответ «ok» — если пользователя не существует и »Bad Request» в противном случае. LOGIN — переменная содержащая логин пользователя)

api.php?cmd=reg&login=LOGIN&pass=PASSWORD&email=EMAIL&pol=ПОЛ (Регистрация на сервере. Ответ «ok» если регистрация прошла успешно и «Bad Request» — в противном случае. LOGIN — переменная содержащая логин пользовтаеля, PASSWORD - переменная содержащая пароль пользовтаеля, EMAIL - переменная содержащая пароль пользовтаеля (на него будет отправленно письмо о регистрации) и ПОЛ — переменная содержащая пол пользоватлея в цифровом виде, т.е. 1 — женский, любая другая цифра — мужской.

api.php?cmd=login&login=LOGIN&pass=PASSWORD (Вход пользователя в аккаунт. Ответ «ok» если вход прошёл успешно и «Bad Request» — в противном случае. LOGIN — переменная содержащая логин пользовтаеля, PASSWORD - переменная содержащая пароль пользовтаеля.)

api.php?cmd=send&login=LOGIN&pass=PASSWORD&sms=TEXTURLENCODED (Отправка сообщения в чат. Пустой ответ если сообщение успешно отправлено и «Bad Request» — в противном случае. LOGIN — переменная содержащая логин пользовтаеля, PASSWORD - переменная содержащая пароль пользовтаеля, TEXTURLENCODED - текст сообщения закодированный функцией urlencode(для полноценной передачи русского текста в get параметре))

api.php?cmd=exit&login=LOGIN (Выход пользователя из чата. Пустой ответ если выход произведен успешно и «Bad Request» в противном случае. LOGIN — логин пользователя.)

api.php?cmd=online (Вывод списка пользователей сервиса находящихся на связи.)

api.php?cmd=update (Версия API используемая на сервере)

api.php?cmd=chat (Вывод списка последних 20 сообщений хранящихся на сервере)


Собственно представляю вам исходный код, этих самых API, которые можно использовать на любом, даже бесплатном хостинге. Так как хайлайтер у меня работает криво выкладываю так, код можно скачать ниже. Код:
<?php
 
//————————————-
// Name: Anonimka.Chat API
// Version: 1.0
// Author: WAKETWO //
// Blog: http://linkfight.pp.ua //
//————————————-
// Конфигурация серверной части
$ccount = 19; //количество сообщений выводимых в чате
$cfile = ‘chat.txt’; // файл в котором хранятся последние сообщения
 
// Скрипт
$cmd = $_GET['cmd']; // Чтение команды из адресной строки
$error = ‘Bad Request’; // Ошибка
function send($login, $mess){
// функция отправки сообщения в чат
$file=file($cfile);
$count = count($file);
$i = 0;
$mess = $login.’ (‘.date(‘H:i:s’).’): ‘.$mess.»\n»;
if($count>=$ccount) { $count = $ccount; }
while ($i<$count){
$mess .= $file[$i];
$i=$i+1;
}
file_put_contents($cfile, $mess);
}
if($cmd==’check’){
// проверка на существование логина
if(isset($_GET['login'])){
if(!file_exists(‘bd/user/’.$_GET['login'].’.auth’)){ // проверка файла на существование
echo ‘ok’; // если файла не существует
} else {
echo $error; // если такой файл уже имеется
}
} else {
echo $error; // если параметр передан не верно
}
}
if($cmd==’reg’){
// регистрация
if(isset($_GET['login']) and isset($_GET['pass']) and isset($_GET['email']) and isset($_GET['pol'])){
file_put_contents(‘bd/user/’.$_GET['login'].’.auth’, $_GET['pass']); // запись в файл
file_put_contents(‘bd/user/’.$_GET['login'].’.email’, $_GET['email']);
file_put_contents(‘bd/user/’.$_GET['login'].’.pol’, $_GET['pol']);
$message = «Регистрация на Анонимка.Чат успешно завершена.
Сохраните ваши данные для подключения:
Логин: «.$_GET['login'].»
Пароль: «.$_GET['pass'].»
Спасибо за проявленный интерес к нашему сервису.
Администрация Анонимка.Чат.»;
mail($_GET['email'], «Registration on Anonimka.Chat», $message,
«From: admin@anonimka.pp.p.ua \r\n»
.»X-Mailer: PHP/» . phpversion()); // отправка письма на почту
echo ‘ok’; // вывод ответа
} else {
echo $error; // если параметры переданы не верно
}
}
if($cmd==’login’){
// авторизация
if(isset($_GET['login']) and isset($_GET['pass']) ){
if(file_exists(‘bd/user/’.$_GET['login'].’.auth’)){
$pass = file_get_contents(‘bd/user/’.$_GET['login'].’.auth’); // получение пароля
if($_GET['pass']==$pass){ // если пароль правильный
$online = file_get_contents(‘online.txt’); // получаем список онлайн
$r = file_get_contents(‘bd/user/’.$_GET['login'].’.pol’); // получаем пол пользователя
if($r==’1′){ $r = ‘ж’; } // Переводим цифровое значение в буквенное
else $r = ‘м’;
$online = $online.$_GET['login'].’ (‘.$r.»)\n»; // формируем список онлайн
file_put_contents(‘online.txt’, $online); // записываем
echo ‘ok’; // отправляем клиенту положительный ответ
send(‘Аноним.Бот’, $_GET['login'].’ подключился(-ась) к чату.’); // отправляем сообщение в чат
} else {
echo $error; // иначе выводим ошибку
}
} else {
echo $error; // иначе выводим ошибку
}
} else {
echo $error; // иначе выводим ошибку
}
}
if($cmd==’send’){
// отправка сообщения
if(isset($_GET['login']) and isset($_GET['pass']) and isset($_GET['sms'])){
if(file_exists(‘bd/user/’.$_GET['login'].’.auth’)){
$pass = file_get_contents(‘bd/user/’.$_GET['login'].’.auth’);
if($_GET['pass']==$pass){
send($_GET['login'], urldecode($_GET['sms']));
} else {
echo $error;
}
} else {
echo $error;
}
} else {
echo $error;
}
}
if($cmd==’exit’){
// выход пользователя из чата
if(isset($_GET['login'])){
$rrr = file_get_contents(‘online.txt’);
$r = file_get_contents(‘bd/user/’.$_GET['login'].’.pol’);
if($r==’1′){ $r = ‘ж’; }
else $r = ‘м’;
$online = $online.$_GET['login'].’ (‘.$r.»)\n»;
$rrr = str_replace($online, », $rrr);
file_put_contents(‘online.txt’, $rrr);
send(‘Аноним.Бот’, $_GET['login'].’ вышел(-ла) из чата.’);
} else {
echo $error;
}
}
if($cmd==’online’){
$all = file(‘online.txt’);
$count = count($all);
$i = 0;
while ($i<$count){
echo $all[$i];
$i=$i+1;
}
}
 
if($cmd==’update’){
echo ’0.1′;
}
if($cmd==’chat’){
$r = file_get_contents($cfile);
echo $r;
}
?>

Несколько вещей на которые стоит обратить внимание и учесть при использовании данных исходников:
1. Серверная часть работает на PHP, для её запуска можно использовать даже обычный бесплатный хостинг.
2. Автор исходников (в т.ч. я) не несет никакой ответственности за возможный принесенный вред при запуске данной программы или «API», на стороне клиента / сервера.
Теги:
чат
Добавлено: 22 Сентября 2013 09:59:02 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...