$cmd_translation = array("power" => "power", "ropos" => "R" . chr(1), "roneg" => "R" . chr(3), "astop" => "T" . chr(0), "flashon" => "F" . chr(1), "flashoff" => "F" . chr(0), "fcauto" => "M" . chr(1), "fcinf" => "M" . chr(2), "fcmacro" => "M" . chr(0)); switch ($cmd) { case "snap": send_msg("snap"); die(json_encode(receive_msg(120))); case "asnap": $delay = 0 + filter_input(INPUT_GET, 'delay', FILTER_SANITIZE_NUMBER_INT); send_msg("T" . chr($delay)); die(json_encode(receive_msg(10))); case "addip": $sql = "insert into s set ip='" . get_ip() . "' on duplicate key update ip=ip"; qexec($sql); qresp("添加ip完成"); case "delip": $sql = "delete from s where ip='" . get_ip() . "'"; qexec($sql); qresp("删除ip完成"); } if (array_key_exists($cmd, $cmd_translation)) { send_msg($cmd_translation[$cmd]); die(json_encode(receive_msg(10))); } qresp('unsupport command:' . $cmd); function qresp($msg) { die(json_encode(array('msg' => "M{$msg}", 'ip' => 'none'))); } function send_msg($msg) { # 1 create fail; # 2 send fail;
function logout() { $sql = "UPDATE m SET op=subdate(now(),interval 120 minute) where id=1"; # $sql = "UPDATE m SET op=subdate(now(),interval 11 minute),try=0 where id=1"; qexec($sql); }
function check_login() { # 0 logined # 1 not login # 2 try too much times $ret = 1; $db = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); # 检查时间,10分钟内直接pass $sql = "SELECT TIMESTAMPDIFF(MINUTE,op,now()) AS login,try,magic,"; $sql .= "TIMESTAMPDIFF(MINUTE,last,now()) AS last FROM m WHERE id=1"; $result = mysqli_query($db, $sql); $row = mysqli_fetch_array($result); $try = $row['try']; $last = $row['last']; $magic = $row['magic']; $cookie = substr(filter_input(INPUT_COOKIE, 'magic', FILTER_SANITIZE_STRING), 0, 32); # echo $sql." magic:".$magic." cookie:".$cookie." login:"******"UPDATE m SET op=now() WHERE id=1"; mysqli_query($db, $sql); mysqli_commit($db); $ret = 0; } mysqli_close($db); # echo "last:$last try:$try"; if ($last < 5 && $try > 5) { $ret = 2; } if ($last >= 5) { $sql = "UPDATE m SET try=0 WHERE id=1"; qexec($sql); } return $ret; }