php+js设置本地cookie文件的方法

博主是大三的在校大学生,学习计算机的路上,有些自己的感悟,写下来互相讨论下,欢迎吐槽。

Cookie文件常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie,让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。从本质上讲,它可以看作是你的身份证。保存的信息片断以"名/值"对(name-value pairs)的形式储存,一个"名/值"对仅仅是一条命名的数据。 Cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。

如果我们设置index.html为首页。如果是本地cookie文件中能读到这个用户,说明这个用户近期刚刚登录过,不必再重复输入账号和密码。如果用户第一次登录,或者cookie文件已经失效,需要从新setcookie,因此要强制返回login.html函数中去。

<!--logincheck.js-->
function getCookie(name) {
	var nameEQ = name + '=';               //处理字符串
	var ca = document.cookie.split(';');   //;分割数据
	for(var i=0;i < ca.length;i++) {
	     var c = ca[i];                     
	     while (c.charAt(0)==' ')          //读到非空白为止
	 	 c = c.substring(1,c.length);
	     if (c.indexOf(nameEQ) == 0)        //返回name 首次出现位置
		return c.substring(nameEQ.length,c.length);   //返回name= 后面的内容进行比较
	      }
	return null;
	}
function setCookie(name, value){
		var expdate = new Date();                    
		expdate.setTime(expdate.getTime() + (365*24*120));
		document.cookie=''+ name + '=' + value +';expires='+ expdate.toGMTString();  //设置cookie的内容失效时间
		}
function logOut(){
		setCookie('login', 'no');
		location.href='login.html';
	}
<!--index.html-->
<script src="logincheck.js" type="text/javascript"></script>  
	<script>
	if(getCookie('login') !='yes'){
	alert('你还没有登录,请先登录');
	location.href='login.html';
	}
</script>
<html>
<title>index.html</title>
</html>

<!--login.html-->
<form action="check.php" method="post" >
        <tr>
        	<td><input type="text" name="userid" value="" placeholder="账号"></td>
        	<td><input type="password" name="passwd" value="" placeholder="密码"></td>
       </tr>
        <p class="remember_me">
          <label>
            <input type="checkbox" name="remember_me" id="remember_me">
            记住密码
          </label>
        </p>
        <p class="submit"><input type="submit" name="commit" value="登录"></p>
</form>

<script  src="logincheck.js"   type="text/javascript">
</script>
<?php
		error_reporting(E_ALL & ~E_NOTICE);          
		function _get($str){
			$val=!empty($_GET[$str])?$_GET[$str]:null;
			return $val;
			}
			 
		function find_user($name,$passwd){
			$conn=new Mongo("mongodb://localhost:27017");
			$collection=$conn->userxinxi->user;
			$result=false;
			$cursor=$collection->find(array("name"=>"$name"));
			foreach($cursor as $id=>$value){
					if($value["password"]!="$passwd"){
						break;
						}
					else{
						$result=true;
						return(setCookie('login','yes'));   //执行js函数
						}
				}
			return $result;
			}
	
		if(isset($_POST["commit"])){
	 		if(find_user($_POST["userid"],$_POST["passwd"])){
	 			header("Refresh: 1;url=./index.html");
	 			}
	 		else{
	 			header('Refresh: 1; url=./login.html');
	 			}
	 						
		} 
?>   			



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值