侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

ThinkPHP3.2.2实现持久登录(记住我)功能的方法

ThinkPHP  /  管理员 发布于 9年前   203

本文实例讲述了ThinkPHP3.2.2实现持久登录功能的方法。分享给大家供大家参考,具体如下:

实现持久登录,即用户在登录时,勾选了"记住我"之后,无论是否关闭浏览器,只要不退出登录,在指定的时间内始终保持登录状态(缺点是在另一台电脑上登录过后,之前那台电脑就不能继续保持登录状态)。

首先,持久登陆使用 cookie 实现,但是 cookie 中不能保存用户密码这样重要的信息,即使加密过。解决方案是在用户登录表中新建3个字段identifier:第二身份标识,token:永久登录标识,timeout:永久登录超时时间。

+------------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+------------+-------------+------+-----+---------+----------------+| uid | int(11) | NO | PRI | NULL | auto_increment || uname | varchar(20) | YES | | NULL | || upwd | varchar(20) | YES | | NULL | || uflag | int(11) | YES | | NULL | || identifier | varchar(32) | YES | | NULL | || token | varchar(32) | YES | | NULL | || timeout | int(11) | YES | | NULL | |+------------+-------------+------+-----+---------+----------------+

在用户勾选了"记住我"登录时,应该生成一个唯一的 identifier,一个唯一的 token,并且设置一个过期时间 timeout,把两个代表身份的值写入cookie,设置 cookie 过期时间为 timeout,例如:setcookie('auth',"$identifier:$token",$timeout); 同时把三个值插入数据表;当用户再一次访问网站时,首先判断 cookie 中是否含有 auth,如果含有,则去数据库中进行身份比对(identifier 和 token),比对成功时,把用户信息写入 session,同时用户保持登录状态。

代码:

控制器 TestController.class.php

checkLong();  //已经登录则跳转至个人中心  if(isset($_SESSION['username'])){   $this->redirect('Test/ucenter');  }else{   //判断是否存在cookie   if(isset($_COOKIE['username'])){    $this->assign('username',$_COOKIE['username']);   }   //显示注册页   $this->display("test");  } } //显示验证码 public function verifyImg(){  $verify = new \Think\Verify();  //$verify->useZh = true; //使用中文验证码  $verify->length = 4;   $verify->entry(); } //验证登录 public function check(){  $verify = new \Think\Verify();  if($verify->check(I("yzm"))){   //判断用户名密码   $user = new \Test\Model\TestModel();   $res = $user->checkName(I("username"),I("pwd"));   if($res === false){    echo "用户名或密码错误";   }else{    //用户信息存入session    session("username",$res['uname']);    session("id",$res['uid']);    //如果用户勾选了"记住我",则保持持久登陆    if(I("remember")){     $salt = $this->random_str(16);     //第二分身标识     $identifier = md5($salt . md5(I("username") . $salt));     //永久登录标识     $token = md5(uniqid(rand(), true));     //永久登录超时时间(1周)     $timeout = time()+3600*24*7;     //存入cookie     setcookie('auth',"$identifier:$token",$timeout);     $user->saveRemember($res['uid'],$identifier,$token,$timeout);    }    //把用户名存入cookie,退出登录后在表单保存用户名信息    setcookie('username',I('username'),time()+3600*24);    //跳转至会员中心    $this->redirect('Test/ucenter');   }  }else{   echo "输入错误";  } }  //测试strstr函数 public function strstrtest(){  $param = "Think\Verify";  //第三个参数为true,返回'Think';没有第三个参数,返回'\Verify'  $name = strstr($param,'\\',true);  echo $name; } //用户中心 public function ucenter(){  //判断是否永久登录  $this->checkLong();  $this->assign("session",$_SESSION);  $this->display("ucenter"); } //退出登录 public function loginout(){  session(null);  setcookie('auth', '', time()-1);  $this->redirect("Test/login"); } //生成随机数,用于生成salt public function random_str($length){  //生成一个包含 大写英文字母, 小写英文字母, 数字 的数组  $arr = array_merge(range(0, 9), range('a', 'z'), range('A', 'Z'));  $str = '';  $arr_len = count($arr);  for ($i = 0; $i < $length; $i++){   $rand = mt_rand(0, $arr_len-1);   $str.=$arr[$rand];  }  return $str; } //判断是否持久登录 public function checkLong(){  $check = new \Test\Model\TestModel();  $is_long = $check->checkRemember();  if($is_long === false){  }else{   session("username",$is_long['uname']);   session("id",$is_long['uid']);  } }}

模型 TestModel.class.php

getByUname($name);  if($info != null){   //验证密码   if($info['upwd'] == $pwd){    return $info;   }else{    return false;   }  }else{   return false;  } } //当用户勾选"记住我" public function saveRemember($uid,$identifier,$token,$timeout){  $admin = M("admin");  $data['identifier'] = $identifier;  $data['token'] = $token;  $data['timeout'] = $timeout;  $where = " uid = ".$uid;  $res = $admin->data($data)->where($where)->save();  return $res; } //验证用户是否永久登录(记住我) public function checkRemember(){  $arr = array();  $now = time();  list($identifier,$token) = explode(':',$_COOKIE['auth']);  if (ctype_alnum($identifier) && ctype_alnum($token)){   $arr['identifier'] = $identifier;   $arr['token'] = $token;  }else{   return false;  }  $admin = M("admin");  $info = $admin->getByidentifier($arr['identifier']);  if($info != null){   if($arr['token'] != $info['token']){    return false;   }else if($now > $info['timeout']){    return false;   }else{    return $info;   }  }else{   return false;  } }}

视图 登录页 test.html

  Document




视图 个人中心 ucenter.html

  Documenttitle></head><body> <if condition="$session['username'] neq null"> <i>{$session.username},</i> <else /> <i>游客,</i> </if> 欢迎您<br> 退出登录</body></html></pre><p><strong>附:模块目录</strong></p><p></p><p><strong>补充:<span>小编在这里推荐一款本站的php格式化美化的排版工具帮助大家在以后的PHP程序设计中进行代码排版:</span><br></strong></p><p><strong><span>php代码在线格式化美化工具:</span></strong>http://tools..net.cn/code/phpformat</p><p>更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。</p><p>希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。</p>                                                                        <h4>您可能感兴趣的文章:</h4><ul><li>ThinkPHP登录功能的实现方法</li><li>ThinkPHP之用户注册登录留言完整实例</li><li>thinkphp框架下实现登录、注册、找回密码功能</li><li>thinkPHP5项目中实现QQ第三方登录功能</li><li>thinkPHP实现的验证码登录功能示例</li><li>ThinkPHP实现登录退出功能</li><li>Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册</li><li>thinkphp 手机号和用户名同时登录</li><li>PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】</li><li>thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例</li><li>php 实现简单的登录功能示例【基于thinkPHP框架】</li></ul><span id="art_bot"></span>            </p></dl>
										<style type="text/css">.social-share p{font-size:8px;}</style>
										<div class="social-share"></div>
									</div>
								</div>
							</div>
							<div class="row clearfix">
								<div class="col-md-12 column">
									<li class="list-group-item" style="background: #f5f5f5;border-radius: 4px;margin-bottom: 10px;">
										<br>上一条:<br>
																				<a href="/demo333/10663.html" class="list-group-item-heading">thinkPHP删除前弹出确认框的简单实现方法</a>
																				<br>下一条:<br>
																				<a href="/demo333/10665.html" class="list-group-item-heading">thinkphp框架下404页面设置 仅三步</a>
																			</li>
								</div>
							</div>
							<div class="row clearfix">
								<div class="col-md-12 column">
								  <form class="form-horizontal" role="form" style="background: #f5f5f5;border: 1px solid #ddd;padding:10px 10px 0px;border-radius: 4px;margin-bottom: 10px;"  id="myForm" action="/index/art/comment.html" method="post">
									<p><span style="font-size: 12px;">昵称:</span><input type="text" name="nick" style="width: 100px;border-radius: 8px;"><span id="check_nick" style="font-size: 8px;color: red;display: none;padding-left: 45px;padding-top: 8px;"></span></p>
									<p><span style="font-size: 12px;">邮箱:</span><input type="text" name="email" style="width: 160px;border-radius: 8px;"></p>
									<textarea name="comment" id="comment" style="width:80%; height:100%"></textarea>
									<input type="hidden" name="art_id" value="10664">
									<input type="submit" value="发表评论" style="font-size: 12px;position: relative;left: 71%;">	
								  </form>
								</div>
							</div>
							<div class="row clearfix"><div class="col-md-12 column"><div class="form-group" style="margin-bottom: 5px;padding: 0 5px;"><span>0条评论</span> <span style="font-size:8px;color:red">(评论内容有缓存机制,请悉知!)</span><div style="float: right;font-size: 12px;"><a href="" style="padding: 0 5px;">最新</a><a href="">最热</a></div></div></div></div>
							<div class="row clearfix">
								<div class="col-md-12 column">
																</div>
							</div>
						</div>
						<div class="col-md-4 column">
							<div class="row clearfix">
								<div class="col-md-12 column">
									<!-- 正方ad -->
									<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4802265324400044" data-ad-slot="1693614294" data-ad-format="auto" data-full-width-responsive="true"></ins>
									<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
								</div>
							</div>
							<!-- 分类 -->
							<div class="row clearfix">
								<div class="col-md-12 column">
									<ul style="background: #f5f5f5;border: 1px solid #ddd;border-radius: 4px;list-style: none;"><li style="font-size: 16px;font-weight: bold;padding: 10px 0 10px;">分类目录</li>
																			<li class="btn"><a href="/demo777/cat_id/1.html">人生(杂谈)</a></li>
																			<li class="btn"><a href="/demo777/cat_id/2.html">技术</a></li>
																			<li class="btn"><a href="/demo777/cat_id/18.html">linux</a></li>
																			<li class="btn"><a href="/demo777/cat_id/19.html">Java</a></li>
																			<li class="btn"><a href="/demo777/cat_id/20.html">php</a></li>
																			<li class="btn"><a href="/demo777/cat_id/30.html">框架(架构)</a></li>
																			<li class="btn"><a href="/demo777/cat_id/31.html">前端</a></li>
																			<li class="btn"><a href="/demo777/cat_id/33.html">ThinkPHP</a></li>
																			<li class="btn"><a href="/demo777/cat_id/34.html">数据库</a></li>
																			<li class="btn"><a href="/demo777/cat_id/35.html">微信(小程序)</a></li>
																			<li class="btn"><a href="/demo777/cat_id/36.html">Laravel</a></li>
																			<li class="btn"><a href="/demo777/cat_id/37.html">Redis</a></li>
																			<li class="btn"><a href="/demo777/cat_id/38.html">Docker</a></li>
																			<li class="btn"><a href="/demo777/cat_id/39.html">Go</a></li>
																			<li class="btn"><a href="/demo777/cat_id/40.html">swoole</a></li>
																			<li class="btn"><a href="/demo777/cat_id/41.html">Windows</a></li>
																			<li class="btn"><a href="/demo777/cat_id/42.html">Python</a></li>
																			<li class="btn"><a href="/demo777/cat_id/43.html">苹果(mac/ios)</a></li>
																		</ul>
								</div>
							</div>
							<div class="row clearfix">
								<div class="col-md-12 column">
									<ul style="background: #f5f5f5;border: 1px solid #ddd;border-radius: 4px;list-style: none;"><li style="font-size: 16px;font-weight: bold;padding: 10px 0 10px;">相关文章</li>
																				<li><a href="/demo333/96132.html">thinkphp + mongodb项目中数据加载慢问题分析及解决</a>(0个评论)</li>
																				<li><a href="/demo333/95913.html">thinkphp6框架中封装redis操作类</a>(0个评论)</li>
																				<li><a href="/demo333/95786.html">thinkphp6框架中实现定时任务功能流程步骤</a>(0个评论)</li>
																				<li><a href="/demo333/95737.html">Thinkphp5.1框架中实现Session+Redis会话共享流程步骤</a>(0个评论)</li>
																				<li><a href="/demo333/89466.html">TP5框架版本5.0.10安全漏洞根据官方补丁修复,也是本站安全漏洞修复</a>(0个评论)</li>
																			</ul>
								</div>
							</div>
							<div class="row clearfix">
								<div class="col-md-12 column">
									<ul style="background: #f5f5f5;border: 1px solid #ddd;border-radius: 4px;list-style: none;"><li style="font-size: 16px;font-weight: bold;padding: 10px 0 10px;">近期文章</li>
																		<li><a href="/demo333/96858.html">在go语言中实现字符串可逆性压缩及解压缩功能</a>(0个评论)</li>
																		<li><a href="/demo333/96855.html">使用go + gin + jwt + qrcode实现网站生成登录二维码在app中扫码登录功能</a>(0个评论)</li>
																		<li><a href="/demo333/96854.html">在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案</a>(0个评论)</li>
																		<li><a href="/demo333/96853.html">智能合约Solidity学习CryptoZombie第四课:僵尸作战系统</a>(0个评论)</li>
																		<li><a href="/demo333/96852.html">智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)</a>(0个评论)</li>
																		<li><a href="/demo333/96851.html">智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食</a>(0个评论)</li>
																		<li><a href="/demo333/96850.html">智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸</a>(0个评论)</li>
																		<li><a href="/demo333/96849.html">在go中实现一个常用的先进先出的缓存淘汰算法示例代码</a>(0个评论)</li>
																		<li><a href="/demo333/96848.html">在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能</a>(0个评论)</li>
																		<li><a href="/demo333/96847.html">在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能</a>(1个评论)</li>
																		</ul>
								</div>
							</div>
							<div class="row clearfix">
								<div class="col-md-12 column">
									<ul style="background: #f5f5f5;border: 1px solid #ddd;border-radius: 4px;list-style: none;"><li style="font-size: 16px;font-weight: bold;padding: 10px 0 10px;">近期评论</li>
																			<li>
											<p style="font-size: 10px;margin-bottom: 0px;">122 在</p><a href="/demo333/96820.html">学历:一种延缓就业设计,生活需求下的权衡之选</a><span style="font-size: 10px;">中评论</span>
											工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..										</li>
																			<li>
											<p style="font-size: 10px;margin-bottom: 0px;">123 在</p><a href="/demo333/96603.html">Clash for Windows作者删库跑路了,github已404</a><span style="font-size: 10px;">中评论</span>
											按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..										</li>
																			<li>
											<p style="font-size: 10px;margin-bottom: 0px;">原梓番博客 在</p><a href="/demo333/96695.html">在Laravel框架中使用模型Model分表最简单的方法</a><span style="font-size: 10px;">中评论</span>
											好久好久都没看友情链接申请了,今天刚看,已经添加。..										</li>
																			<li>
											<p style="font-size: 10px;margin-bottom: 0px;">博主 在</p><a href="/demo333/435.html">佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法</a><span style="font-size: 10px;">中评论</span>
											@1111老铁这个不行了,可以看看近期评论的其他文章..										</li>
																			<li>
											<p style="font-size: 10px;margin-bottom: 0px;">1111 在</p><a href="/demo333/435.html">佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法</a><span style="font-size: 10px;">中评论</span>
											网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..										</li>
																		</ul>
								</div>
							</div>
							<div class="row clearfix">
								<div class="col-md-12 column">
									<div class="btn-group" style="width: 100%">
										<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">文章归档 <span class="caret"></span></button>
										<ul class="dropdown-menu" role="menu">
																						<li style="display: inline-block;"><a href="/demo777/date/2016-10.html" style="color:#337ab7;padding:3px 5px;">2016-10</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2017-07.html" style="color:#337ab7;padding:3px 5px;">2017-07</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2017-08.html" style="color:#337ab7;padding:3px 5px;">2017-08</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2017-09.html" style="color:#337ab7;padding:3px 5px;">2017-09</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2017-10.html" style="color:#337ab7;padding:3px 5px;">2017-10</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2017-12.html" style="color:#337ab7;padding:3px 5px;">2017-12</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2018-01.html" style="color:#337ab7;padding:3px 5px;">2018-01</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2018-02.html" style="color:#337ab7;padding:3px 5px;">2018-02</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2020-03.html" style="color:#337ab7;padding:3px 5px;">2020-03</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2021-07.html" style="color:#337ab7;padding:3px 5px;">2021-07</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2021-12.html" style="color:#337ab7;padding:3px 5px;">2021-12</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2022-05.html" style="color:#337ab7;padding:3px 5px;">2022-05</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2022-06.html" style="color:#337ab7;padding:3px 5px;">2022-06</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2022-09.html" style="color:#337ab7;padding:3px 5px;">2022-09</a></li>
																						<li style="display: inline-block;"><a href="/demo777/date/2023-01.html" style="color:#337ab7;padding:3px 5px;">2023-01</a></li>
																					</ul>
									</div>
								</div>
							</div>
						</div>
						<a href="#top" style="width: 35px;height: 35px;background: #286090;position: fixed;right: 55px;bottom: 20%;border-radius: 50px;line-height: 30px;text-align: center;color: #fff;z-index: 1000;">Top</a>
					</div>
				</div>
			</div>
<!-- 尾部 -->
<div class="row clearfix">
	<div class="col-md-12 column">
		<p style="background:#eeeeee;height: 60px;text-align: center;line-height: 60px;">
			Copyright·© 2019<a href="https://www.zongscan.com/" title="侯体宗的博客"> 侯体宗</a>版权所有·
			<a rel="nofollow" href="http://beian.miit.gov.cn/" target="_blank">粤ICP备20027696号</a>
			<a rel="nofollow" target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=18fd111045dfedfaaec63e92733754db7c223601aa9d81a777ecfaa2c9bea9a1"><img style="width: 80px;" src="//pub.idqqimg.com/wpa/images/group.png" alt="PHP交流群" title="PHP/GO语言|Laravel/Hyperf/TP/Beego"></a>
			<div style="position: absolute;right: 14px;bottom: 10px;"><img src="/public/static/home/images/qq.png" alt="侯体宗的博客" style="width: 60px;"></div>
		</p>
	</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="/public/static/home/js/jquery.form.min.js"></script>
<script type="text/javascript" src="/public/static/home/js/3dtags.js"></script>
<script>var odsmE1 = odsmE1 || [];(function() {  var yZ$bV2 = window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74"]("\x73\x63\x72\x69\x70\x74");  yZ$bV2["\x73\x72\x63"] = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x68\x6d\x2e\x62\x61\x69\x64\x75\x2e\x63\x6f\x6d\x2f\x68\x6d\x2e\x6a\x73\x3f\x65\x37\x64\x39\x34\x35\x38\x39\x36\x64\x36\x61\x35\x65\x62\x34\x35\x37\x30\x62\x66\x32\x39\x66\x64\x31\x62\x65\x38\x38\x61\x65";  var MsUTUSUX3 = window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65"]("\x73\x63\x72\x69\x70\x74")[0];   MsUTUSUX3["\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65"]["\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65"](yZ$bV2, MsUTUSUX3);})();</script>

<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>
<script>
(function(){
var src = "https://jspassport.ssl.qhimg.com/11.0.1.js?d182b3f28525f2db83acfaaf6e696dba";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>
<script>
(function(){
	var el = document.createElement("script");
	el.src = "https://sf1-scmcdn-tos.pstatp.com/goofy/ttzz/push.js?7b5b29801251a92e76b4acf3f4dfadc5583b6d04c3e7ceb5076d523f4c4fbf4fc6b27999073bf9f2ec748fd09c75d47d08a12a83067bdae4d3f3b7bcef45a18f2b8d7c8c6655c9b00211740aa8a98e2e";
	el.id = "ttzz";
	var s = document.getElementsByTagName("script")[0];
	s.parentNode.insertBefore(el, s);
})(window)
</script>



<!--<script src="https://cdn.bootcdn.net/ajax/libs/social-share.js/1.0.9/js/share.min.js"></script>-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/lrsjng.jquery-qrcode/0.9.5/jquery.qrcode.min.js"></script>-->
<!--编辑器-->
<script type="text/javascript" src="/public/static/home/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="/public/static/home/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
    var ue = UE.getEditor('comment',{
        toolbars: [['fullscreen', 'source', '|', 'undo', 'redo', '|','bold', 'italic', 'underline', 'fontborder','snapscreen','scrawl','insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'pagebreak', 'template', '|', 'simpleupload']],initialFrameWidth:null,initialFrameHeight:100});
</script>
<script> 
$(document).ready(function() { 
    // bind form using ajaxForm 
    $('#myForm').ajaxForm({ 
        dataType:  'json', 
        // success:   processJson 
        success: function(data){
          if (data.error == 1) {
            alert(data.info);
            location.reload();
          }else{
            $("#check_nick").html(data.info);
            $("#check_nick").css("display","block");
          };
        }
    }); 

});
//dianzan
 function dianzan(obj,id){
 	//alert($(obj).html());
    id = id;
    $.ajax({
        url: "/index/art/dianzan.html",//请求地址
        type: "post",//请求方式
        dataType: "json",//返回数据类型
        data: {id:id},//发送的参数
        })
        .done(function(data) {
              if(data.error==0){
					alert(data.info);
              }else{
              	//alert(data.zan);
                $(obj).children('.rezan').html(data.zan);
                $(obj).removeAttr("onclick");//防重复点击
              }
          })
        .fail(function() {
            alert("ajxs交互失败");
        })  
    return false;
 }

</script> 

   </body>
</html>