博主是大三的在校大学生,学习计算机的路上,有些自己的感悟,写下来互相讨论下,欢迎吐槽。
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');
}
}
?>