// +---------------------------------------------------------------------- // 应用公共文件 header('Content-Type:text/html;Charset=utf-8'); /** * 保存后台用户行为 * @param string $remark 日志备注 */ function insert_admin_log($remark) { db('user_log')->insert([ 'user_id' => session('admin_auth.id'), 'uname' => session('admin_auth.uname'), 'useragent' => request()->server('HTTP_USER_AGENT'), 'ip' => request()->ip(), 'url' => request()->url(true), 'method' => request()->method(), 'type' => request()->type(), 'param' => json_encode(request()->param()), 'remark' => $remark, 'create_time' => time(), ]); } /** * @param $str * @return string * 驼峰命名法转下划线风格 */ function to_under_score($str) { $array = array(); for ($i = 0; $i < strlen($str); $i++) { if ($str[$i] == strtolower($str[$i])) { $array[] = $str[$i]; } else { if ($i > 0) { $array[] = '-';//想转什么就可以自己设置 } $array[] = strtolower($str[$i]); } } $result = implode('', $array); return $result; } /** * 获取用户真实 IP */ function getIP() { static $realip; if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $realip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if (isset($_SERVER["HTTP_CLIENT_IP"])) { $realip = $_SERVER["HTTP_CLIENT_IP"]; } else { $realip = $_SERVER["REMOTE_ADDR"]; } } else { if (getenv("HTTP_X_FORWARDED_FOR")){ $realip = getenv("HTTP_X_FORWARDED_FOR"); } else if (getenv("HTTP_CLIENT_IP")) { $realip = getenv("HTTP_CLIENT_IP"); } else { $realip = getenv("REMOTE_ADDR"); } } return $realip; } //获取城市所在天气情况 function tianqi($chengshi) { $url = 'http://wthrcdn.etouch.cn/weather_mini?city='.urlencode($chengshi); $html = file_get_contents($url); $jsondata = gzdecode($html); $data=json_decode($jsondata,true); $arr=array(); $arr['chengshi']=$data['data']['city']; $dangtian=$data['data']['forecast'][0]; $arr['gaowen']= str_replace("高温 ",null,$dangtian['high']); $arr['diwen']= str_replace("低温 ",null,$dangtian['low']); $arr['tianqi']=$dangtian['type']; $arr['fengxiang'] = $dangtian['fengxiang']; $arr['time'] =date("Y-m-d H:i:s"); return $arr; } /** * 检测管理员是否登录(防止用户重复登录) * @return integer 0/管理员ID */ function is_admin_login() { $admin = session('admin_auth'); if (empty($admin)) { return 0; } else { return session('admin_auth_sign') == data_auth_sign($admin) ? $admin['id'] : 0; } } /** * 数据签名认证 * @param array $data 被认证的数据 * @return string 签名 */ function data_auth_sign($data) { // 数据类型检测 if (!is_array($data)) { $data = (array)$data; } ksort($data); // 排序 $code = http_build_query($data); // url编码并生成query字符串 $sign = sha1($code); // 生成签名 return $sign; }