Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_Женя.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
272 Кб
Скачать

Connect.Php

<?

include $_SERVER['DOCUMENT_ROOT']."/connect_funcs.php";

$clogin = new ConnectLogin();

header('Content-Type: application/json; charset=utf8');

header('Cache-Control: no-cache');

usleep (100);

if( ($type=$_REQUEST['type']) != "" && $clogin->token ) {

switch($type) {

case "act":

echo $clogin->getData($type);

break;

case "users":

echo $clogin->getData($type);

break;

case "logs":

echo $clogin->getData($type);

break;

case "add":

echo $clogin->getData($type,$opt = array("name"=>$_REQUEST['name'], "code"=>$_REQUEST['code']));

break;

case "find":

echo $clogin->getData($type,$opt = array("name"=>$_REQUEST['name'], "code"=>$_REQUEST['code']));

break;

case "update_act":

echo $clogin->getData($type,$opt = array("id"=>$_REQUEST['id'], "act"=>$_REQUEST['act']));

break;

}

exit;

}

$error = $clogin->error;

if( $error ) echo $error;

else echo '{"error":"101"}';

?>

Connect_funcs.Php

<?

session_start();

if( !function_exists('json_decode') ) {

include_once $_SERVER['DOCUMENT_ROOT']."/JSON.php";

$json = new Services_JSON();

function json_decode($str) { global $json; return $json->decode($str); }

function json_encode($value) { global $json; return $json->encode($value); }

}

define("TIME_TO_SESSION_LIVE", 3600*24*30); # Время жизни сессии = 3600*24*30 = месяц.

class ConnectLogin {

var $login = "client";

var $pwd = "pwd_client";

var $URL = "http://localhost:8080/AccessInBuilding-war/connect.jsp";

var $token;

var $error;

function ConnectLogin() {

$this->token = $_COOKIE['token'];

if( !$this->token ) {

$this->token = $this->Autorization();

if( $this->token ) setcookie('token', $this->token, time()+TIME_TO_SESSION_LIVE, '/', $_SERVER['HTTP_HOST']);

}

return $this->token;

}

function Autorization() {

$ch = curl_init();//echo "[".$this->URL . "?auth_login=" . $this->login . "&auth_pwd=" . $this->pwd."]";

curl_setopt($ch, CURLOPT_URL, $this->URL . "?auth_login=" . $this->login . "&auth_pwd=" . $this->pwd);

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT']."/cookies.dat");

curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT']."/cookies.dat");

if( !is_file($_SERVER['DOCUMENT_ROOT']."/cookies.dat") ) file_put_contents($_SERVER['DOCUMENT_ROOT']."/cookies.dat", "");

$result = curl_exec($ch);

curl_close($ch);

$result = json_decode($result);

if( $result->token ) {

return $result->token;

} elseif( $result->error ) {

$this->error = json_encode($result);

}

}

function getData($type="act", $opt=array()) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $this->URL . "?token=" . $this->token . "&type=" . $type. (sizeof($opt) > 0 ? "&".http_build_query($opt) : ""));

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT']."/cookies.dat");

curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT']."/cookies.dat");

if( !is_file($_SERVER['DOCUMENT_ROOT']."/cookies.dat") ) file_put_contents($_SERVER['DOCUMENT_ROOT']."/cookies.dat", "");

$result = curl_exec($ch);

curl_close($ch);

return $result;

}

function disconect() {

$this->token = "";

setcookie('token', "", time()-TIME_TO_SESSION_LIVE, '/', $_SERVER['HTTP_HOST']);

}

}

?>

js. js

var timer;

jQuery(document).ready(function() {

function showMessage(id,msg) {

jQuery(id).hide().html(msg).show();

setTimeout(function(){ jQuery(id).fadeOut(500); }, 3000);

}

function updateCnt(obj) {

var _this = obj;

jQuery.get("/connect.php",{type:"act"},function(data) {

data = eval(data);

if( data.cnt > 0 ) txt = "В здании находится " + data.cnt + " человек(а)";

else txt = "В здании никого нет";

jQuery(_this).fadeOut(0).html(txt).fadeIn(1000);

});

}

function updateUsers(obj) {

var _this = obj;

jQuery.get("/connect.php",{type:"users"},function(data) {

data = eval(data);

data = data.users;

if( data != "" ) {

jQuery(_this).fadeOut(0).html(data).fadeIn(1000);

jQuery(".radio").buttonset().refresh();

}

});

}

function updateLogs(obj) {

var _this = obj;

jQuery.get("/connect.php",{type:"logs"},function(data) {

data = eval(data);

data = data.logs;

if( data == "error" ) data = "Ошибка подключения к базе";

jQuery(_this).html(data);

});

}

jQuery(".add_b div").click(function(){

if( jQuery(this).is(".show") ) {

jQuery(this).removeClass("show");

jQuery(".add_form").slideUp().removeClass("add");

} else {

jQuery(this).addClass("show");

jQuery(".add_form").slideDown();

}

});

jQuery(".add").click(function() {

_this = this;

jQuery(".add_load").show();

name = jQuery("#add_name").val();

code = parseInt(jQuery("#add_code").val()) || 0;

jQuery(_this).parent().removeClass("add");

if( name != "" ) {

jQuery.get("/connect.php",{type:"add", name:name,code:code},function(data) {

data = eval(data);

data = data.data;

if( jQuery.trim( data ) == "done" ) {

showMessage(".add_err","Пользователь добавлен");

jQuery(_this).parent().addClass("add");

updateUsers(jQuery(".users").get(0));

updateLogs(jQuery(".log div").get(0));

} else {

showMessage(".add_err","Ошибка добавления");

}

jQuery(".add_load").hide();

});

} else {

showMessage(".add_err","Ошибка, не заполнено обязательное поле");

jQuery(".add_load").hide();

}

return false;

});

jQuery(".find").click(function() {

_this = this;

jQuery(".find_load").show();

var name = jQuery("#find_name").val();

code = parseInt(jQuery("#find_code").val()) || 0;

if( name != "" || code > 0 ) {

jQuery.get("/connect.php",{type:"find", name:name,code:code},function(data) {

data = eval(data);

data = data.data;

if( data == "error" ) {

showMessage(".find_err","Ошибка доступа к базе");

} else if( data > 0 ) {

showMessage(".find_err",name + ", в базе есть");

jQuery(".find_load").hide();

} else if( data == 0 ){

showMessage(".find_err","Нет");

jQuery(".find_load").hide();

};

jQuery(".find_load").hide();

});

} else {

showMessage(".find_err","Ошибка, не заполненно не одно из полей");

jQuery(".find_load").hide();

}

return false;

});

jQuery(".find_err span").click(function() {

jQuery(".find_form #find_name").val(jQuery(this).text());

jQuery(".find").trigger("click");

});

jQuery(".cnt_act").each(function() {

updateCnt(this);

});

jQuery(".users").each(function() {

updateUsers(this);

});

jQuery( '.radio' ).buttonset();

jQuery(".radio span").live("click",function(){

row = jQuery(this).parent().attr("for").split('_');

jQuery.get("/connect.php",{type:"update_act", id:parseInt(row[1]),act:parseInt(row[2])},function(data) {

updateCnt(jQuery(".cnt_act").get(0));

updateLogs(jQuery(".log div").get(0));

});

});

jQuery(".log").each(function() {

jQuery(this).html("Лог посещаемости<div class='logs'></div>");

});

jQuery(".log").live("click",function(){

div = jQuery('.logs',this);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]