init
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace app\controller;
|
||||
|
||||
use support\Request;
|
||||
use yzh52521\EasyHttp\Response;
|
||||
use yzh52521\EasyHttp\RequestException;
|
||||
use yzh52521\EasyHttp\Http;
|
||||
use support\Db;
|
||||
use Webman\Captcha\CaptchaBuilder;
|
||||
|
||||
class Account
|
||||
{
|
||||
public function login(Request $request)
|
||||
{
|
||||
$session = $request->session();
|
||||
$user=$session->get('user',null);
|
||||
if($user!=null){
|
||||
return redirect('/my');
|
||||
}
|
||||
return view('login');
|
||||
}
|
||||
public function logout(Request $request)
|
||||
{
|
||||
$session = $request->session();
|
||||
$session->delete('user');
|
||||
$session->delete('realname');
|
||||
return redirect('/');
|
||||
}
|
||||
public function my(Request $request)
|
||||
{
|
||||
$session = $request->session();
|
||||
$user=$session->get('user',null);
|
||||
$realname=$session->get('realname',null);
|
||||
if($user==null||$realname==null){
|
||||
return redirect('/');
|
||||
}
|
||||
$record=Db::table('links')->where('user', "$user")->get();
|
||||
print_r($record);
|
||||
return view('my', ['user' => $user,'realname' => $realname,'record' => $record]);
|
||||
}
|
||||
public function captcha(Request $request)
|
||||
{
|
||||
// 初始化验证码类
|
||||
$builder = new CaptchaBuilder;
|
||||
// 生成验证码
|
||||
$builder->build();
|
||||
// 将验证码的值存储到session中
|
||||
$request->session()->set('captcha', strtolower($builder->getPhrase()));
|
||||
// 获得验证码图片二进制数据
|
||||
$img_content = $builder->get();
|
||||
// 输出验证码二进制数据
|
||||
return response($img_content, 200, ['Content-Type' => 'image/jpeg']);
|
||||
}
|
||||
public function loginapi(Request $request)
|
||||
{
|
||||
$session = $request->session();
|
||||
$username = $request->input('username');
|
||||
$password = $request->input('password');
|
||||
$captcha = $request->input('captcha');
|
||||
$captcha_session = $request->session()->get('captcha');
|
||||
if(strtolower($captcha) != $captcha_session){
|
||||
return json(['code' => 400, 'msg' => '验证码错误']);
|
||||
}
|
||||
if($username == null || $password == null){
|
||||
return json(['code' => 400, 'msg' => '用户名或密码不能为空']);
|
||||
}
|
||||
if(strlen($username)>=36){
|
||||
return json(['code' => 400, 'msg' => '用户名格式错误']);
|
||||
}
|
||||
$username=Db::table('users')->where('username', "$username")->where('password',"$password")->value('username');
|
||||
if($username==null){
|
||||
return json(['code' => 400, 'msg' => '用户名或密码错误']);
|
||||
}else{
|
||||
$session->set('user', $username);
|
||||
$session->set('realname', Db::table('users')->where('username', "$username")->value('realname'));
|
||||
return json(['code' => 200, 'msg' => '登陆成功']);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace app\controller;
|
||||
|
||||
use support\Request;
|
||||
|
||||
class IndexController
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$session = $request->session();
|
||||
$user=$session->get('user',null);
|
||||
$realname=$session->get('realname',null);
|
||||
if($user==null||$realname==null){
|
||||
$display='none';
|
||||
}else{
|
||||
$display='block';
|
||||
}
|
||||
return view('index', ['user' => $user,'realname' => $realname,'display' => $display]);
|
||||
}
|
||||
|
||||
public function view(Request $request)
|
||||
{
|
||||
return view('index/view', ['name' => 'webman']);
|
||||
}
|
||||
|
||||
public function json(Request $request)
|
||||
{
|
||||
return json(['code' => 0, 'msg' => 'ok']);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
namespace app\controller;
|
||||
|
||||
use support\Request;
|
||||
use yzh52521\EasyHttp\Response;
|
||||
use yzh52521\EasyHttp\RequestException;
|
||||
use yzh52521\EasyHttp\Http;
|
||||
use support\Db;
|
||||
|
||||
class Server
|
||||
{
|
||||
public function short(Request $request)
|
||||
{
|
||||
$session = $request->session();
|
||||
$url = $request->input('url',null);
|
||||
$link = $request->input('link',null);
|
||||
$type = $request->input('type','false');
|
||||
if($link==null && Db::table('links')->where('source', "$url")->where('type',0)->exists() ){
|
||||
$link=Db::table('links')->where('source', "$url")->where('type',0)->value('link');
|
||||
return json(['code' => 200, 'msg' => 'success','link'=>'https://SPQR.top/'.$link]);
|
||||
}
|
||||
$user=$session->get('user',null);
|
||||
if($user==null&&($type!='false'||$link!=null)){
|
||||
return json(['code' => 505, 'msg' => '302直链和自定义链接后缀需要登陆后才可使用']);
|
||||
}
|
||||
$realname=$session->get('realname',null);
|
||||
|
||||
#$domain=parse_url($url)['host'];
|
||||
$domain=$url;
|
||||
$response = Http::post('https://api.uutool.cn/beian/icp/', ['site' => "$domain"])->json();
|
||||
if(isset($response->data->is_icp)){
|
||||
if($response->data->is_icp==1){
|
||||
$icp=$response->data;
|
||||
$owner=$icp->icp_org;
|
||||
$webid=$icp->icp_no;
|
||||
}else{
|
||||
$icp=null;
|
||||
if($user==null){
|
||||
$owner='anonymous';
|
||||
}else{
|
||||
$owner=$realname;
|
||||
}
|
||||
$webid=null;
|
||||
}
|
||||
}else{
|
||||
return json(['code' => 405, 'msg' => '备案查询接口响应异常,请稍后重试']);
|
||||
}
|
||||
if($icp==null&&($user==null||$type!='false')){
|
||||
return json(['code' => 502, 'msg' => '该域名未备案,需要登陆后才可缩短,且不支持302直链']);
|
||||
}
|
||||
|
||||
if($link==null){
|
||||
for($i=4;$i>0;$i++){
|
||||
$link=substr(md5($url).rand(0,pow(10,$i)),0,$i);
|
||||
if(Db::table('links')->where('link', "$link")->exists()){
|
||||
continue;
|
||||
}else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(Db::table('links')->where('link', "$link")->exists()){
|
||||
return json(['code' => 408, 'msg' => '自定义链接已存在']);
|
||||
}
|
||||
}
|
||||
if($user==null){
|
||||
$user='anonymous';
|
||||
}
|
||||
if($type=='false'){
|
||||
$type=0;
|
||||
}elseif($type=='true'){
|
||||
$type=1;
|
||||
}
|
||||
$data=[
|
||||
'link'=>$link,
|
||||
'source'=>$url,
|
||||
'owner'=>$owner,
|
||||
'webid'=>$webid,
|
||||
'user'=>$user,
|
||||
'type'=>$type,
|
||||
'time'=>time()
|
||||
];
|
||||
Db::table('links')->insert($data);
|
||||
return json(['code' => 200, 'msg' => 'success','link'=>'https://SPQR.top/'.$link]);
|
||||
}
|
||||
public function view(Request $request,$link)
|
||||
{
|
||||
$source=Db::table('links')->where('link', "$link")->first();
|
||||
if($source==null){
|
||||
return redirect('/');
|
||||
}
|
||||
if($source->type==0){
|
||||
if($source->webid==null){
|
||||
$ba='block';
|
||||
}else{
|
||||
$ba='none';
|
||||
}
|
||||
return view('jump', ['source' => $source,'ba'=>$ba]);
|
||||
}elseif($source->type==1){
|
||||
return redirect($source->source);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user