Tryag File Manager
Home
||
Turbo Force
||
B-F Config_Cpanel
Current Path :
/
home
/
ltman.eemo.co.kr
/
public_html
/
www
/
Or
Select Your Path :
Upload File :
New :
File
Dir
/home/ltman.eemo.co.kr/public_html/www/chat_room.php
<? session_cache_limiter('no-cache, must-revalidate'); session_start(); header("Pragma: no-cache"); header("Cache-Control: no-cache,must-revalidate"); header("Content-Type: text/html; charset=utf-8"); include_once("dbconn.php"); include_once("lib.php"); foreach($_GET as $key => $value) { ${$key}=mysql_real_escape_string(trim($value)); } foreach($_POST as $key => $value) { ${$key}=mysql_real_escape_string(trim($value)); } $rs_my=RS("select * from member where no='{$_COOKIE[umem_no]}' "); if($rs_my[mtype]==1 || $rs_my[mtype]==2) { $rs_farm=RS("select * from farm where no='{$rs_my[farm_no]}' "); $farm_code=$rs_farm[farm_code]; } $rs_farm=RS("select * from farm where farm_code='$farm_code' "); $farm_no=$rs_farm[no]; $arr_room=array(); // API 회원등록 $token="nongadid2013"; //api 로부터 부여받은 접근 토큰키값 $arr = array(); $arr['token']=$token; //생성할 아이디 $arr['user_id']=$rs_my[id]; //생성할 아이디 $arr['user_nick']=$rs_my[name]; //생성할 닉네임 $arr['user_img']="http://brtalk.eemo.co.kr/assets/chat_noticon.png"; //생성할 닉네임 $json_enc=json_encode($arr); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://bitbus.eemo.co.kr/bridge/api_adduser.php'); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded")); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS,$json_enc); curl_setopt($ch, CURLOPT_TIMEOUT, 30); // TimeOut 값 $response = curl_exec($ch); $json_dec=json_decode($response); curl_close($ch); // "response" : "wrong_token" , "rst" : "잘못된 토큰입니다." // "response" : "1" , "rst" : "success", "mqtt_id" : "adcd", "mqtt_pass" : "12312312" $mqtt_id=$json_dec->mqtt_id; //--API 회원등록 // API 방리스트 $arr = array(); $arr['token']=$token; //생성할 아이디 $json_enc=json_encode($arr); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://bitbus.eemo.co.kr/bridge/api_room_list.php'); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded")); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS,$json_enc); curl_setopt($ch, CURLOPT_TIMEOUT, 30); // TimeOut 값 $response = curl_exec($ch); //echo $response; $json_dec=json_decode($response); curl_close($ch); // "response" : "wrong_token" , "rst" : "잘못된 토큰입니다." // "response":"1","rst":"success","room_cnt":2,"rooms":[{"room_no":"2","room_name":"달려라 지오아이티","room_limit":"15","room_pass":"","user_id":"sjlee@zoit.co.kr","room_mqtt_id":"d38bba59","room_mqtt_pw":"15417497000508"},{"room_no":"1","room_name":"달려가 저녁밥","room_limit":"20","room_pass":"1111","user_id":"sjlee@zoit.co.kr","room_mqtt_id":"6d3a0c14","room_mqtt_pw":"15417495283879"}] foreach($json_dec->rooms as $rk => $rv) { $obj=(object) $c; $obj->room_no=$rv->room_no; $obj->room_name=$rv->room_name; $obj->room_limit=$rv->room_limit; $obj->room_pass=$rv->room_pass; $obj->room_connsu=$rv->room_connsu; $obj->user_id=$rv->user_id; $obj->room_mqtt_id=$rv->room_mqtt_id; $obj->room_mqtt_pw=$rv->room_mqtt_pw; $obj->room_date=$rv->room_date; $arr_room[]=$obj; } //--API 방리스트 ?> <!DOCTYPE html> <html lang="en" class="default-style layout-navbar-fixed layout-fixed-offcanvas"> <head> <title><?=$_TITLE?></title> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1"> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <link rel="icon" type="image/x-icon" href="favicon.ico"> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,500,500i,700,700i,900" rel="stylesheet"> <!-- Icon fonts --> <link rel="stylesheet" href="assets/vendor/fonts/fontawesome.css"> <link rel="stylesheet" href="assets/vendor/fonts/ionicons.css"> <link rel="stylesheet" href="assets/vendor/fonts/linearicons.css"> <link rel="stylesheet" href="assets/vendor/fonts/open-iconic.css"> <link rel="stylesheet" href="assets/vendor/fonts/pe-icon-7-stroke.css"> <!-- Core stylesheets --> <link rel="stylesheet" href="assets/vendor/css/rtl/bootstrap.css" class="theme-settings-bootstrap-css"> <link rel="stylesheet" href="assets/vendor/css/rtl/appwork.css" class="theme-settings-appwork-css"> <link rel="stylesheet" href="assets/vendor/css/rtl/theme-corporate.css" class="theme-settings-theme-css"> <link rel="stylesheet" href="assets/vendor/css/rtl/colors.css" class="theme-settings-colors-css"> <link rel="stylesheet" href="assets/vendor/css/rtl/uikit.css"> <link rel="stylesheet" href="assets/css/demo.css"> <script src="assets/vendor/js/material-ripple.js"></script> <script src="assets/vendor/js/layout-helpers.js"></script> <!-- Core scripts --> <script src="assets/vendor/js/pace.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <!-- Libs --> <link rel="stylesheet" href="assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.css"> <link rel="stylesheet" href="assets/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.css"> </head> <body> <div class="page-loader"> <div class="bg-primary"></div> </div> <!-- Layout wrapper --> <div class="layout-wrapper layout-2"> <div class="layout-inner"> <!-- Layout sidenav --> <?include_once("inc_sidenav.php");?> <!-- / Layout sidenav --> <!-- Layout container --> <div class="layout-container"> <!-- Layout navbar --> <?include_once("inc_navbar.php");?> <!-- / Layout navbar --> <!-- Layout content --> <div class="layout-content"> <!-- Content --> <div class="container-fluid flex-grow-1 container-p-y"> <h4 class="font-weight-bold py-1 mb-4"> <span class="text-muted font-weight-light">HOME /</span> 채팅방 </h4> <? if(!sizeof($arr_room)) { ?> <div class="alert alert-dark-warning alert-dismissible fade show"> <button type="button" class="close" data-dismiss="alert">×</button> 현재 개설된 채팅방이 <strong>업습니다.</strong> </div> <? } ?> <div class="card-body"> <div class="text-center" style='margin-top:0px;margin-bottom:0px;'> <button type="button" class="btn btn-danger btn-round" onclick="fn_add()"><i class="far fa-lg fa-fw m-r-10 fa-edit"></i> 채팅방생성</button> </div> </div> <? foreach($arr_room as $ak => $av) { $graph_perc_1=($av->room_connsu/$av->room_limit)*100; $rs_bangjang=RS("select * from member where id='{$av->user_id}' "); ?> <div class="card mt-3"> <div class="p-4 p-md-5"> <a href="javascript:void(0)" class="text-dark text-large font-weight-semibold"><b><?=$av->room_name?></b></a> <div class="progress rounded-0 mt-3" style="height: 3px;"> <div class="progress-bar" style="width: <?=$graph_perc_1?>%;"></div> </div> <div class="d-flex flex-wrap mt-3"> <div class="mr-3"><i class="vacancy-tooltip ion ion-md-business text-light" title="Department"></i> 방장 : <?=$rs_bangjang[name]?></div> <div class="mr-3"><i class="vacancy-tooltip ion ion-md-time text-primary" title="Employment"></i> 생성일 : <?=date('y.m.d',strtotime($av->room_date))?></div> </div> <div class="d-flex flex-wrap mt-3 mb-3"> <div class="mr-3"><i class="vacancy-tooltip ion ion-ios-people text-light" title="Department"></i> 접속자수 : <span id='sp_conn_<?=$av->room_no?>'><?=$av->room_connsu?></span>/<?=$av->room_limit?>명</div> <? if($av->room_pass) { ?><div class="mr-3"><i class="vacancy-tooltip ion ion-md-lock text-light" title="Department"></i> 비밀방</div><? } ?> </div> <? if($av->room_pass) { ?> <button type="button" class="btn btn-primary btn-round" onclick="fn_pass('<?=$av->room_pass?>','<?=$av->room_name?>','<?=$mqtt_id?>','<?=$av->room_no?>','<?=$av->room_mqtt_id?>','<?=$av->room_mqtt_pw?>')">입장하기</button> <? } else { ?> <button type="button" class="btn btn-primary btn-round" onclick="fn_comin('<?=$av->room_name?>','<?=$mqtt_id?>','<?=$av->room_no?>','<?=$av->room_mqtt_id?>','<?=$av->room_mqtt_pw?>')">입장하기</button> <? } ?> <? if($av->user_id==$rs_my[id]) {?> <div class="btn-group project-actions"> <button type="button" class="btn btn-sm btn-default icon-btn borderless btn-round md-btn-flat dropdown-toggle hide-arrow" data-toggle="dropdown"> <i class="ion ion-ios-more"></i> </button> <div class="dropdown-menu dropdown-menu-right"> <a class="dropdown-item" href="javascript:go_mody('<?=$ak?>')">방수정</a> <a class="dropdown-item" href="javascript:fn_del('<?=$av->room_name?>','<?=$mqtt_id?>','<?=$av->room_no?>')">방삭제</a> </div> </div> <?}?> </div> </div> <div id="myModal<?=$ak?>" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">방수정</h4> </div> <div class="modal-body"> <form> <div class="form-group"> <label for="recipient-name" class="control-label">방이름:</label> <input type="text" class="form-control" id="room_name<?=$ak?>" name="room_name<?=$ak?>" placeholder="방이름을 입력하세요" value="<?=$av->room_name?>"> </div> <div class="form-group"> <label for="recipient-name" class="control-label">허용인원수:</label> <input type="tel" class="form-control" id="room_limit<?=$ak?>" name="room_limit<?=$ak?>" placeholder="인원수입력(명)" value="<?=$av->room_limit?>"> </div> <div class="form-group"> <label for="recipient-name" class="control-label">방비밀번호(옵션) <small class='text-muted'>(입력시 비밀방)</small></label> <input type="password" class="form-control" id="room_pass<?=$ak?>" name="room_pass<?=$ak?>" placeholder="방 패스워드입력" value="<?=$av->room_pass?>"> </div> <input type='hidden' name='room_no<?=$ak?>' id='room_no<?=$ak?>' value='<?=$av->room_no?>'> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary" onclick="fn_mody('<?=$ak?>')">수정</button> </div> </div> </div> </div> <?}?> <!-- / Content --> <!-- Layout footer --> <?include_once("inc_footer.php");?> <!-- / Layout footer --> </div> <!-- Layout content --> </div> <!-- / Layout container --> </div> <!-- Overlay --> <div class="layout-overlay layout-sidenav-toggle"></div> </div> <!-- / Layout wrapper --> <!-- Core scripts --> <script src="assets/vendor/libs/popper/popper.js"></script> <script src="assets/vendor/js/bootstrap.js"></script> <script src="assets/vendor/js/sidenav.js"></script> <!-- Libs --> <script src="assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.js"></script> <!-- Demo --> <script src="assets/js/demo.js"></script> <script src="assets/vendor/libs/bootbox/bootbox.js"></script> <div id="myModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">방만들기</h4> </div> <div class="modal-body"> <form> <div class="form-group"> <label for="recipient-name" class="control-label">방이름:</label> <input type="text" class="form-control" id="room_name" name="room_name" placeholder="방이름을 입력하세요"> </div> <div class="form-group"> <label for="recipient-name" class="control-label">허용인원수:</label> <input type="tel" class="form-control" id="room_limit" name="room_limit" placeholder="인원수입력(명)"> </div> <div class="form-group"> <label for="recipient-name" class="control-label">방비밀번호(옵션) <small class='text-muted'>(입력시 비밀방)</small></label> <input type="password" class="form-control" id="room_pass" name="room_pass" placeholder="방 패스워드입력"> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary" onclick="fn_save()">저장</button> </div> </div> </div> </div> </body> </html> <script> function fn_add() { $('#room_name').val(''); $('#room_limit').val(''); $('#room_pass').val(''); $('#myModal').modal('show'); } function go_mody(no) { $('#myModal'+no).modal('show'); } function fn_save() { if(!$('#room_name').val()) { bootbox.alert("방이름을 입력하세요."); return; } if(!$('#room_limit').val()) { bootbox.alert("방인원수를 입력하세요."); return; } var arr = { mqtt_id : '<?=$mqtt_id?>', room_name: $('#room_name').val() , room_limit : $('#room_limit').val() , room_pass : $('#room_pass').val() }; jQuery.ajax({ url: "https://bitbus.eemo.co.kr/bridge/api_room.php", type: "POST", data: JSON.stringify(arr), processData: false, contentType: 'application/json; charset=utf-8', success: function (res) { //var json = jQuery.parseJSON(res); //alert(res); var json = eval("(" + res + ")"); if(json.response=='1') { bootbox.alert("방생성 성공입니다."); setTimeout(function(){ window.location.reload(true); }, 2000); } else { bootbox.alert("알지못하는 오류발생"); } } }); } function fn_mody(no) { if(!$('#room_name'+no).val()) { bootbox.alert("방이름을 입력하세요."); return; } if(!$('#room_limit'+no).val()) { bootbox.alert("방인원수를 입력하세요."); return; } var arr = { mqtt_id : '<?=$mqtt_id?>', room_no : $('#room_no'+no).val(), room_name: $('#room_name'+no).val() , room_limit : $('#room_limit'+no).val() , room_pass : $('#room_pass'+no).val() }; jQuery.ajax({ url: "https://bitbus.eemo.co.kr/bridge/api_room_mody.php", type: "POST", data: JSON.stringify(arr), processData: false, contentType: 'application/json; charset=utf-8', success: function (res) { //var json = jQuery.parseJSON(res); //alert(res); var json = eval("(" + res + ")"); if(json.response=='1') { bootbox.alert('수정되었습니다'); setTimeout(function(){ window.location.reload(true); }, 2000); } else { bootbox.alert('알지못하는 오류발생'); } } }); } </script> <script> function fn_room_info() { var arr = { token : "<?=$token?>" }; jQuery.ajax({ url: "https://bitbus.eemo.co.kr/bridge/api_room_list.php", type: "POST", data: JSON.stringify(arr), processData: false, contentType: 'application/json; charset=utf-8', success: function (res) { //var json = jQuery.parseJSON(res); //alert(res); var json = eval("(" + res + ")"); var obj = JSON.parse(res); if(obj.response=='1') { obj.rooms.forEach((val, index) => { //alert(val.tel); $('#sp_conn_'+val.room_no).text(val.room_connsu); }); } else { bootbox.alert("알지못하는 오류발생"); } } }); } function fn_del(room_name,mqtt_id,room_no) { bootbox.confirm({ message: "<strong>"+room_name+"</strong> 을 삭제하시겠습니까?", buttons: { confirm: { label: '예', className: 'btn-success' }, cancel: { label: '아니오', className: 'btn-danger' } }, callback: function (result) { if(result==true) { var arr = { mqtt_id : "<?=$mqtt_id?>", room_no : room_no }; jQuery.ajax({ url: "https://bitbus.eemo.co.kr/bridge/api_room_del.php", type: "POST", data: JSON.stringify(arr), processData: false, contentType: 'application/json; charset=utf-8', success: function (res) { //var json = jQuery.parseJSON(res); //alert(res); var json = eval("(" + res + ")"); if(json.response=='1') { bootbox.alert('삭제되었습니다.'); setTimeout(function(){ window.location.reload(true); }, 2000); } else { bootbox.alert("알지못하는 오류발생"); } } }); } } }); } function fn_comin(room_name,mqtt_id,room_no,room_mqtt_id,room_mqtt_pw) { bootbox.confirm({ message: "<strong>"+room_name+"</strong> 방에 입장하시겠습니까?", buttons: { confirm: { label: '예', className: 'btn-success' }, cancel: { label: '아니오', className: 'btn-danger' } }, callback: function (result) { if(result==true) { //현재 방접속자수 체크하기 var arr = { token : "<?=$token?>", room_no : room_no }; //alert(JSON.stringify(arr)); jQuery.ajax({ url: "https://bitbus.eemo.co.kr/bridge/api_room_info.php", type: "POST", data: JSON.stringify(arr), processData: false, contentType: 'application/json; charset=utf-8', success: function (res) { //var json = jQuery.parseJSON(res); var json = eval("(" + res + ")"); if(json.response=='1') { if(parseInt(json.room_connsu) < parseInt(json.room_limit)) { //$.MessageBox("You clicked Yes."); var arr = { mqtt_id : "<?=$mqtt_id?>", room_no : room_no }; //alert(JSON.stringify(arr)); jQuery.ajax({ url: "https://bitbus.eemo.co.kr/bridge/api_room_comin.php", type: "POST", data: JSON.stringify(arr), processData: false, contentType: 'application/json; charset=utf-8', success: function (res) { //var json = jQuery.parseJSON(res); //alert(res); var json = eval("(" + res + ")"); if(json.response=='1') { location.href='http://ltman.eemo.co.kr/www/chat_room_comin_new.php?room_no='+room_no+'&room_mqtt_id='+room_mqtt_id+'&room_mqtt_pw='+room_mqtt_pw; } else { bootbox.alert("알지못하는 오류발생"); } } }); } else { bootbox.alert("현재 접속가능한 인원을 초과하였습니다."); } } else { bootbox.alert("알지못하는 오류발생"); } } }); } } }); } function fn_pass(room_pass,room_name,mqtt_id,room_no,room_mqtt_id,room_mqtt_pw) { /* bootbox.prompt({ size: "small", title: "방비밀번호를 입력하세요", inputType: 'password', callback: function (result) { alert(result); } }); */ bootbox.prompt("방미밀번호를 입력하세요!", function(result){ console.log(result); if(result==room_pass) { var arr = { mqtt_id : "<?=$mqtt_id?>", room_no : room_no }; //alert(JSON.stringify(arr)); jQuery.ajax({ url: "https://bitbus.eemo.co.kr/bridge/api_room_comin.php", type: "POST", data: JSON.stringify(arr), processData: false, contentType: 'application/json; charset=utf-8', success: function (res) { //var json = jQuery.parseJSON(res); //alert(res); var json = eval("(" + res + ")"); if(json.response=='1') { location.href='http://ltman.eemo.co.kr/www/chat_room_comin_new.php?room_no='+room_no+'&room_mqtt_id='+room_mqtt_id+'&room_mqtt_pw='+room_mqtt_pw; } else { bootbox.alert("알지못하는 오류발생"); } } }); } else { bootbox.alert("<b>비밀번호가 틀렸습니다</b>!"); } }); } setInterval(function(){ fn_room_info(); }, 2000); </script>