Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
flatter:如何保持MySQL的登录状态_Mysql_Flutter - Fatal编程技术网

flatter:如何保持MySQL的登录状态

flatter:如何保持MySQL的登录状态,mysql,flutter,Mysql,Flutter,您好,我是新来的颤栗,我使用MySQL的应用程序,我想让用户登录后重新打开应用程序,我已经尝试使用共享的首选项,老实说,我卡住了,不知道该怎么做,这是我的代码登录页,那么我应该怎么办 导入'dart:io'; 导入“package:data_connection_checker/data_connection_checker.dart”; 进口“包装:颤振/材料.省道”; 进口“包装:颤振_定制_剪/颤振_定制_剪.dart”; 进口“包装:fluttoast/fluttoast.dart”;

您好,我是新来的颤栗,我使用MySQL的应用程序,我想让用户登录后重新打开应用程序,我已经尝试使用共享的首选项,老实说,我卡住了,不知道该怎么做,这是我的代码登录页,那么我应该怎么办

导入'dart:io';
导入“package:data_connection_checker/data_connection_checker.dart”;
进口“包装:颤振/材料.省道”;
进口“包装:颤振_定制_剪/颤振_定制_剪.dart”;
进口“包装:fluttoast/fluttoast.dart”;
导入“package:font_awesome_flatter/font_awesome_flatter.dart”;
导入“package:giffy_dialog/giffy_dialog.dart”;
导入“dart:async”;
导入“dart:convert”;
将“package:http/http.dart”导入为http;
导入“包装:圆形加载按钮/圆形加载按钮.省道”;
字符串email='';
类登录扩展StatefulWidget{
@凌驾
_LoginState createState()=>\u LoginState();
}
类_LoginState扩展了状态{
最终RoundedLoadingButtonController _btnController=RoundedLoadingButtonController();
TextEditingController电子邮件=TextEditingController();
TextEditingController pass=TextEditingController();
void _btndo()异步{
计时器(持续时间(秒数:4),(){
_btnController.success();
_登录();
});
}
Future\u login()异步{
最终响应=等待http.post(“http://msc-mu.com/login_app.php“,主体:{
“email”:email.text,
“密码”:pass.text,
});
var userdata=json.decode(response.body);
如果(userdata==0){
设置状态(){
烤面包片(
msg:'登录失败',
烤面包片长度:烤面包片长度,
重力:ToastGravity.BOTTOM,
TimeInSecureForiosWeb:1,
背景颜色:Colors.lightBlueAccent,
textColor:Colors.white,
体积:16.0),;
});
}否则{
如果(用户数据[0]['type']=='Admin'){
设置状态(){
popandpushname(上下文“/Admin”);
});
}else if(userdata[0]['type']=='Student'){
设置状态(){
pushReplacementNamed(上下文,“/Student”);
});
}else if(userdata[0]['type']=='Representative'){
Navigator.pushReplacementNamed(上下文'/Representative');
}
}
返回用户数据;
}
@凌驾
void initState(){
var listener=DataConnectionChecker();
listener.onStatusChange.listen((状态){
开关(状态){
案例DataConnectionStatus.connected:
烤面包片(
msg:'已连接',
烤面包片长度:烤面包片长度,
重力:ToastGravity.BOTTOM,
TimeInSecureForiosWeb:1,
背景颜色:Colors.lightBlueAccent,
textColor:Colors.white,
体积:16.0),;
打破
案例DataConnectionStatus.disconnected:
显示对话框(
禁止:错误,
上下文:上下文,
生成器:(上下文)=>AssetGiffyDialog(
image:image.asset('images/wait\u connection.gif'),
标题:正文(
'抱歉!!,但您没有连接',
textAlign:textAlign.center,
样式:TextStyle(
fontSize:22.0,fontWeight:fontWeight.w600),
),
说明:文本(
“我们的应用程序需要internet连接,请重新连接,然后按“确定”再试一次。”,
textAlign:textAlign.center,
),
entryAnimation:entryAnimation.TOP\u右,
唯一的按钮:是的,
onOkButtonPressed:(){
设置状态(){
void check()异步{
试一试{
最终结果=
等待InternetAddress.lookup('google.com');
如果(result.isNotEmpty)&&
结果[0].rawAddress.isNotEmpty){
pop(上下文,true);
烤面包片(
msg:'再次连接',
烤面包片长度:烤面包片长度,
重力:ToastGravity.BOTTOM,
TimeInSecureForiosWeb:1,
背景颜色:Colors.lightBlueAccent,
textColor:Colors.white,
体积:16.0),;
}
}关于SocketException捕获(41;{
烤面包片(
msg:'仍未连接',
烤面包片长度:烤面包片长度,
重力:ToastGravity.BOTTOM,
TimeInSecureForiosWeb:1,
背景颜色:Colors.lightBlueAccent,
textColor:Colors.white,
体积:16.0),;
}
}
检查();
});
},
));
}
});
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:SingleChildScrollView(
子:容器(
高度:MediaQuery.of(context).size.height,
宽度:MediaQuery.of(context).size.width,
子:列(
儿童:[
克利帕斯(
裁剪器:OvalBottomBorderClipper(),
孩子:图像(
image:AssetImage('images/logo1.png'),
宽度:double.infinity,
高度:MediaQuery.of(context).size.height/2.9,
适合:BoxFit.cover,
),
),
大小盒子(
嗨