H5+app如何使用session 服务端为PHP
来源:互联网 发布:通达信炒股软件下载 编辑:程序博客网 时间:2024/06/05 00:34
背景:在用H5+ 写app的时候,当用户登陆后,需要记住登陆状态,可以直接使用storage把登陆信息保存在本地,类似于cookie的操作,但这样显然不安全,那么应该是要把登陆信息保存在服务器上。我这里模拟了session的过程,首先随机一个26位的字符串作为PHPSESSID保存在storange,然后把这个PHPSESSID通过ajax get的方式传到目标服务器,然后修改cookie中的PHPSESSID为传过去的值,这样就可以在服务器通过该ID找到对应的session文件了。
客户端代码:
var PHPSESSID = plus.storage.getItem("PHPSESSID");if(PHPSESSID == null){plus.storage.setItem("PHPSESSID",rand26());clicked("/Home/login.html");}else{$.ajax({ url : 'http://1.sckandroid.sinaapp.com/Home/session_login_check', dataType : 'jsonp', type : 'get', cache : false, data : {PHPSESSID : PHPSESSID}, success:function(data){ if(data['temp'] == 0 ){ clicked("/Home/login.html"); }else{ clicked("/Home/main.html"); } },error:function(XMLHttpRequest, textStatus, errorThrown) {alert(XMLHttpRequest.status);alert(XMLHttpRequest.readyState);alert(textStatus);}});}服务端代码:
public function login_check(){ $username = $_GET['username']; $password = $_GET['password']; $callback = $_REQUEST['callback']; $user = M("user"); $where['username'] = $username; $where['password'] = $password; $data = $user->where($where)->find(); if($data){ $result = array('temp' => '1' , 'realname' => $data['realname']); session_start(); $oldid = $_COOKIE['PHPSESSID']; $newid = $_GET['PHPSESSID']; session_destroy(); $_COOKIE['PHPSESSID'] = $newid; session_start(); $_SESSION['username'] = $username; }else{ $result = array('temp' => '0'); } $json = json_encode($result); echo $callback . "(" . $json . ")"; }主要的session操作:
session_start(); $oldid = $_COOKIE['PHPSESSID']; $newid = $_GET['password']; session_destroy(); $_COOKIE['PHPSESSID'] = $newid; session_start();因为是在thinkphp中,一旦用到了session,就会自动创建一个PHPSESSID,那么就需要把这个文件删除,在把cookie中的PHPSESSID改了,再开启session功能
0 0
- H5+app如何使用session 服务端为PHP
- 如何使用php session
- APP中的 H5和原生页面如何分辨、何时使用
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- [转]Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- [转]Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- Android客户端和服务端如何使用Token和Session
- APP服务端微信支付(PHP服务端)
- Android中对于onMeasure()的理解
- solr中ik分词自定义词库和停止词
- 用代码实现断开Android手机USB连接
- 关于球型Shader的写法
- 使用insert 语句插入另一个表和几个传入数据时,写法:
- H5+app如何使用session 服务端为PHP
- SHELL入门教程(6)-环境
- js和jq在实际开发中比较好用的方法总结
- SQL Server2008中CROSS APPLY的应用范例(二) - 将一个或多个字段内用逗号分隔的内容分成多条记录
- 使用MySql数据库创建表空间,日志
- Andoid基础学习_1
- [BZOJ1601] [Usaco2008 Oct]灌水
- sql server2008数据库备份作业
- Hduoj1869【Floyd】