起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3191|回复: 5

[分享] sqlite记住密码整理出单文件

  [复制链接]

25

主题

75

帖子

143

积分

初级会员

Rank: 2

积分
143
QQ
发表于 2016-1-29 22:35:54 | 显示全部楼层 |阅读模式
之前写的记住密码的功能都是在页面里 显得很乱并且数据库进行了重新设计 并且支持浏览器 可以配置是否用localStorage 直接导入文件就可以用 方法都写好了 只把单独的文件发布出来 有问题留言
  1. function openDatabase(model){
  2.         var me = this;
  3.         document.addEventListener("deviceready", onDeviceReady, false);
  4.         // sqlite设备就绪
  5.         function onDeviceReady() {
  6.                
  7.                 me.db = window.sqlitePlugin.openDatabase({
  8.                         name : model.rem_database+".db"
  9.                 });
  10.                
  11.         }
  12.        
  13. }

  14. function createTable(model){
  15.        
  16.         try{
  17.                 this.db.transaction(function(tx) {
  18.                         tx.executeSql('CREATE TABLE IF NOT EXISTS '+model.rem_table+' (id integer primary key, key text, value text);');
  19.                 });
  20.         //默认插入一条数据
  21.        
  22.                 var totalcount=0;
  23.                 //判断表里有几条数据
  24.                 this.db.transaction(function(tx) {
  25.              tx.executeSql("select count(*) as count from "+model.rem_table, [], function(tx, res) {
  26.                      totalcount=res.rows.item(0).count;
  27.                      //alert(totalcount);
  28.              });
  29.                 });
  30.                 //如果无数据填入数据
  31.                 if(totalcount<1){
  32.                         this.db.transaction(function(tx) {
  33.                                         tx.executeSql('INSERT INTO '+model.rem_table+' (key,value) VALUES ("username","")');
  34.                                         tx.executeSql('INSERT INTO '+model.rem_table+' (key,value) VALUES ("pwd","")');
  35.                                         tx.executeSql('INSERT INTO '+model.rem_table+' (key,value) VALUES ("isremember",0)');
  36.                                         tx.executeSql('INSERT INTO '+model.rem_table+' (key,value) VALUES ("islogin",0)');
  37.                                         tx.executeSql('INSERT INTO '+model.rem_table+' (key,value) VALUES ("userid",0)');
  38.                         
  39.                         });
  40.                 }
  41.         }catch(e){
  42.                 if(this.rem_supportweb==true){
  43.                         localStorage.username="";
  44.                         localStorage.pwd="";
  45.                         localStorage.isremember=0;
  46.                         localStorage.islogin=0;
  47.                         localStorage.userid=0;
  48.                 }
  49.                
  50.         }
  51.                
  52. }
  53. function isLogin(model){
  54.         try{
  55.                 this.db.transaction(function(tx) {
  56.                         tx.executeSql("select value from "+model.rem_table+" where key='islogin';", [], function(tx, res) {
  57.                                         if(res.rows.item(0).value==1){
  58.                                                 model.shellImpl.showPage("home");
  59.                                         }else{
  60.                                                 model.shellImpl.showPage("login");
  61.                                         }
  62.                         });
  63.                 });
  64.         }catch(e){
  65.                
  66.                 if(model.rem_supportweb==true){
  67.                         if(localStorage.islogin==1){
  68.                                 model.shellImpl.showPage("home");
  69.                         }else{
  70.                                 model.shellImpl.showPage("login");
  71.                         }
  72.                 }else{
  73.                         model.shellImpl.showPage("login");
  74.                 }
  75.         }
  76. }
  77. function isRemember(model){
  78.         //查询数据库判断是否记住了密码
  79.         try{
  80.                 this.db.transaction(function(tx) {
  81.                         tx.executeSql("select value from "+model.rem_table+" where key='isremember';", [], function(tx, res) {
  82.                                        
  83.                                 if(res.rows.item(0).value==1){
  84.                                
  85.                                                 tx.executeSql("select value from "+model.rem_table+" where key='username';", [], function(tx, res) {
  86.                                                        
  87.                                                         model.comp("username").val(res.rows.item(0).value);
  88.                                                        
  89.                                                 }, function(e) {
  90.                                                         alert("ERROR: " + e.message);
  91.                                                 });
  92.                                                 tx.executeSql("select value from "+model.rem_table+" where key='pwd';", [], function(tx, res) {
  93.                                                        
  94.                                                         model.comp("pwd").val(res.rows.item(0).value);
  95.                                                        
  96.                                                 }, function(e) {
  97.                                                         alert("ERROR: " + e.message);
  98.                                                 });
  99.                                                 model.comp("remembercb").set({"checked":true,"value":1});
  100.                                 }else{
  101.                                         model.comp("username").val("");
  102.                                         model.comp("pwd").val("");
  103.                                         model.comp("remembercb").set({"checked":false,"value":0});
  104.                                 }
  105.                         });
  106.                 });
  107.         }catch(e){
  108.                 if(model.rem_supportweb==true){
  109.                         if(localStorage.isremember==1){
  110.                                 model.comp("username").val(localStorage.username);
  111.                                 model.comp("pwd").val(localStorage.pwd);
  112.                                 model.comp("remembercb").set({"checked":true,"value":1});
  113.                         }else{
  114.                                 model.comp("username").val("");
  115.                                 model.comp("pwd").val("");
  116.                                 model.comp("remembercb").set({"checked":false,"value":0});
  117.                         }
  118.                        
  119.                 }else{
  120.                         model.comp("username").val("");
  121.                         model.comp("pwd").val("");
  122.                         model.comp("remembercb").set({"checked":false,"value":0});
  123.                 }
  124.         }
  125. }
  126. function updateUser(model,username,pwd,isRemember){
  127.        
  128.         //更新sqlite中的用户名密码
  129.         try{
  130.                 this.db.transaction(function(tx) {
  131.                         tx.executeSql("UPDATE "+model.rem_table+" SET value = ? WHERE key='username';", [ username ], function(tx, res) {
  132.                         }, function(e) {
  133.                                 alert("ERROR: " + e.message);
  134.                         });
  135.                 });
  136.                
  137.                 this.db.transaction(function(tx) {
  138.                         tx.executeSql("UPDATE "+model.rem_table+" SET value = ? WHERE key='pwd';", [ pwd ], function(tx, res) {
  139.                         }, function(e) {
  140.                                 alert("ERROR: " + e.message);
  141.                         });
  142.                 });
  143.                 this.db.transaction(function(tx) {
  144.                         tx.executeSql("UPDATE "+model.rem_table+" SET value = ? WHERE key='isremember';", [ isRemember ], function(tx, res) {
  145.                         }, function(e) {
  146.                                 alert("ERROR: " + e.message);
  147.                         });
  148.                 });
  149.                 this.db.transaction(function(tx) {
  150.                         tx.executeSql("UPDATE "+model.rem_table+" SET value = ? WHERE key='islogin';", [ 1 ], function(tx, res) {
  151.                         }, function(e) {
  152.                                 alert("ERROR: " + e.message);
  153.                         });
  154.                 });
  155.         }catch(e){
  156.                 if(model.rem_supportweb==true){
  157.                         localStorage.username=username;
  158.                         localStorage.pwd=pwd;
  159.                         localStorage.isremember=isRemember;
  160.                         localStorage.islogin=1;
  161.                        
  162.                 }
  163.         }
  164. }
  165. function logout(model){
  166.         try{
  167.                 this.db.transaction(function(tx) {
  168.                         tx.executeSql("UPDATE "+model.rem_table+" SET value = ? WHERE key='islogin';", [ 0 ], function(tx, res) {
  169.                                
  170.                         }, function(e) {
  171.                                 alert("ERROR: " + e.message);
  172.                         });
  173.                 });
  174.         }catch(e){
  175.                 if(model.rem_supportweb==true){
  176.                         localStorage.islogin=0;
  177.                 }
  178.         }
  179. }
复制代码


3

主题

31

帖子

113

积分

初级会员

Rank: 2

积分
113
QQ
发表于 2016-1-30 08:55:59 | 显示全部楼层
正需要这功能,晚点试下,谢谢楼主分享~
回复 支持 反对

使用道具 举报

25

主题

75

帖子

143

积分

初级会员

Rank: 2

积分
143
QQ
 楼主| 发表于 2016-1-30 12:48:14 | 显示全部楼层
scpli 发表于 2016-1-30 08:55
正需要这功能,晚点试下,谢谢楼主分享~

一个记住密码写了这么多代码 太不合理了 应该有更好的方式 暂时没想到
回复 支持 反对

使用道具 举报

73

主题

202

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
QQ
发表于 2016-2-26 12:10:38 | 显示全部楼层
model.rem_database 和 model.rem_table是要在哪边设置吗?
回复 支持 反对

使用道具 举报

25

主题

75

帖子

143

积分

初级会员

Rank: 2

积分
143
QQ
 楼主| 发表于 2016-2-26 19:06:05 | 显示全部楼层
xiaochuxuezhe 发表于 2016-2-26 12:10
model.rem_database 和 model.rem_table是要在哪边设置吗?

在这个页面定义就行
回复 支持 反对

使用道具 举报

53

主题

313

帖子

1138

积分

金牌会员

Rank: 6Rank: 6

积分
1138
QQ
发表于 2016-6-17 13:39:46 | 显示全部楼层
这个太好了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-11 14:03 , Processed in 0.107729 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表